Надежен ли скрипт? - PullRequest
       3

Надежен ли скрипт?

4 голосов
/ 07 февраля 2012

В настоящее время я обслуживаю все javascripts, объединенные в один большой файл через Amazon Cloudfront.Но поскольку jQuery очень большой, я думаю об использовании версии, предоставленной Google.Конечно, я бы включил оба тега скрипта внизу страницы и добавил бы атрибут defer, если бы я не читал эту статью: http://hacks.mozilla.org/2009/06/defer/

Если я правильно понял, атрибут defer работает только вFirefox правильно, в то время как любой другой браузер (в то время) будет выполнять сценарии в случайном порядке.Это правда?Конечно, мои скрипты зависят от jQuery, поэтому он должен выполняться перед моими скриптами.

Ответы [ 3 ]

1 голос
/ 09 сентября 2017

В 2017 году кажется достаточно надежным, чтобы перестать избегать этих 5 букв в пользу 17-линейных обходных путей. Поддержка браузеров для defer довольно хороша в наши дни

0 голосов
/ 21 февраля 2012

Я бы предложил что-то вроде этого (используя window.onload, чтобы по-настоящему вести себя как defer):

$(window).load(function () {
    var script = document.createElement("script");
    script.type = "text/javascript";
    if (script.readyState) { // IE
        script.onreadystatechange = function () {
            if (script.readyState === "loaded" || script.readyState === "complete") {
                script.onreadystatechange = null;
                // do something
            }   
        };  
    }   
    else { // Others
        script.onload = function() {
            // do something (the same thing as above)
        };  
    }   
    script.src = file;
    document.getElementsByTagName("head")[0].appendChild(script);
});

Если вам нужно более одного файла, поместите его в цикл и установите для файла что-то вроде файла [x]

0 голосов
/ 08 февраля 2012

Я не уверен, что буду беспокоиться об отсрочке, если вы не уверены в его поддержке.Просто сделайте это вместо:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js"></script>  
<script>window.jQuery || document.write("<script src='localJSFolder/jquery-1.6.4.min.js'></script>")</script>

Все современные браузеры должны запускать сценарии последовательно.Это самый простой способ использовать CDN Google с локальным резервом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...