Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Predictive Search Optimization Walkthrough
the optimization applied to the ST/predictive-search-lazyload branch to improve the initial page load performance, specifically targeting mobile devices.
By default, the predictive-search.js file was loaded on every page unconditionally. We have shifted this to an "on intent" lazy-loading model.
Changes Made
File: snippets/search-modal.liquid
Appended a lightweight, vanilla JavaScript snippet at the end of the file.
This script listens for events that indicate the user wants to search:
Once any of these events are triggered, the script dynamically creates a <script> tag, points it to predictive-search.js, and injects it into the document.body.
All event listeners are immediately removed after the first trigger to prevent redundant executions.
LCP & TTI Improvements: By removing a blocking (or semi-blocking) resource from the initial load, the browser has more bandwidth and main-thread time to render the visual elements (like Hero banners and Product Cards) faster.
Data Savings: Users who visit the site but never interact with the search bar will save data natively, avoiding unnecessary downloads.