2014-06-20 6 views
7

मैंने देखा है कि इसके जेसन कॉल (d3.json) के साथ डी 3 तत्वों को फिर से निकालना आईई 9 + पर अपडेट नहीं होना चाहता है। इसका कारण यह है कि जेसन कॉल कैश हो जाती है ताकि ब्राउज़र पंजीकृत न हो क्योंकि नया डेटा पास हो गया है। सभी ajax कॉल के लिए विश्व स्तर पर झूठे,:डी 3.जेसन सेटअप कैश को झूठी

$.ajaxSetup({ cache: false }); 

लेकिन मैं इसे कैसे d3.json कॉल करने के लिए जोड़ सकते हैं, ajax फोन करने के लिए अपने स्वयं के विधि का उपयोग कर के बाद से सामान्य jQuery ajax कॉल के लिए युक्ति कैश करने के लिए अपनी संपत्ति स्थापित करने के लिए है? मैं पथ के बाद वर्तमान टाइमस्टैम्प जोड़ने के साथ सफल रहा:

var noCache = new Date().getTime(); 
d3.json(data + "?_=" + noCache) 

लेकिन यह है कि यह करने के लिए एक सा लंगड़ा तरीका है ... किसी भी सुझाव मैं यह कैसे पूरा कर सकते हैं? या इससे भी बेहतर, आईई चल रहा है, तो इसे कैसे सेटअप करें :)

+0

मुझे लगता है कि यहां JQuery का उपयोग करना संभवतः आसान है। –

+0

आप सही हैं। मैंने सभी कॉल 'd3.json' से '$ .ajax' में बदल दीं। अब मैं एक और समस्या में भागता हूं, यह निर्धारित करने के लिए कि ब्राउज़र आईई है या नहीं, या यदि ब्राउज़र IE10-11 है? चूंकि उन्होंने उन संस्करणों से सशर्त टिप्पणियां 'IF IE' को हटा दिया है। अभी भी वेब पर एक उत्तर की तलाश है, लेकिन सही एक – Alchnemesis

उत्तर

0

मुझे एक ही समस्या थी। मैंने इस कोड को HTML दस्तावेज़ के HEAD में जोड़कर हल किया।

<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0"> 
<meta http-equiv="pragma" content="no-cache"> 

बहरहाल, यह एक निश्चित पेज में हर वस्तु की कैशिंग को रोकने, तो छवियों, फोंट और अन्य लोगों के साथ सावधान रहना होगा।

+0

नहीं मिल रहा है, वे सिर्फ पूरे पृष्ठ के लिए कैश नहीं, AJAX अनुरोध के लिए कैश को अमान्य करना चाहते हैं। आपको केवल यह करना चाहिए यदि आप नहीं चाहते हैं कि आपका पृष्ठ कैश किया गया हो, जो उन साइटों के लिए आदर्श नहीं है जहां आपके पास वापसी का दौरा है। कैश आपका दोस्त है! – aboutaaron