2010-01-28 13 views
5

मुझे वर्तमान में काम कर रहे एक साइट के साथ परेशानी हो रही है।मैं टोमकैट कैशिंग को पूरी तरह अक्षम कैसे कर सकता हूं?

हम फेसबुक कनेक्ट टिप्पणियां विजेट बनाने की कोशिश कर रहे हैं। जब भी हम एक नया अनुरोध करते हैं तो विजेट लोड होता है जो 200 ओके स्थिति के साथ प्रतिक्रिया देता है। लेकिन जब यह 304 संशोधित नहीं होता है तो विजेट लोड नहीं होता है।

यह सब एक कैशिंग मुद्दे के लिए इंगित करता है। मैंने context.xml

<Context cachingAllowed="false"> 

यह बदलना प्रतीत नहीं हुआ। कोई सुझाव?

उत्तर

0

ऐसा लगता है कि क्लाइंट ब्राउज़र कैशिंग में समस्या है, अपने अनुरोध में यादृच्छिक संख्या को जोड़ने का प्रयास करें। __rnd__= Math.random()

15

यह काम नहीं लग रहा था। कोई सुझाव?

cachingAllowed विशेषता वास्तव में सर्वर साइड कैशिंग, नहीं क्लाइंट-साइड संचय जैसा कि आप उम्मीद करने लगते हैं के रूप में कॉन्फ़िगर करता है।

क्लाइंट-साइड कैशिंग उपयुक्त प्रतिक्रिया शीर्षकों के साथ किया जाना है। विशेष संसाधनों पर पूरी तरह से अक्षम क्लाइंट-साइड संचय करने के लिए, आप एक Filter जो वांछित url-pattern पर सुनता है और है बनाने की जरूरत कम से कम doFilter() विधि के अंदर निम्नलिखित लाइनों:

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
response.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
response.setDateHeader("Expires", 0); // Proxies. 

response माध्यम से यहाँ है HttpServletResponse जिसे doFilter() विधि के तर्क से वापस निकाल दिया गया है।

क्लाइंट साइड कैश को साफ़ (इस प्रकार, webbrowser config के अंदर) के लिए मत भूलना यह सब :)

परीक्षण से पहले
संबंधित मुद्दे