سؤال

أحاول تنفيذ JCROP مع قائمة بالصور. في الوقت الحالي ، عند النقر فوق الرابط إلى Crop ، يقوم صندوق Lightbox بتحميل مكالمة Ajax مع الصورة وجميع أدوات زراعة المحاصيل وكل شيء يعمل بشكل رائع. لقد اختبرت عبر عدة صور في DB وجميعها تبدو جيدة.

ومع ذلك ، بمجرد أن أقرع الصورة ويغلق Lightbox ، إذا حاولت بعد ذلك قصف الصورة مرة ثانية ، فإنها لا تزال تظهر لي الصورة الأصلية ، بدلاً من الصورة التي تم اقتصاصها حديثًا. هل هناك شيء في JCROP يخبّر الصورة وإذا كان الأمر كذلك ، فهل يمكنني إيقاف تشغيله بحيث يسحب الصورة الجديدة في كل مرة يتم استدعاؤها من خلال AJAX؟ (تحديث الصفحة تقوم بتحديث الصورة إلى واحدة صحيحة ، لكن هذا يهزم بعض الميزات الأخرى التي أمارسها في هذه الصفحة.)

شكرا مقدما!

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

المحلول

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

لست متأكدًا من النظام الأساسي من جانب الخادم الذي تقوم بتشغيله ، ولكن إليك حلًا سهلًا إذا كان Windows/IIs.

نصائح أخرى

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

Cache-Control: no-cache
Cache-Control: no-store
Cache-Control: max-age=0

هذا سيمنع التخزين المؤقت في أي حال.

كنت أيضًا أواجه نفس مشكلة ذاكرة التخزين المؤقت. كنت أستخدم نافذة Colorbox/Fancybox بعد تحميل AJAX. ولكن كان هناك نفس الصورة إما إذا قمت بتحديد الصورة الأخرى. ولكن عندما أقصّل الصورة ، تحرق الصورة الصحيحة ولكن الصورة التي تظهر في نافذة المحاصيل التي كانت قديمة.

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

التحيات ، جيتو

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