سؤال

أحاول إنشاء امتداد إلى Firefox للحصول على صفحة من خادم ويب ووضعها في ذاكرة التخزين المؤقت للمتصفح ، بحيث عندما يسأل المستخدم عن هذا الرابط ، سيتم استرداده مباشرة من ذاكرة التخزين المؤقت خادم الويب الأصلي.

لكنني أواجه مشكلة في بعض الصفحات التي تضع الرؤوس لتجنب قابلية التخزين ، مثل "السيطرة على ذاكرة التخزين المؤقت: يجب إعادة تقييمها" ، "Cache-Control: No Store" ، "Cache-Control: No Cache" و "Pragma" : عدم وجود آثار ".

أحاول الكتابة فوق تلك الرؤوس باستخدام setResponseHead's NSIHTPChannel عند وصول الصفحة. لكن لا يتم تغيير الرؤوس في إدخال ذاكرة التخزين المؤقت المقابلة. ثم أحاول SetMetAdataElement من NsicacheentryDescriptor لتغيير مفتاح البيانات الوصفية "رأس الاستجابة". على الرغم من تغيير البيانات ، لا يزال يتم استرداد الصفحة من خادم الويب الأصلي.

هل يعرف أي شخص كيفية التغلب على هذه المشكلة وجعل الصفحات يتم تحميلها من ذاكرة التخزين المؤقت لـ Firefox؟ هل هذا ممكن؟

شكرا مقدما.

هل كانت مفيدة؟

المحلول

كنت أستخدم xmlhttprequest لاسترداد الصفحة ، وكانت المشكلة هي أنني غيرت رؤوس الاستجابة في وظيفة "onReadyStateChange" التي قمت بها.

بديلاً ، استخدمت المراقب لـ "HTTP-ON-Examine-Response" ، وقمت بتغيير رؤوس الاستجابة في طريقة "مراقبة". يتم الآن الاحتفاظ بالتغيير بواسطة ذاكرة التخزين المؤقت.

لدي نظرة ثاقبة من خلال النظر إلى BetterCache رمز امتداد Firefox.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top