Mir ist klar, dass ich hier etwas spät dran bin (ungefähr 5 Jahre), aber ich denke, es gibt eine bessere Antwort als die akzeptierte wie folgt:
$("#addComment").click(function() {
if(typeof TinyMCE === "undefined") {
$.ajax({
url: "tinymce.js",
dataType: "script",
cache: true,
success: function() {
TinyMCE.init();
}
});
}
});
Die getScript()
Funktion verhindert tatsächlich das Zwischenspeichern des Browsers . Wenn Sie eine Ablaufverfolgung ausführen, wird das Skript mit einer URL geladen, die einen Zeitstempelparameter enthält:
http://www.yoursite.com/js/tinymce.js?_=1399055841840
Wenn ein Benutzer #addComment
mehrmals auf den Link klickt , tinymce.js
wird er von einer anderen URL mit Zeitstempel neu geladen. Dies macht den Zweck des Browser-Caching zunichte.
===
Alternativ finden Sie in der getScript()
Dokumentation einen Beispielcode, der zeigt, wie das Caching durch Erstellen einer benutzerdefinierten cachedScript()
Funktion wie folgt aktiviert wird :
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 );
});
===
Wenn Sie das Caching global deaktivieren möchten, können Sie dies ajaxSetup()
wie folgt tun :
$.ajaxSetup({
cache: true
});