последовательность выполнения события загрузки javascript - PullRequest
0 голосов
/ 12 апреля 2011

У меня есть следующие коды.

//create a tab and active it
var tab = gBrowser.addTab("chrome://xxx/content/html/xxx.html");
gBrowser.selectedTab = tab
var newTabBrowser = gBrowser.getBrowserForTab(gBrowser.selectedTab);
newTabBrowser.addEventListener("load", function () {
    //event 1.          
    }, true);

, где xxx.html имеет


$(document).ready(function(){
        //event 2
});
$(window).load(function(){
    //event 3
});

Я понимаю, что событие 2 запускается до события 3. И событие 1 запускается до события3 по месту оповещения (), может кто-нибудь объяснить мне причину этого.Или последовательность 1 и 3 непредсказуема.Спасибо.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2011

объектно-ориентированный объект или событие, обусловленное его природой, не обязательно является последовательным.

$ (document) .ready () означает, что когда страница полностью готова, затем продолжайте.

$ (window) .load (function () означает, что страница находится в процессе рендеринга.

Я ожидаю, что «готов продолжить» до того, как страница находится в процессе рендеринга », по крайней мере, до следующего выпускабраузеров. Но я бы не советовал кодировать, как если бы это была последовательность.

Может быть интересно посмотреть, срабатывает ли ваше событие 1 до события 3, когда фокус находится на первой вкладке, и после, когда фокуснаходится на 2-й вкладке.

0 голосов
/ 12 апреля 2011

Не совсем точно знаю, что это за событие 1 - я предполагаю, что это плагин Firefox, поэтому он фактически срабатывает, как только загружается вкладка, а не документ внутри нее.как только готов полный HTML DOM, но до загрузки всех внешних ресурсов (таких как изображения и таблицы стилей).Событие 3 сработает только после завершения загрузки всех внешних ресурсов.

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