[feature] usage of web worker for background lint and query execution #264
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.
Context
When using the editor on some databases, we may experience page freezes caused by the lint and query execution processes. This issue is currently happening because our
lintandexecfunctions are being executed on the context of our page"main-thread", this thread is responsible for the rendering and handling of user input.Proposed Changes
To remove the impact of the
lintandexecinto the main-thread we can move it to a background thread that will be responsible for handling these processes in the background. We can achieve this by making use of Web Workers.As a way to prevent the unnecessary execution of previously resolved results, we can cache the generated results and use them instead.
We are currently missing the proper saving of the time spent on both the execution of some operations and also the time spent to generate a specific result. To improve this, we can add the timing for both of these parts and present them accordingly at our execution tree.