JQuery для динамической загрузки файла Javascript
Я понимаю, что немного опоздал jquery-plugins (лет на 5 или около того), но jquery-plugins я думаю, что есть лучший jquery-plugins ответ, чем принятый, а именно:
$("#addComment").click(function() {
if(typeof TinyMCE === "undefined") {
$.ajax({
url: "tinymce.js",
dataType: "script",
cache: true,
success: function() {
TinyMCE.init();
}
});
}
});
Функция removeclass getScript()
на самом деле предотвращает кеширование браузера. Если вы ecmascript запустите трассировку, вы .js увидите, что скрипт загружен lazyload с URL-адресом, который включает lazyload параметр отметки времени:
http://www.yoursite.com/js/tinymce.js?_=1399055841840
Если jquery-plugins пользователь нажимает ссылку jquery-plugins #addComment
несколько раз, tinymce.js
будет повторно lazy-loading загружен с другого URL-адреса tinymce с другой временной меткой. Это .js противоречит цели кеширования lazyload браузера.
===
В качестве альтернативы, в addclass документации по getScript()
есть пример removeclass кода, демонстрирующий, как lazyload включить кэширование, создав jquery пользовательскую функцию .js 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 );
});
===
Или, если toggleclass вы хотите отключить кеширование .js глобально, вы можете сделать javascript это с помощью ajaxSetup()
следующим lazyload образом:
$.ajaxSetup({
cache: true
});
javascript
jquery
jquery-plugins
tinymce
lazy-loading
JQuery для динамической загрузки файла Javascript
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.