Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve experience after Frontend is rebuilt #496

Merged
merged 7 commits into from
Sep 21, 2021
Merged

Conversation

matthew-white
Copy link
Member

No description provided.

Copy link
Member Author

@matthew-white matthew-white left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notes from interactive review

test/util/http.js Outdated Show resolved Hide resolved
test/data/forms.js Show resolved Hide resolved
@matthew-white matthew-white merged commit 45973e2 into master Sep 21, 2021
@matthew-white matthew-white deleted the improve-upgrading branch September 21, 2021 02:32
matthew-white added a commit to getodk/central that referenced this pull request Sep 27, 2021
This commit aims to prevent excessive caching of /version.txt and
/index.html. Browsers will still be able to cache these files, but they
must revalidate them with each request.

Prior to this commit, I noticed the following behavior:

  - Open Frontend in a browser (I used Firefox).
  - Change the source, then rebuild. This will change /version.txt.
  - However, if you click on the Version link in the help dropdown, the
    old /version.txt is shown in a new tab.
  - Only if you refresh the new tab is the new /version.txt is shown.

getodk/central-frontend#496 only works if requesting /version.txt
returns the current version, reflecting any change.

Adding the Cache-Control header for /version.txt seems to resolve this
issue. I also added it for /index.html, which should make it unnecessary
to ever force-refresh /index.html in a browser.

I think Cache-Control is useful for these two files, but I don't think
that it is useful for other files:

  - CSS and JS files from Vue will have a hash in their filenames that
    will change as the associated source changes.
  - We use a query string for cache-busting when requesting icon files.
matthew-white added a commit to getodk/central that referenced this pull request Sep 28, 2021
This commit aims to prevent excessive caching of /version.txt and
/index.html. Browsers will still be able to cache these files, but they
must revalidate them with each request.

Prior to this commit, I noticed the following behavior:

  - Open Frontend in a browser (I used Firefox).
  - Change the source, then rebuild. This will change /version.txt.
  - However, if you click on the Version link in the help dropdown, the
    old /version.txt is shown in a new tab.
  - Only if you refresh the new tab is the new /version.txt is shown.

getodk/central-frontend#496 only works if requesting /version.txt
returns the current version, reflecting any change.

Adding the Cache-Control header for /version.txt seems to resolve this
issue. I also added it for /index.html, which should make it unnecessary
to ever force-refresh /index.html in a browser.

I think Cache-Control is useful for these two files, but I don't think
that it is useful for other files:

  - CSS and JS files from Vue will have a hash in their filenames that
    will change as the associated source changes.
  - We use a query string for cache-busting when requesting icon files.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants