আমি বুঝতে পারি যে আমি এখানে কিছুটা দেরি করেছি (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
});