Initial implementation of web worker for lunr indexing #1661
+59
−26
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a first attempt at using a web worker thread to perform the indexing for lunr, so the page remains responsive while the index is being built. The code also includes a synchronous fallback for situations where the web worker API is not available, though I am not sure this is actually relevant for existing browsers. After a few seconds, there is still a brief freeze in screen refresh as the index is loaded, but at least the page is usually able to finish its initial layout pass.
This fix is currently being used by our experimental documentation site at https://mgroeber9110.github.io/just-the-docs-test.
I have not done much frontend development in the last 15 years or so, so any feedback is welcome. :-)
Closes #1210.