يعني التخزين المؤقت لما يسمى بالمتصفح أنه عند الوصول إلى صفحة ويب لأول مرة ، سيقوم المتصفح بتخزين صفحات الويب هذه محليًا. عند الوصول إلى صفحات الويب المخبأة هذه في المرة القادمة ، سيقرأ المستعرض مباشرة محتوى صفحات الويب هذه من المنطقة المحلية دون الحاجة إلى الحصول عليها من الشبكة.
على الرغم من أن وظيفة التخزين المؤقت التي يوفرها المتصفح يمكنها تحسين سرعة تحميل صفحات الويب بشكل فعال ، بالنسبة لبعض صفحات الويب التي تتطلب تحديثات في الوقت الفعلي ، فإن آلية التخزين المؤقت هذه ستؤثر على العرض العادي لصفحات الويب. لحسن الحظ ، هناك ثلاثة حقول في رأس رسالة استجابة HTTP لإيقاف وظيفة ذاكرة التخزين المؤقت لمتصفح العميل. تستخدم العبارات الثلاثة التالية هذه الحقول الثلاثة لإغلاق ذاكرة التخزين المؤقت للمتصفح:
Response.setDateHeader ("Expires" ، 0) ؛ reponse.Setheader ("Cache-Control" ، "no-cache") ؛ desponse.setheader ("pragma" ، "no-cache") ؛على الرغم من أن حقول رأس رسالة استجابة HTTP الثلاثة أعلاه يمكن أن تغلق جميع ذاكرة التخزين المؤقت للمتصفح. ومع ذلك ، لا تدعم جميع المتصفحات حقول رؤوس رسالة الاستجابة الثلاثة هذه ، لذلك من الأفضل استخدام حقول رأس رسالة الاستجابة الثلاثة أعلاه لإغلاق ذاكرة التخزين المؤقت للمتصفح.
مثال: تعطيل المتصفحات من صفحات ويب Cache الحالية
1. مثال الوصف
يوضح هذا البرنامج الأداء عند إرسال رسائل الطلب من خلال النموذج عندما لا يتم إغلاق ذاكرة التخزين المؤقت للمتصفح ويتم إغلاق ذاكرة التخزين المؤقت للمتصفح.
2. اكتب فئة ذاكرة التخزين المؤقت
يتم إغلاق ذاكرة التخزين المؤقت للمتصفح باستخدام حقول رأس رسالة الاستجابة الثلاثة أعلاه في فئة ذاكرة التخزين المؤقت وإخراج جزء من رمز HTML للعميل لاختبار تأثير إغلاق ذاكرة التخزين المؤقت وعدم إغلاق ذاكرة التخزين المؤقت. رمز التنفيذ لفئة ذاكرة التخزين المؤقت كما يلي:
يمتد ذاكرة التخزين المؤقت للفئة العامة httpservlet {خدمة void العامة (طلب httpservletrequest ، استجابة httpservletresponse) servletexception ، ioException {reponse.setContentType ("text/html ؛ charset = utf-8") ؛ سلسلة ذاكرة التخزين المؤقت = request.getParameter ("ذاكرة التخزين المؤقت") ؛ if (cache! = null) {if (cache.equals ("false")) {// أغلق متصفح cache response.setDateHeader ("Expires" ، 0) ؛ استجابة. استجابة. }} // تحديد سلسلة رمز html html = "<form id = 'form' ، Action = 'test' method = 'post'>" + "name: <input type = 'text' name = '' printWriter out = response.getWriter () ؛ out.println (html) ؛ // إخراج رمز HTML للعميل}}كما يتضح من الكود أعلاه ، يتم إغلاق ذاكرة التخزين المؤقت للمتصفح عندما تكون قيمة معلمة طلب ذاكرة التخزين المؤقت خاطئة.
3. تكوين فئة ذاكرة التخزين المؤقت
رمز التكوين لفئة ذاكرة التخزين المؤقت كما يلي:
<Vervlet> <Sradlet-Name> ذاكرة التخزين المؤقت </servlet-name> <Sradlet-Class> الفصل.
4. اختبر الموقف الذي لم يتم إغلاق ذاكرة التخزين المؤقت للمتصفح
أدخل عنوان URL التالي في شريط عنوان المتصفح:
http: // localhost: 8080/demo/cache؟ cache = true
أدخل أي سلسلة في مربع النص [name] وانقر فوق الزر [إرسال]. في هذا الوقت ، سيعرض المتصفح استثناء (يحدث هذا الاستثناء بسبب الاختبار المقدم غير الموجود ، لذلك لا داعي للقلق بشأنه) ، ثم انقر فوق زر إرجاع المتصفح للعودة إلى الصفحة التي تم فيها إدخال البيانات الآن. يمكننا أن نرى أن السلسلة دخلت الآن لا تزال موجودة. هذا يعني أنه عند العودة ، لا يستعيد المستعرض الصفحة من الخادم ، ولكنه يعيد تحميل الصفحة الحالية من ذاكرة التخزين المؤقت المحلية.
5. اختبر وضع ذاكرة التخزين المؤقت للمتصفح
أدخل عنوان URL التالي في شريط عنوان المتصفح لإغلاق ذاكرة التخزين المؤقت للمتصفح:
http: // localhost: 8080/demo/cache؟ cache = false
إرسال والعودة في الخطوة السابقة ، ووجدت أن البيانات التي تم إدخالها الآن قد ولت. هذا يعني أنه بعد إغلاق ذاكرة التخزين المؤقت للمتصفح ، سيقوم المتصفح دائمًا بإعادة الصفحة الحالية من الخادم في كل مرة يعود فيها. لذلك ، تحافظ الصفحة الحالية دائمًا على القيمة الأولية.
6. ملخص الإجراء
عند إغلاق ذاكرة التخزين المؤقت للمتصفح ، من أجل التأكد من أنه فعال في معظم المتصفحات قدر الإمكان ، أوصي باستخدام حقول رأس رسالة استجابة HTTP المذكورة أعلاه لإغلاق ذاكرة التخزين المؤقت للمتصفح في نفس الوقت.
لخص
ما ورد أعلاه هو طريقة حظر Javaweb من حظر المتصفحات من تخزين صفحات الويب الحالية. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!