قلل طلبات الخادم مع debouncing و throttling لأداء أفضل.
Debounce - انتظر حتى يتوقف المستخدم
<!-- debounce لحقل البحث - ينتظر 300ms بعد توقف الكتابة -->
<input
type="search"
wire:model.live.debounce.300ms="search"
placeholder="ابحث عن المنتجات..."
>
<!-- فترات debounce مختلفة -->
<input wire:model.live.debounce.150ms="quickSearch">
<input wire:model.live.debounce.500ms="slowSearch">
<textarea wire:model.live.debounce.1s="content"></textarea>Throttle - تقييد تردد الطلبات
<!-- throttle نقرات الزر - مرة واحدة كحد أقصى كل 500ms -->
<button wire:click.throttle.500ms="refresh">
تحديث البيانات
</button>
<!-- throttle أحداث التمرير -->
<div
x-data
@scroll.window.throttle.200ms="$wire.loadMore()"
>
محتوى التمرير...
</div>
<!-- throttle إرسال النماذج السريع -->
<form wire:submit.throttle.1s="save">
<button type="submit">حفظ</button>
</form>المقارنة
Debounce: ينتظر حتى يتوقف المستخدم، ثم ينفذ مرة
- استخدم لـ: حقول البحث، الحفظ التلقائي، التحقق
- مثال: يكتب "مرحبا" - ينفذ مرة بعد توقف الكتابة
Throttle: ينفذ فوراً، ثم يقيد التردد
- استخدم لـ: معالجات التمرير، أحداث تغيير الحجم
- مثال: ينقر 10 مرات - ينفذ مرتين كحد أقصى في الثانية