Me doy cuenta de que llego un poco tarde aquí (aproximadamente 5 años), pero creo que hay una mejor respuesta que la aceptada de la siguiente manera:
$("#addComment").click(function() {
if(typeof TinyMCE === "undefined") {
$.ajax({
url: "tinymce.js",
dataType: "script",
cache: true,
success: function() {
TinyMCE.init();
}
});
}
});
La getScript()
función realmente evita el almacenamiento en caché del navegador . Si ejecuta un seguimiento, verá que el script se carga con una URL que incluye un parámetro de marca de tiempo:
http://www.yoursite.com/js/tinymce.js?_=1399055841840
Si un usuario hace clic en el #addComment
enlace varias veces, tinymce.js
se volverá a cargar desde una URL con marca de tiempo diferente. Esto anula el propósito del almacenamiento en caché del navegador.
===
Alternativamente, en la getScript()
documentación hay un código de muestra que muestra cómo habilitar el almacenamiento en caché creando una cachedScript()
función personalizada de la siguiente manera:
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 );
});
===
O, si desea deshabilitar el almacenamiento en caché a nivel mundial, puede hacerlo utilizando ajaxSetup()
lo siguiente:
$.ajaxSetup({
cache: true
});