سؤال

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

static {
    ac = new ImageIcon(MyClass.class.getResource("images/ac.png")).getImage();
    dc = new ImageIcon(MyClass.class.getResource("images/dc.png")).getImage();
    //...other images
}

كيف يمكن تجنب ذلك؟

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

المحلول

هل يشمل التطبيق الصغير إلى صفحة HTML؟ إذا كان الأمر كذلك، في محاولة لتمكين التخزين المؤقت JAR، كما هو موضح هنا: <لأ href = "http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/applet_caching.html" يختلط = "noreferrer نوفولو"> http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/applet_caching.html

وإذا كان هذا لا يساعد لسبب :) ربما فضح ما تبذلونه من الموارد / الصور على طول JAR الصغير على خادم الويب والوصول إليهم باستخدام طلبات HTTP منفصلة (نعم، القبيح، ونعم، فإنه لا يقلل من عدد من التنزيلات المطلوبة ، ولكن على الأقل يقلل من كمية البيانات التي تحتاج إلى نقلها).

نصائح أخرى

وببساطة إزالة كافة مثيلات URLConnection.setDefaultUseCaches (كاذبة) سوف يحل المشكلة.

يرجى الرجوع لمزيد من التفاصيل.

HTTP: // جافا تقاطع .blogspot.com / 2009/11 / بريمج جرة التخزين المؤقت لا للworking.html

وفقط الحل:

هل يمكن وضع الصور الخاصة بك في ملف مضغوط داخل الجرة، الحصول على ذلك باستخدام ZipInputStream واستخراج الصور من هناك.

ما هو Java VM الذي تستخدمه؟وأي خادم تستخدمه؟

  • يوجد خطأ في البرنامج الإضافي للمتصفح على نظام التشغيل Linux.
  • إذا لم يرسل الخادم التاريخ المعدل، فلن تتمكن Java من تخزين ملف الجرة مؤقتًا.

إذا الصغير الاتصال بتحميل دائما الجرة على الرغم من أن يتم مؤقتا جرة، تأكد من أنك لم تعطيل التخزين المؤقت للURLConnection عبر وAPI: URLConnection.setUseCaches وURLConnection.SetDefaultUseCaches

وآلية ImageIcon والأساسية لجلب الموارد هي URLConnection. داعيا URLConnection.setDefaultUseCaches(false)، يضع "جزءا من حالة ثابتة من كل URLConnections" التي تتسبب في JRE تجاهل ذاكرة التخزين المؤقت وأعد تنزيل جرة كاملة في كل مرة الوصول إليها.

وببساطة إزالة كافة مثيلات setDefaultUseCaches سوف يحل المشكلة.

وهذا هو ما بعد ثانية من: HTTP: //java-junction.blogspot.com/2009/11/applet-jar-caching-not-working.html

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