عند استخدام Internet Explorer 8 لاختبار تطبيق الويب الخاص بي ، غالبًا ما أجد أنه لا يعيد تحميل الصفحة ، لذلك لا أرى تغييراتي. وقد نتج عن هذا الكثير من الوقت الضائع والإحباط الذي يتساءل لماذا لم يعمل الإصلاح الخاص بي - في حين أن المتصفح لم يسبق له تحميل النسخة الثابتة.
لقد جربت الزر تحديث. لقد حاولت F5، Control-F5، Control-R، Control-Shift-R، تحتجز Control أثناء النقر فوق الزر "تحديث" ، كل ما يمكنني التفكير فيه - لا يقوم بالفعل بتحميل المحتويات الجديدة من الخادم. لقد أكدت هذا مع عازف الكمان.
كيف يمكنني معرفة IE "لا يهمني ما تعتقد أنك قمت بتخزينه مؤقتًا ، أريد إعادة التحميل الصفحة - لا حقًا ، أنا أقصدها هذه المرة ، بصدق الله ، أريدك أن فعليًا اذهب إلى الخادم وقم بتنزيل كل شيء مرة أخرى "؟
نظرًا لأن متصفح IE8 هو المتصفح ، يمكنك الضغط عليه F12 لفتح أدوات التطوير وحدد قائمة ذاكرة التخزين المؤقت في الجزء العلوي ثم تحديث دائمًا من الخادم لتجاوز ذاكرة التخزين المؤقت.
باختصار ، اضغط F12. انقر فوق ذاكرة التخزين المؤقت -> التحديث دائمًا من الخادم
يمكنك ببساطة مسح ذاكرة التخزين المؤقت هنا أيضًا ، إذا كان هذا هو الإجراء المطلوب. خيار التحديث دائمًا ليس خيارًا عامًا ولن يعيق الأداء العام في IE.
يحتوي IE7 أيضًا على أدوات تطوير ، ولكن يجب تثبيتها بشكل منفصل. يمكنك أيضًا استخدام أدوات تطوير IE8 لتشغيل المتصفح في وضع IE7.
Ctrl+F5 في IE يعيد تحميل الصفحة متجاهلاً ذاكرة التخزين المؤقت
إن IE حريصة جدًا على تخزين صفحات ذاكرة التخزين المؤقت ، حتى عندما تخبرها بعدم ذلك عبر رؤوس ذاكرة التخزين المؤقت. Microsoft KB 234067 يوضح التعويذات المطلوبة. باختصار ، تحتاج إلى تسليم الرؤوس التالية.
Pragma: no-cache
Cache-Control: no-cache
Expires: <some time in the past>
يجب أن يعمل إعداد Expires = -1
(كما هو موصى به في مقالة KB) على معظم الأطر ؛ المتصفحات مطلوبة للتعامل مع تنسيقات التاريخ غير صالحة كما كانت في الماضي ( RFC 2616 ).
في .NET ، يمكنك القيام بذلك على التفاصيل الدقيقة لكل صفحة عن طريق استخدام هذه المجموعة من الطرق قبل الاتصال بصفحة الويب:
HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Response.Cache.SetValidUntilExpires(false);
HttpContext.Response.Cache.SetRevalidation(System.Web.HttpCacheRevalidation.AllCaches);
HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
HttpContext.Response.Cache.SetNoStore();
راجع: http://www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/ يعمل بشكل جيد مع MVC3.0.
يحتوي شريط أدوات مطور الويب على زر لمسح ذاكرة التخزين المؤقت بسهولة. أنا عادة استخدام ذلك في حالة وصفك.
هذا ليس مثاليًا ، نظرًا لأنك قد لا تريد حقًا مسح ذاكرة التخزين المؤقت بأكملها ، لكن بما أنني لا أستخدم IE للتصفح العام ، فهو مناسب لي.
هذا لا يزال يحدث في IE9. مثير للدهشة ، الجواب هو Ctrl-Shift-تحديث زر
بالمناسبة ، ربما توجد المشكلة لمشاهدي موقع الويب الخاص بك أيضًا. رأيت الفكرة التالية في كتاب AJAX...
استخدم PHP لإضافة رمز عشوائي إلى عنوان URL الحالي حتى يتم خداع المتصفح في التفكير في أنه صفحة منفصلة.
لقد واجهت نفس المشكلة بنفسي. أعتقد أن الطريقة الوحيدة للقيام بذلك هي مسح ذاكرة التخزين المؤقت (الأمان -> حذف سجل التصفح). تحقق فقط من "ملفات الإنترنت المؤقتة".
أتمنى أن يساعدك هذا.
باستمرار إما alt أو ctrl المفتاح عند النقر فوق زر التحديث.
أعلم أن هذا قد يبدو غريبًا بعض الشيء ... ولكن هناك شيء واحد لاحظته مؤخرًا ، وهو أنك تحصل في بعض الأحيان على نتائج مختلفة اعتمادًا على كيفية "تحديث". لقد رأيت السلوك التالي:
F5 > تحميل من ذاكرة التخزين المؤقت دون تحديث ،
Alt+D، ENTER > حقا ينعش تجاوز ذاكرة التخزين المؤقت.
(Alt+D يمكن استبداله بالنقر فوق في شريط العناوين)
أوافق على أن إضافة رمز عشوائي إلى عنوان url هو الحل الأكثر موثوقية وبمجرد تنفيذه ، لا يتعين على المستخدم فعل أي شيء.
بصرف النظر عن نهج الرمز العشوائي الذي أميل إلى فعله دائمًا لفرض إعادة تحميل كاملة (طلب) للصفحة وجميع ملفاتها التابعة ، أضع مؤشر الماوس في نهاية عنوان url واضغط على Enter. يعمل في كل مرة ... وأستخدم IE 8.
F12 -> CTRL+R أسرع قليلاً لـ IE9 +. كما ذكر الأشخاص ، IE لا تقوم بمسح ذاكرة التخزين المؤقت بذكاء كما يفعل Chrome.