मुझे एहसास है कि मैं यहाँ थोड़ी देर से हूँ, (5 साल या तो), लेकिन मुझे लगता है कि इस तरह से स्वीकार किए गए एक बेहतर उत्तर है:
$("#addComment").click(function() {
if(typeof TinyMCE === "undefined") {
$.ajax({
url: "tinymce.js",
dataType: "script",
cache: true,
success: function() {
TinyMCE.init();
}
});
}
});
getScript()
समारोह वास्तव में ब्राउज़र कैशिंग से बचाता है । यदि आप एक ट्रेस चलाते हैं, तो आप देखेंगे कि स्क्रिप्ट एक URL के साथ भरी हुई है जिसमें टाइमस्टैम्प पैरामीटर शामिल है:
http://www.yoursite.com/js/tinymce.js?_=1399055841840
यदि कोई उपयोगकर्ता #addComment
कई बार लिंक पर क्लिक करता है , तो tinymce.js
उसे एक अलग टाइमस्टैम्ड URL से पुनः लोड किया जाएगा। यह ब्राउज़र कैशिंग के उद्देश्य को पराजित करता है।
===
वैकल्पिक रूप से, getScript()
प्रलेखन में कुछ नमूना कोड है जो दर्शाता है कि कस्टम cachedScript()
फंक्शन बनाकर कैशिंग को कैसे सक्षम किया जाए :
jQuery.cachedScript = function( url, options ) {
// Allow user to set any option except for dataType, cache, and url
options = $.extend( options || {}, {
dataType: "script",
cache: true,
url: url
});
// Use $.ajax() since it is more flexible than $.getScript
// Return the jqXHR object so we can chain callbacks
return jQuery.ajax( options );
};
// Usage
$.cachedScript( "ajax/test.js" ).done(function( script, textStatus ) {
console.log( textStatus );
});
===
या, यदि आप विश्व स्तर पर कैशिंग को अक्षम करना चाहते हैं, तो आप ajaxSetup()
निम्नानुसार उपयोग कर सकते हैं :
$.ajaxSetup({
cache: true
});