Tôi nhận ra mình đến hơi muộn ở đây, (5 năm hoặc lâu hơn), nhưng tôi nghĩ có một câu trả lời tốt hơn câu trả lời như sau:
$("#addComment").click(function() {
if(typeof TinyMCE === "undefined") {
$.ajax({
url: "tinymce.js",
dataType: "script",
cache: true,
success: function() {
TinyMCE.init();
}
});
}
});
Các getScript()chức năng thực sự ngăn chặn bộ nhớ đệm trình duyệt . Nếu bạn chạy theo dõi, bạn sẽ thấy tập lệnh được tải với một URL bao gồm tham số dấu thời gian:
http://www.yoursite.com/js/tinymce.js?_=1399055841840
Nếu người dùng nhấp vào #addCommentliên kết nhiều lần, tinymce.jssẽ được tải lại từ một URL được đánh dấu thời gian khác nhau. Điều này đánh bại mục đích của bộ nhớ đệm trình duyệt.
===
Ngoài ra, trong getScript() tài liệu có một số mã mẫu trình bày cách bật bộ đệm ẩn bằng cách tạo một cachedScript()chức năng tùy chỉnh như sau:
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 );
});
===
Hoặc, nếu bạn muốn tắt bộ nhớ đệm trên toàn cầu, bạn có thể sử dụng ajaxSetup()như sau:
$.ajaxSetup({
cache: true
});