شرح صفوف ومحتوى الفقرة
بدون تقنية التأخير الذكي (Debounce)، فإن كتابة كلمة من 10 أحرف تطلق 10 طلبات HTTP منفصلة إلى خادم PHP خلال ثانية واحدة، مما يرهق قاعدة البيانات ويسبب تداخل النتائج.
- تعتمد تقنية Debounce على إعادة ضبط مؤقت زمني (عادةً من
250إلى300مللي ثانية) مع كل ضغطة زر، فلا يُرسل الطلب إلا بعد توقف المستخدم عن الكتابة. - اربط تقنية Debounce بكائن
AbortControllerفي JavaScript لإلغاء أي طلب سابق لم يكتمل بعد عند بدء بحث جديد. - حتى مع وجود Debounce في الواجهة، احرص دائماً على إبقاء استعلام PHP سريعاً ومقيداً بسقف
LIMIT.
يقلص استخدام Debounce عدد الطلبات من 14 ضغطة مفتاح متتالية إلى طلبين فقط لخادم PHP، مما يوفر 86% من الحمل على قاعدة البيانات.
PHP
<?php
// Comparing server load with and without 280ms input debouncing
$typedWord = "authentication";
$rawKeystrokes = strlen($typedWord);
$debouncedRequests = 2; // User paused once mid-word and once at the end
$savedPercent = round((1 - ($debouncedRequests / $rawKeystrokes)) * 100);
echo "Raw requests : $rawKeystrokes\n";
echo "Debounced requests : $debouncedRequests ($savedPercent% load reduction)\n";