Задержка сценария jquery, пока все остальное не загрузится

Можно также прочитать « Язык программирования C » от K & amp; R, потому что это быстрое чтение, и оно даст вам представление, которое может помочь понять производительность, происходящую за кулисами в мусоре. язык коллекции.

103
задан chrism 18 June 2009 в 11:22
поделиться

4 ответа

Оказывается, из-за своеобразной смеси фреймворков javascript мне потребовалось инициировать скрипт с использованием прослушивателя событий, предоставляемого одной из других фреймворков.

1
ответ дан 24 November 2019 в 04:17
поделиться

You can have $(document).ready() multiple times in a page. The code gets run in the sequence in which it appears.

You can use the $(window).load() event for your code since this happens after the page is fully loaded and all the code in the various $(document).ready() handlers have finished running.

$(window).load(function(){
  //your code here
});
210
ответ дан 24 November 2019 в 04:17
поделиться

Пробовали ли вы загрузить все функции инициализации с помощью $ (). Ready , выполнив функцию jQuery, которую вы хотели последней?

Возможно, вы можете использовать setTimeout () для функции $ (). ready , которую вы хотели запустить, вызывая функциональность, которую вы хотели загрузить.

Или используйте setInterval () и проверка интервала, чтобы увидеть, все ли другие функции загрузки завершены (сохранить статус в логической переменной). При соблюдении условий вы можете отменить интервал и запустить функцию загрузки.

1
ответ дан 24 November 2019 в 04:17
поделиться

Из здесь :

// Add jQuery 
var GM_JQ = document.createElement('script'); 
GM_JQ.src = 'http://jquery.com/src/jquery-latest.js';
GM_JQ.type = 'text/javascript'; 
document.getElementsByTagName('head')[0].appendChild(GM_JQ); 

// Check if jQuery's loaded 
function GM_wait() 
{ 
    if(typeof unsafeWindow.jQuery == 'undefined') 
    { 
        window.setTimeout(GM_wait,100); 
    } 
    else 
    { 
        $ = unsafeWindow.jQuery; 
        letsJQuery(); 
    } 
} 

GM_wait(); 

// All your GM code must be inside this function 
function letsJQuery() 
{
    // Do your jQuery stuff in here    
} 

Это будет ждать, пока jQuery загрузится, чтобы использовать его, но вы можете использовать та же концепция, установка переменных в других ваших скриптах (или проверка их, если они не ваш скрипт), чтобы дождаться их загрузки, чтобы использовать их.

Например, на моем сайте я использую это для асинхронной загрузки JS и ждать, пока они закончат, прежде чем что-либо делать с ними с помощью jQuery:

<script type="text/javascript" language="JavaScript"> 
    function js(url){
        s = document.createElement("script");
        s.type = "text/javascript";
        s.src = url;
        document.getElementsByTagName("head")[0].appendChild(s);
    }       

    js("/js/jquery-ui.js");
    js("/js/jrails.js");
    js("/js/jquery.jgrowl-min.js");
    js("/js/jquery.scrollTo-min.js");
    js("/js/jquery.corner-min.js");
    js("/js/jquery.cookie-min.js");
    js("/js/application-min.js");

    function JS_wait() {
        if (typeof $.cookie == 'undefined' || // set in jquery.cookie-min.js
            typeof getLastViewedAnchor == 'undefined' || // set in application-min.js
            typeof getLastViewedArchive == 'undefined' || // set in application-min.js 
            typeof getAntiSpamValue == 'undefined') // set in application-min.js
        { 
            window.setTimeout(JS_wait, 100); 
        }
        else 
        { 
            JS_ready(); 
        }
    }

    function JS_ready() {
        // snipped
    };

    $(document).ready(JS_wait);
</script> 
3
ответ дан 24 November 2019 в 04:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: