استخدام JavaScript لإبطال ذاكرة التخزين المؤقت للمتصفح

StackOverflow https://stackoverflow.com/questions/2169361

  •  24-09-2019
  •  | 
  •  

سؤال

أقوم بمشروع في Django وأستخدم Djangos-CSS (http://github.com/dziegler/django-css) وساس (http://sass-lang.com/). يتم تقديم ملفات SASS في التطوير باستخدام Django-CSS. أريد أن أكتب روتين JavaScript الذي سيسترجع كل ثانية من أصول CSS. الغرض من ذلك هو أن يتمكن المصمم من تحرير ملفات SASS ، وضرب الحفظ ، ويرى النتيجة في المستعرض فورًا دون تبديل التطبيقات والضرب.

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

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

المحلول

عادة ما تكون أبسط طريقة هي إضافة معلمة فريدة من نوعها على عنوان URL ، غالبًا ما أستخدم الطابع الزمني

var timestamp = (new Date()).getTime();
url += '?time=' + timestamp;

فقط كن حذرًا إذا كانت طلباتك لديها معلمات بالفعل ، فأنت بحاجة إلى إضافة &time=' + timstamp في حين أن.

لا يمكن للمتصفح تخزين الطلب لأن كل طلب يبدو فريدًا.

نصائح أخرى

لن تقوم جميع ذاكرة التخزين المؤقت بتخزين محتوى مع سلسلة استعلام.

ستيف سوديرز يوصي ، "... تجنب QueryString للموارد القابلة للتخطيط". وجد أنه في هذه الحالة لن يتم تخزين الطلبات 5-20 ٪. لا تعمل سلاسل الاستعلام على وجه الخصوص على الإطلاق مع بعض CDNs لإبطال ذاكرة التخزين المؤقت.

الطريقة الأفضل هي إنشاء MD5 باستخدام اسم ملف JavaScript لكل إصدار على سبيل المثال

{path to script file}/filename-{md5 hash}.js

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