From 314d6225cc6287f4f6d58cc306f4ae6dc01d4542 Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Wed, 31 Dec 2025 14:09:16 +0100 Subject: [PATCH] implement Web Worker-based search to eliminate input lag Replace synchronous DOM manipulation with Web Worker + Svelte reactive state for recipe search. This moves text normalization and filtering off the main thread, ensuring zero input lag while typing. Search now runs in parallel with UI rendering, improving performance significantly for 240+ recipes. - Add search.worker.js for background search processing - Update Search.svelte to use Web Worker with $state runes - Update +page.svelte with reactive filtering based on worker results - Add language-aware recipe data synchronization for proper English/German search - Migrate to Svelte 5 event handlers (onsubmit, onclick) --- src/lib/components/Search.svelte | 146 ++++++++++-------- src/lib/components/search.worker.js | 60 +++++++ .../[recipeLang=recipeLang]/+page.svelte | 49 ++++-- 3 files changed, 182 insertions(+), 73 deletions(-) create mode 100644 src/lib/components/search.worker.js diff --git a/src/lib/components/Search.svelte b/src/lib/components/Search.svelte index 3059d3a..501f0f4 100644 --- a/src/lib/components/Search.svelte +++ b/src/lib/components/Search.svelte @@ -1,10 +1,19 @@