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

2022-07-20T05:31:56+00:00
Вопросы с похожей тематикой, как у вопроса:

JQuery для динамической загрузки файла Javascript