هل من الممكن معرفة ما إذا كان الملف داخل ذاكرة التخزين المؤقت للمستخدم؟

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

  •  27-09-2019
  •  | 
  •  

سؤال

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

أعتقد أنه ربما يمكن لـ JavaScript القيام بذلك ، لذلك قمت بتمييز هذا المنشور على أنه JavaScript. إذا كان غير لائق ، الرجاء مساعدتي في إعادة تدوينه.

تعديل: هنا أعطي المزيد من التفاصيل حول ما سأنفذه. أنا أعمل على شيء مثل مستكشف الملفات المستند إلى الويب ، حيث يتم تحميل الصور المصغرة فقط إذا انقر المستخدم على زر "عرض Thumbnail" بجانب كل صورة. إذا تم تخزين الصورة المصغرة بالفعل ، فاستخدم النسخة المخزنة مؤقتًا ؛ خلاف ذلك ، أظهر أيقونة صورة عامة.

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

المحلول

يمكن للمتصفح إرسال رؤوس "IF-Modive-Since" و "ETAG" للإشارة إلى الخادم بأنه يحتوي على إصدار من مورد. افحص ال W3 قواعد التخزين المؤقت بخصوص هذه الرؤوس.

يمكنك الاستعلام عن تلك الرؤوس على الخادم ، وإرسال أيقونة عامة إذا لم يتم العثور عليها ، واستجابة "304 غير معدلة" إذا وجدت.

نصائح أخرى

هذا يبدو غريبا بعض الشيء بالنسبة لي.

تصف وظيفتك على أنها تعرض قائمة بالملفات وإعطاء المستخدم خيار النقر فوق "عرض Thumbnail". هذا يعني أنه سيحاول فقط تحميل الصورة من الخادم إذا طلب المستخدم الصورة على وجه التحديد - لذلك فقد أوقفت بالفعل احتمال حمولة كبيرة من عدد كبير من الصور.

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

الآن على حل ، أعترف أنه لا يفي بمتطلباتك ، ولكن هذا تطبيق نموذجي لهذا النوع من البرامج.

  1. اعرض الملفات بخيار "إظهار الصورة المصغرة"
  2. عند تحديد خيار "show thumbnail" ، قم بتحميل الصورة المصغرة من الخادم (لاحظ أنه في كثير من الأحيان يخدم البرنامج النصي صورة مجددة ، والتي قد يتم تخزينها أيضًا على الخادم لتجنب الحاجة إلى معالجة تغيير الحجم مرة أخرى مقابل كمية معينة من الوقت)
  3. سيقوم المتصفح تلقائيًا بتخزين الصورة ومنع المزيد من طلبات الخادم لفترة زمنية

قارئ RSS الخاص بي ، للأعلاف التي تحتوي على الكثير من المنشورات ، يقوم بتحميل صفحة كاملة من المنشورات. يعتمد عدد الإدخالات على حجم النافذة الفعلية. عندما أقوم بالتمرير إلى أسفل القائمة ، إذا كان هناك المزيد من المنشورات ، فسيتم تحميل صفحة أخرى.

هل سيكون ذلك قابلاً للتطبيق على مستكشف الملف الخاص بك؟ هذا يعني أن المستخدم سيحمل دائمًا عشرين صورة مصغرة ولكن لم يعد أكثر ما لم يكن ضروريًا. لم أستخدم مستكشف ملف يطلب مني النقر لعرض صورة مصغرة.

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

ألا يمكنك فقط نقل/حذف/إعادة تسميته على الخادم؟ ثم تعامل مع الصورة المكسورة مع javaScript Image.onerror لإخفاء علامة الصورة المكسورة للأشخاص الذين لا يملكون الصورة المخزنة مؤقتًا.

أعتقد أن ذلك سيظهر النسخة المخزنة مؤقتًا لأولئك الذين لديهم في صراخهم. لن يكون بقية الناس أي شيء

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