मेरे पास एक ऐप्पल है जो URLConnection का उपयोग कर http कनेक्शन पर छवियों को लोड कर रहा है। मैं सभी कनेक्शन के लिए setUseCaches (सत्य) सेट कर रहा हूं, लेकिन अभी भी कोई कैशिंग व्यवहार नहीं देख रहा हूं। मेरी छवि के HTTP शीर्षलेखों में उचित कैश सेटिंग्स हैं।URLConnection.setUseCaches() अभ्यास में कैसे काम करता है?
Java प्लग-इन के वर्तमान संस्करण (1.3.1) केवल फ़ाइलें हैं जिनके नाम .jar या .class में खत्म हो उसके ब्राउज़र कैश की जाँच करता है: आप bug 4528599 को देखें, तो यह नहीं बल्कि रहस्यमय बयान नहीं है। मुझे बताया गया है कि जावा प्लग-इन 1.4 के लिए ब्राउज़र कैश को निम्न फ़ाइल प्रकारों के लिए चेक किया जाएगा: .class, .jar, .zip, .jpg, .gif, .wav, .au।
बेशक, इसे 1.6 के लिए तय किया गया था, लेकिन 1.6 के तहत भी मुझे कोई कैशिंग दिखाई नहीं दे रहा है। मेरी छवियां पीएनजी फाइलें हैं, और कुछ मामलों में वास्तव में एक .png एक्सटेंशन के साथ समाप्त नहीं होती है। मुझे कोई कैशिंग नहीं दिख रही है।
बग फिक्स रिपोर्ट 1.6 एकीकृत डाउनलोड इंजन के बारे में बात करती है, लेकिन Google इसके बारे में बहुत कुछ नहीं जानता है।
क्या यह काम करना चाहिए या यह सिर्फ एक और टूटा हुआ सूर्य "फीचर" है। क्या कोई तरीका या कामकाज है जहां मैं ब्राउज़र कैश से पीएनजी छवियों को लोड करने के लिए अपना एप्लेट प्राप्त कर सकता हूं? मैं अपना खुद का कार्यान्वयन नहीं करना चाहूंगा ....
अद्यतन: कैशिंग ResponseCache कार्यान्वयन से जुड़ा हुआ प्रतीत होता है। यह कैसे काम करता है इस बारे में अधिक जानकारी के लिए this technote देखें। अंतिम पंक्ति कहती है:
जावा 2 मानक संस्करण में URLConnection कैशिंग का कोई डिफ़ॉल्ट कार्यान्वयन नहीं है। हालांकि, जावा प्लगइन और जावा वेबस्टार्ट बॉक्स में से एक प्रदान करते हैं।
तो ऐसा लगता है कि सवाल वास्तव में बनता है: जावा प्लगइन प्रतिक्रिया कैश कार्यान्वयन वास्तव में कैसे काम करता है? V1.4/v1.5/v.16
के बीच अंतर क्या हैं कोई भी कोई विचार है?
कैश लगातार होने पर स्वयं को लिखना गैर-तुच्छ है। आपको इसे एक साथ चलने वाले एकाधिक JVMs तक पहुंच योग्य बनाने की आवश्यकता है और आपको इसे आकार में सीमित करने की आवश्यकता है। यह वास्तव में काम करना चाहिए .... arrgh ... –
मैं निश्चित रूप से अपने स्वयं के कैश को घुमाने की सलाह नहीं दूंगा। यदि ग्राहक और सर्वर सही HTTP शीर्षलेख भेज रहे हैं लेकिन क्लाइंट और सर्वर के बीच कोई इंटरमीडिएट HTTP कैश स्थापित नहीं है, तो वर्नीश, पाउंड या स्क्विड जैसे प्रॉक्सी कैश इंस्टॉल करें। –