私はここで少し遅れていることを認識しています(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
});