Je me rends compte que je suis un peu en retard ici, (5 ans environ), mais je pense qu'il y a une meilleure réponse que celle acceptée comme suit :
$("#addComment").click(function() {
if(typeof TinyMCE === "undefined") {
$.ajax({
url: "tinymce.js",
dataType: "script",
cache: true,
success: function() {
TinyMCE.init();
}
});
}
});
En getScript()
en fait, la fonction empêche la mise en cache du navigateur . Si vous lancez une trace, vous verrez que le script est chargé avec une URL qui inclut un paramètre d'horodatage :
http://www.yoursite.com/js/tinymce.js?_=1399055841840
Si un utilisateur clique sur le bouton #addComment
lien plusieurs fois, tinymce.js
sera rechargé à partir d'une URL différente. Cela va à l'encontre de l'objectif de la mise en cache du navigateur.
\===
Alternativement, dans le getScript()
il existe un exemple de code qui montre comment activer la mise en cache en créant un fichier d'enregistrement personnalisé. cachedScript()
comme suit :
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, si vous voulez désactiver la mise en cache globalement, vous pouvez le faire en utilisant ajaxSetup()
comme suit :
$.ajaxSetup({
cache: true
});
0 votes
Il s'agit d'un excellent fork du compresseur TinyMCE, qui ajoute le chargement asynchrone de TinyMCE via le plugin jQuery.tinyMCE, et inclut Gzip, concaténation et minification : github.com/bobbravo2/tinymce_compressor/blob/master/