डीजेजेओ - जावास्क्रिप्ट, jquery, AJAX, कैशिंग, dojo का उपयोग करते समय AJAX प्रतिक्रिया कैश किया जाता है

मैं AJAX के लिए नीचे DOJO कार्यक्षमता का उपयोग कर रहा हूँकहते हैं। लेकिन दुर्भाग्य से किसी विशेष अनुरोध के लिए श्वास कैश किया जाता है। और यहां तक ​​कि अगर मैं सर्वलेट पक्ष में कोड बदलता हूं, तो यह उन मामलों के लिए प्रतिबिंबित नहीं होता है जहां मैंने पहले कोशिश की थी। मुझे लगता है कि प्रतिक्रिया कैश किया गया है। मैं टोमकैट सर्वर का उपयोग कर रहा हूँ। क्या कोई मदद कर सकता है?

<script type="text/javascript">
function showMonth(text) { //
dojo.xhrGet({
// The following URL must match that used to test the server.
url: "ajaxServlet?s="+text,
handleAs: "text",
// The LOAD function will be called on a successful response.
load: function(response, ioArgs) { //
dojo.byId("response").innerHTML = response + "Hereeee"; //
return response; //
},

// The ERROR function will be called in an error case.
error : function(response, ioArgs) { //
console.error("HTTP status code: ", ioArgs.xhr.status); //
dojo.byId("response").innerHTML = "Loading the ressource from the server did not work"; //
return response; //
},

// Here you put the parameters to the server side program
// We send two hard-coded parameters
content : {
name : "lars",
url : "testing"
}
});
}

उत्तर:

जवाब के लिए 2 № 1

वास्तव में एक ऐसी संपत्ति है जिसका आप उपयोग कर सकते हैं preventCache यदि आप इसे सेट करते हैं तो प्रत्येक अनुरोध के लिए टाइमस्टैम्प जोड़ देगा (इसलिए कैश का कभी भी उपयोग नहीं किया जाता है) true, आप इसके बारे में अधिक पढ़ सकते हैं निर्देशिका

आपके मामले में यह होगा:

function showMonth(text) { //
dojo.xhrGet({
// The following URL must match that used to test the server.
url: "ajaxServlet?s="+text,
handleAs: "text",
preventCache: true,
// The LOAD function will be called on a successful response.
load: function(response, ioArgs) { //
dojo.byId("response").innerHTML = response + "Hereeee"; //
return response; //
},

// The ERROR function will be called in an error case.
error : function(response, ioArgs) { //
console.error("HTTP status code: ", ioArgs.xhr.status); //
dojo.byId("response").innerHTML = "Loading the ressource from the server did not work"; //
return response; //
},

// Here you put the parameters to the server side program
// We send two hard-coded parameters
content : {
name : "lars",
url : "testing"
}
});
}

छोटा नोट: कैशिंग नहीं है "टी Dojo विशिष्ट, यह इसलिए है क्योंकि GET अनुरोध का अनुरोध करने के लिए अनुरोध का उपयोग किया जाना चाहिए, ताकि अधिकांश ब्राउज़र इन अनुरोधों को प्रदर्शन में सुधार के लिए कैश कर सकें। अन्य सभी प्रकार के अनुरोध (POST, PUT, ...) आमतौर पर कैश नहीं किया जाता है।


जवाब के लिए 0 № 2

मैंने इसे हल किया। मैंने फ़ंक्शन के अंदर "रोकथाम: सत्य" का उपयोग किया।


संबंधित सवाल
सबसे लोकप्रिय