我意识到我在这里有点晚了(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
如果用户多次单击该链接,则会从具有不同时间戳的 URL 重新加载。这违背了浏览器缓存的目的。#addComment
tinymce.js
===
或者,在 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
});