Sei que estou um pouco atrasado aqui, (cinco anos ou mais), mas acho que há uma resposta melhor do que a aceita da seguinte forma:
$("#addComment").click(function() {
if(typeof TinyMCE === "undefined") {
$.ajax({
url: "tinymce.js",
dataType: "script",
cache: true,
success: function() {
TinyMCE.init();
}
});
}
});
A getScript()
função realmente impede o cache do navegador . Se você executar um rastreamento, verá que o script é carregado com uma URL que inclui um parâmetro de carimbo de data / hora:
http://www.yoursite.com/js/tinymce.js?_=1399055841840
Se um usuário clicar no #addComment
link várias vezes, tinymce.js
será recarregado a partir de um URL com carimbo de data e hora diferente. Isso anula o objetivo do cache do navegador.
===
Como alternativa, na getScript()
documentação, há um código de amostra que demonstra como habilitar o cache criando uma cachedScript()
função personalizada da seguinte maneira:
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 );
});
===
Ou, se você deseja desativar o cache globalmente, pode fazê-lo usando ajaxSetup()
o seguinte:
$.ajaxSetup({
cache: true
});