أصبح الوصول دون اتصال بالإنترنت ذا أهمية متزايدة للتطبيقات المستندة إلى الويب. على الرغم من أن جميع المتصفحات تحتوي على آليات تخزين مؤقت، إلا أنها غير موثوقة وقد لا تعمل دائمًا كما هو متوقع. يستخدم HTML5 واجهة ApplicationCache لحل بعض المشكلات الناجمة عن عدم الاتصال بالإنترنت.
يوفر استخدام واجهة ذاكرة التخزين المؤقت ثلاث مزايا لتطبيقك:
تتيح ذاكرة التخزين المؤقت للتطبيق (المعروفة أيضًا باسم AppCache) للمطورين تحديد الملفات التي يجب تخزينها مؤقتًا بواسطة المتصفح ليتمكن المستخدمون غير المتصلين بالإنترنت من الوصول إليها. حتى إذا ضغط المستخدم على زر التحديث أثناء عدم الاتصال بالإنترنت، فسيتم تحميل تطبيقك وتشغيله بشكل طبيعي.
ملف البيان المرجعيلتمكين التخزين المؤقت للتطبيق لأحد التطبيقات، قم بإضافة سمة البيان إلى علامة html الخاصة بالمستند:
يمكن أن تشير سمة البيان إلى عنوان URL مطلق أو مسار نسبي، ولكن يجب أن يكون لعناوين URL المطلقة نفس أصل تطبيق الويب المقابل. يمكن أن يستخدم ملف البيان أي امتداد للملف، ولكن يجب تقديمه بنوع MIME الصحيح (انظر أدناه).
<htmlmanifest=/cache.manifest> ...</html>
أو
<html Manifest=http://www.example.com/example.mf> ...</html>
يجب عليك إضافة سمة البيان في كل صفحة من تطبيق الويب الخاص بك التي تريد تخزينها مؤقتًا. إذا كانت صفحة الويب لا تحتوي على سمة بيان، فلن يقوم المتصفح بتخزين الصفحة مؤقتًا (ما لم يتم إدراج السمة بشكل صريح في ملف البيان).
وهذا يعني أن كل صفحة ويب يتصفحها المستخدم وتحتوي على بيان ستتم إضافتها ضمنيًا إلى ذاكرة التخزين المؤقت للتطبيق. لذلك، لا تحتاج إلى إدراج كل صفحة في مخزونك.
يجب توفير ملفات البيان كنوع MIME نص/بيان ذاكرة التخزين المؤقت. يمكن تخصيص اسم لاحقة الملف (يوصى بـ .manifest)، لذلك نحتاج إلى الإعلان عن نوع الملف باللاحقة .manifest كنص/بيان ذاكرة التخزين المؤقت على جانب الخادم.
لنأخذ Apache كمثال، نحتاج إلى إضافة: AddType text/cache-manifest .manifest إلى httpd.conf
هيكل الملف الواضحتنسيق القائمة البسيط هو كما يلي:
بيان ذاكرة التخزين المؤقتindex.htmlstylesheet.cssimages/logo.pngscripts/main.js
سيقوم هذا المثال بتخزين أربعة ملفات على صفحة الويب التي تحدد ملف البيان هذا.
عليك الانتباه إلى النقاط التالية:
دعونا نلقي نظرة على مثال أكثر تعقيدا:
CACHE MANIFEST# 2010-06-18:v2# تم تخزين "الإدخالات الرئيسية" بشكل صريح في ذاكرة التخزين المؤقت.CACHE:/favicon.icoindex.htmlstylesheet.cssimages/logo.pngscripts/main.js# الموارد التي تتطلب أن يكون المستخدم متصلاً بالإنترنت.NETWORK:login. php/myapihttp://api.twitter.com# static.html سيتم تقديمه إذا كان main.py غير قابل للوصول #offline.jpg سيتم عرضه سيتم عرضها بدلاً من جميع الصور في الصور/large/#offline.html سيتم عرضها بدلاً من جميع ملفات .html الأخرىFALLBACK:/main.py /static.htmlimages/large/ Images/offline.jpg*.html /offline.html
الأسطر التي تبدأ بـ # هي أسطر تعليق، ولكن يمكن استخدامها لأغراض أخرى أيضًا. على سبيل المثال، تحديث ذاكرة التخزين المؤقت
يتم تحديث ذاكرة التخزين المؤقت للتطبيق فقط عندما يتغير ملف البيان الخاص به. على سبيل المثال، إذا قمت بتعديل مصدر صورة أو تغيير وظيفة JavaScript، فلن تتم إعادة تخزين هذه التغييرات مؤقتًا. يجب عليك تعديل ملف البيان نفسه للسماح للمتصفح بتحديث ملف ذاكرة التخزين المؤقت. يضمن إنشاء أسطر تعليق بأرقام الإصدارات التي تم إنشاؤها أو تجزئات الملفات أو الطوابع الزمنية حصول المستخدمين على أحدث إصدار من برنامجك.
يمكنك أيضًا تحديث ذاكرة التخزين المؤقت برمجيًا عند توفر إصدار جديد، كما هو موضح في قسم تحديث ذاكرة التخزين المؤقت.
إذا كانت الصفحة تقدم ملف بيان ذاكرة تخزين مؤقت، فيجب أن يحتوي ملف البيان على جميع الملفات (css، js، image...) التي تتطلبها الصفحة الحالية، وإلا فلن يتم تحميله، باستثناء الملفات التي تحتاج إلى تخزين مؤقت. فمن المستحسن إضافة NETWORK في الملف. قم بإضافة علامة النجمة * إلى عنصر للإشارة إلى كافة الملفات الأخرى
يمكن أن يتضمن البيان ثلاثة أقسام مختلفة: ذاكرة التخزين المؤقت، والشبكة، والرجوع.
مخبأ:هذا هو الجزء الافتراضي من الإدخال. يتم تخزين الملفات المدرجة تحت هذا الرأس (أو الملفات التي تلي CACHE MANIFEST مباشرة) مؤقتًا بشكل صريح بعد تنزيلها لأول مرة.
شبكة:الملفات المدرجة ضمن هذا القسم هي موارد مدرجة في القائمة البيضاء والمطلوبة للاتصال بالخادم. تتجاوز كافة طلبات هذه الموارد ذاكرة التخزين المؤقت بغض النظر عما إذا كان المستخدم غير متصل أم لا. يمكن استخدام أحرف البدل.
التراجع:هذا القسم اختياري ويحدد صفحة احتياطية إذا تعذر الوصول إلى المورد. يمثل URI الأول المورد، بينما يمثل الثاني صفحة الدعم. يجب أن يكون معرفي URI مرتبطين ويجب أن يكون لهما نفس أصل ملف البيان. يمكن استخدام أحرف البدل.
ملاحظة: يمكن ترتيب الأقسام بأي ترتيب، ويمكن أن يظهر كل قسم بشكل متكرر في نفس القائمة.
تحدد القائمة التالية صفحة الويب الشاملة (offline.html) التي يتم عرضها عندما يحاول المستخدم الوصول إلى جذر الموقع دون اتصال بالإنترنت، وتشير أيضًا إلى أن كافة الموارد الأخرى (مثل تلك الموجودة على المواقع البعيدة) تتطلب اتصالاً بالإنترنت.
CACHE MANIFEST# 2010-06-18:v3# سيتم عرض الإدخالات المخزنة مؤقتًا بشكل صريحindex.htmlcss/style.css# دون اتصال.html إذا كان المستخدم غير متصل بالإنترنتFALLBACK:/// /offline.html# تتطلب جميع الموارد الأخرى (مثل المواقع) المستخدم متصل بالإنترنت.الشبكة:*# موارد إضافية لذاكرة التخزين المؤقت:images/logo1.pngimages/logo2.pngimages/logo3.png
يرجى ملاحظة: يتم تخزين ملفات HTML التي تشير إلى ملفات البيان مؤقتًا تلقائيًا. لذلك لا تحتاج إلى إضافته إلى قائمتك، ولكننا نوصي بذلك.
ملاحظة: سيتم استبدال رؤوس ذاكرة التخزين المؤقت وحدود ذاكرة التخزين المؤقت التي تم تعيينها على الصفحات التي يتم عرضها عبر SSL ببيانات ذاكرة التخزين المؤقت. ولذلك، يمكن تشغيل صفحات الويب التي يتم عرضها عبر https دون الاتصال بالإنترنت.
تحديث ذاكرة التخزين المؤقتستظل التطبيقات مخزنة مؤقتًا أثناء عدم الاتصال بالإنترنت ما لم يحدث أحد الحالات التالية:
ما ورد أعلاه هو المحتوى الكامل لهذه المقالة وآمل أن يكون مفيدًا لدراسة الجميع وآمل أيضًا أن يدعم الجميع شبكة VeVb Wulin.