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 #addComment
liên kết nhiều lần, tinymce.js
sẽ đượ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
});