محتويات الدورة

Svelte / المتوسط: مسارات Kit وسياسة بيانات الخادم / الدرس 8

عقود تحميل البيانات الخادمي والعام

اختر موضع تنفيذ load وأعد بيانات مفوضة قابلة للتسلسل فقط مع ضبط المصدر وإعادة التحميل.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • ميز تنفيذ load الخادمية والعامة وتسلسل نتيجتهما.
  • تحقق من شكل المصدر وقيد القراءات المستقلة دون شلال انتظار.

يختار ملف load حد تنفيذ

تعمل load ذات server في الخادم، وقد تعمل العامة في SSR ثم تنقل المتصفح وفق القواعد. أبق الاعتماد والمصدر الخاص خلف الخادم. تعبر النتيجة تسلسلاً وتناسب جمهور الصفحة. تدعم Kit أكثر من JSON وفق التوثيق ولا يجيز ذلك الإفصاح؛ قد يسرب الخادمي سراً يعيده عمداً. اختر DTO ضيقة وأهلية مصدر بعقد مراجع. لا تجعل فحص نوع تسلسل ناجح دليلاً على أن كائن مستخدم كامل مناسب للمتصفح، فبعض خصائصه قد تكون مدعومة تقنياً وخاصة سياسياً في الوقت نفسه.

اقرأ locals الحالية وأعد نموذجاً عاماً

تستخدم load الخادمية params وهوية في locals أنشأها hook مراجع، وتسجل تسمية اعتماد للإبطال المستهدف. locals سياق طلب لا برهان مصادقة؛ يفرض hook والخدمة العقد. يعيد المساعد بطاقة ضيقة مؤهلة ويعالج الغياب وفق السياسة. لم تشغل load أوhook أوfetch أوتسلسلاً. لا تستورد المساعد الخاص في العامة متوقعاً حماية موضعه الأصلي. قد يخطئ رسم الاستيراد قبل وصول أي طلب حقيقي، لذلك يظل فحص حد الوحدة جزءاً مختلفاً عن اختبار نتيجة الخدمة الاصطناعية.

javascript حد load خادمية توضيحي
// src/routes/courses/[id]/+page.server.js
export async function load({params,locals,depends}) {
  depends("app:course-card");
  const course=await catalog.visibleCard(locals.principal,params.id);
  return {course};
}

يفترض catalog وإثبات الهوية، ولم ينشأ سياق أو إعادة اعتماد.

استخدم عقد fetch الواعية بالطلب بقصد

لـfetch المقدمة سلوك للنسبي والداخلي وSSR لا يعادل global دائماً. اتبع قواعد الاعتماد والترويسة للوجهة ولا تمرر رمزاً لكل URL وارد. افحص الحالة والشكل مستقلين، وتجنب دورة مدخل داخلي حين يخدم المساعد المفوض مباشرة. ميز الغياب والنقل والحمولة والمنع بنتائج آمنة وربط داخلي مضبوط. لا يثبت وجود عنوان API في المشروع أنه يعمل وقت التحضير أو أنه يرث هوية طلب الخادم بالطريقة التي افترضها المطور، ولذلك ينبغي أن تظل كل قفزة إضافية مبررة ومختبرة.

تحقق من حمولة مصدر واحدة دون محاكاة load

يقبل المحقق بطاقة بمعرف وعنوان نصيين ويختارهما ويرفض الشكل قبل العرض. ليس نظام مخطط أوتفويض شاملاً وقد يحتاج نسخة وطولاً ومستأجراً. تعترف JSON بالصياغة ويغير تأكيد النوع الاعتقاد لا المستلم. التأكيدات محلية بلا اتصال. افحص تسلسل Kit وإعادة load والخطأ قبل وصول data أوالسياق مستقلاً. قد تكون الدالة صحيحة لكن مساراً آخر يتجاوزها ويعيد كياناً خاماً؛ لذا يتطلب عقد المصدر أيضاً معرفة كل المنتجين الذين يقدمون هذه البيانات للصفحة أو التخطيط.

javascript محقق بطاقة مصدر محلي كامل
function validCard(value){
  if(!value || typeof value!=="object" || Array.isArray(value) || typeof value.id!=="string" || typeof value.title!=="string")throw new Error("INVALID_CARD");
  return {id:value.id,title:value.title};
}
console.assert(validCard({id:"c1",title:"Loading",internal:"omit"}).title==="Loading");
let rejected=false;try{validCard({id:"c1",title:7});}catch{rejected=true;}console.assert(rejected);

تختار بطاقة صحيحة ويرفض عنوان مخالف النوع دون load أو طلب مصدر.

قيد عمل المصدر وأعلن الاعتماد المهم

لا تنتظر المستقل بالتتابع ولا تنشئ وعداً لكل عنصر غير محدود؛ قيد العدد والتزامن قبل البدء. قد تسبب parent المبكرة شلالاً مع إمكان المستقل. تتبع params وURL وdepends وفق الإبطال ولا تفترض إعادة الجميع عند كل تنقل. أبق العرض والمسبق بلا أثر. يشغل المقرر المحقق فقط دون جدولة أوأب أوإحالة اعتماد أوإبطال أوإلغاء. يحتاج الباقي موائم Kit وعينات معزولة. يساعد هذا الفصل على معرفة هل البطء من اعتماد حقيقي أو من تسلسل كتب عرضياً، وهل القيمة القديمة من عدم إعادة load أو من مصدر يعيد بيانات مخزنة.

الأخطاء الشائعة وإصلاحها

تستورد load عامة اعتماد مصدر خاصاً

لماذا يحدث؟
خلط تنفيذ خادمي خاص بمسار يمكن أن يعمل في المتصفح.
كيف تصلحه؟
انقل المصدر الخاص خلف load أو مساعد خادمي فقط.
كيف تتجنب تكراره؟
راجع رسم استيراد المتصفح والبيانات المعادة منفصلين.

تحمل JSON صحيحة بطاقة مخالفة

لماذا يحدث؟
حل تحليل الصياغة محل فحص الشكل وقواعد المجال.
كيف تصلحه؟
تحقق من السجلات المستلمة واختر نموذج الصفحة.
كيف تتجنب تكراره؟
اختبر الأنواع والغياب وفشل المصدر بصورة مستقلة.

يخلق انتظار parent غير اللازم شلالاً بطيئاً

لماذا يحدث؟
رتبت بنية load قراءات مستقلة بالتتابع.
كيف تصلحه؟
حدد الاعتماد الحقيقي وجدول المستقل المحدود بما يناسبه.
كيف تتجنب تكراره؟
قس زمن مراحل المصدر دون جمع المتداخل عشوائياً.

اختبر فهمك

1. هل يجعل إرجاع قيمة من load خادمية تلك القيمة خاصة؟

اعرض الحل المشروح

لا. تصل البيانات للصفحة وقد تعبر للمتصفح. أبق الاعتماد خادمياً وافرض أهلية الكائن وأعد نموذج الجمهور المعتمد فقط. اختبر مفاتيح النتيجة بجانب حد الاستيراد.

2. لماذا لا يثبت محقق المصدر عمل إبطال load؟

اعرض الحل المشروح

يستقبل كائناً بلا رسم Kit أوتنقل أوطلب. يحتاج الإبطال قراءة مدخل متتبع أو إعلان اعتماد صحيح واستدعاء إبطاله. تحقق من إعادة التنفيذ والنسخة المعروضة بدمج مأذون.

أهم ما تعلمته

  • تنفيذ load والإفصاح عن نتيجتها حدان منفصلان.
  • تتبع الاعتماد المعني وقيد المصدر قبل العرض.

المراجع الرسمية