Svelte / المتقدم: العرض والموارد وأدلة الإصدار / الدرس 14
مخبأ HTTP والحداثة وعمل المصدر المحدود
نسق جمهور الرد وإبطال load ومواعيد المصدر دون اختراع مخبأ إطار عالمي.
في هذه الصفحة
أهداف الدرس
- ميز مخبأ HTTP وحالة load بالعميل ومخبأ التطبيق.
- حدد ميزانية المصدر وسياسة الملء القديم وأهلية الرد الخاص.
سم التمثيل المعاد استعماله
يختلف مفتاح وعمر مخبأ المتصفح وCDN ونتيجة load وبيانات التطبيق. لا يمسح الإبطال كل خارج وقد تتلقى load حديثة قديماً. حدد العام والمستأجر والهوية قبل المشاركة ولا يكفي URL لكل شخصي. ليس وجود القيمة إذناً؛ ميز الغياب والفشل والفقد داخلياً ولو تشابه العام بقصد. يحدد الموائم والترويسة السلوك. يساعد ذلك في تشخيص مستخدم رأى اسماً قديماً بعد تحديث صحيح دون أن تتغير كل طبقات المخبأ عشوائياً أوتفتح مشاركة تمثيل كان ينبغي أن يبقى خاصاً.
خزن تمثيل مدخل عاماً صراحة فقط
يعيد الجزء قائمة عامة متحققاً منها بعمر ستين ثانية اصطناعياً، لا سياسة جلسة أوحساب أوصلاحية. يطبق الوسيط قواعده فافحص الجمهور وVary للنشر. المساعد والاستيراد غير منفذين، ولا يثبت الرد ديمومة أونسخة احتياطية. أبعد الشخصي ونتيجة الكتابة عن المشاركة ما لم يصرح عقد مستقل بالمفتاح والحداثة. لا تصبح عبارة public صحيحة لأن المطور أضافها للترويسة؛ يجب أن يكون مصدر البيانات نفسه قد اختار الحقول والسجلات العامة قبل الوصول إلى وظيفة النقل هذه.
export async function GET(){
const courses=await catalog.validatedPublicList();
return Response.json({courses},{headers:{"cache-control":"public, max-age=60"}});
}
لم يبدأ المدخل والمدة اختيار عينة؛ لم يقس متصفح أوCDN.
لا يفرض الانتهاء والإبطال ترتيب معاملة
قد يملأ قارئ قديم بعد إبطال كاتب؛ تقصر TTL المدة ولا تزيل التداخل. استخدم النسخة أوالجيل حيث يلزم ولا تخزن الانقطاع كغياب. قد يغير العنوان قائمة وفرزاً وبيانات وصفية لا بطاقة فقط. تتبع الاعتماد ولا تعد invalidateAll تجديداً لكل مكان. أبعد الاعتماد عن المفتاح ووثق الوحدة والمخزن. ينبغي أن يتفق المنتج والمبطل على الهوية، وإلا فقد يمسح الكاتب تسمية تبدو مناسبة بينما يستمر القارئ في مدخل مختلف لم يتأثر بأي تحديث، فتكون المشكلة عقداً لا مجرد طول مدة.
احجز وقت الإنهاء قبل بدء المصدر
يطرح الحساب المنقضي وحجز الإنهاء من ميزانية ويحد الصفر، ولا يضبط برنامج تشغيل أويقطع استعلاماً أواتصالاً. يفرض الموائم الباقي والإلغاء المدعوم؛ قد يترك انتهاء العميل العمل. الأرقام تعليمية لا هدفاً عاماً. قيد العدد والتزامن والحجم مع الزمن؛ قد ترهق Promise.all غير المحدودة المجمع قبل أي رفض. لا يثبت فحص الحساب أن الرفض سيحرر المؤشر أوالمقبض، ولذلك يحتاج سلوك التنظيف اختبار الموائم الذي يملك المهمة الحقيقية لا مجرد الوظيفة التي حسبت عدد الميلي ثانية.
function remaining(total,elapsed,reserve){return Math.max(0,total-elapsed-reserve);}
console.assert(remaining(100,30,10)===60);
console.assert(remaining(100,95,10)===0);
console.assert(remaining(100,120,10)===0);
النتائج ستون وصفر وصفر بالوحدة نفسها دون فرض موعد أوإلغاء.
اختبر ضغط البديل وصحة المصدر معاً
قد يوجه انقطاع المخبأ طلبات كثيرة؛ قيد الملء والإعادة وحدد مالكاً فلا تتضاعف الطبقات. احترم معنى القدم؛ عنوان وصفي ليس صلاحية ملغاة. اختبر الحداثة والعزل والحمل والتنظيف بعينات آمنة. ينفذ المقرر الحساب فقط دون ترويسة فعلية أوCDN أوإبطال أوإلغاء أوأداء، فلا يدعي قياساً أوشهادة. يحتاج الحقيقي الموائم والبيئة المأذونين. ينبغي أن تتضمن المراجعة حالة المصدر المتعذر حتى لا يبدو تحسين نسبة الإصابة نجاحاً وهو يمنع تجديد بيانات يجب أن تسحب فور تغير أهلية المستخدم.
الأخطاء الشائعة وإصلاحها
يفترض أن معالجاً غير مخزن يعيد مصدراً حديثاً
- لماذا يحدث؟
- اختلطت طبقة مخبأ الرد بطبقة بيانات المصدر.
- كيف تصلحه؟
- حدد الحداثة وتحقق منها في كل طبقة فعلية.
- كيف تتجنب تكراره؟
- احفظ عينات نسخة المصدر ومخبأ الرد منفصلة.
تكشف ترويسة عامة مشتركة بيانات خاصة
- لماذا يحدث؟
- لم يراجع جمهور الرد قبل السماح بالمشاركة.
- كيف تصلحه؟
- صحح اختيار البيانات وسياسة المخبأ الخاص والمشترك معاً.
- كيف تتجنب تكراره؟
- اختبر هويات مختلفة على URL نفسها.
تضاعف الإعادات المتراكبة ضغط المصدر
- لماذا يحدث؟
- امتلكت طبقات متعددة الإعادة باستقلال دون ميزانية واحدة.
- كيف تصلحه؟
- اختر مالكاً محدود الإعادة وسياسة وقت متبقٍ.
- كيف تتجنب تكراره؟
- عد المحاولات لكل عملية منطقية باختبارات معزولة.
اختبر فهمك
1. هل تمسح invalidateAll مخبأ CDN أوالتطبيق تلقائياً؟
اعرض الحل المشروح
لا. تعمل بعقد load والتنقل، وللخارج وسياسات المجال واجهات مستقلة. حدد التمثيل وافحص النسخة المعتمدة وأصلح الطبقة، لا تكرر تجديد الواجهة حتى يتغير مصادفة.
2. لماذا لا تثبت دالة الميزانية إلغاء المصدر؟
اعرض الحل المشروح
تحسب أعداداً فقط؛ يتلقى الموائم موعداً أوإشارة مدعومة ويفرضها، وقد يبقى مورد بعد توقف الانتظار. افحص القطع والتنظيف مستقلين خصوصاً بعد كتابة ربما حفظت.
أهم ما تعلمته
- تحتاج مخابئ HTTP والمجال جمهوراً وحداثة صريحين.
- يجب أن تتسق المواعيد والتزامن وسياسة الإعادة.