From 229d2fca332b245d2d521ca6da5f5d5e74628186 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 3059d3a9..501f0f4a 100644 --- a/src/lib/components/Search.svelte +++ b/src/lib/components/Search.svelte @@ -1,10 +1,19 @@