Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№111-09-2007 08:46:04

Codeblight
Участник
 
Группа: Members
Зарегистрирован: 03-03-2007
Сообщений: 58
UA: Opera 9.2

Правильно определить время загрузки страницы ?

Необходимо определить время загрузки страницы.

Я понял, что надо действовать через addProgressListener - на onStateChange ловить начало загрузки STATE_START, а где-то в конце ловить конечное время и вычитать начальное. Все бы замечательно, но после начала загрузки необходимо сохранить время (чтобы потом вычесть), и я решил сохранять его на вкладках ;) (слава богу фреймы ловить не надо). Нашел функции - setTabValue \ getTabValue, однако проблема определить какая вкладка принадлежит запросу идущему в данный момент в addProgressListener - onStateChange. Очень нехотелось бы каждому браузеру добавлять ProgressListener, может быть можно как-то попроще ? Или вообще без ProgressListener ?

Отсутствует

 

№213-09-2007 12:53:46

Codeblight
Участник
 
Группа: Members
Зарегистрирован: 03-03-2007
Сообщений: 58
UA: Opera 9.2

Re: Правильно определить время загрузки страницы ?

Определяю так:

Выделить код

Код:

onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus)
	{
		// begin loading document
		const nsIWebProgressListener = Components.interfaces.nsIWebProgressListener;
		if ((aStateFlags & nsIWebProgressListener.STATE_START) && (aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK))
		{
			var browser = null;
			// search for browser
			if (gBrowser.selectedBrowser.contentWindow == aWebProgress.DOMWindow)
			{
				// active browser
				browser = gBrowser.selectedBrowser;
			} else 
			{
				// bruteforce browsers
				for (var i = 0; i < gBrowser.browsers.length; i++)
				{
					if (aWebProgress.DOMWindow == gBrowser.browsers[i].contentWindow)
					{
						browser = gBrowser.browsers[i];
						break;
					}             
				}
			}

			if (browser != null)
			{
				// search browser tab
				for (var i = 0; i < gBrowser.mTabContainer.childNodes.length; i++)
				{	
					if (gBrowser.getBrowserForTab(gBrowser.mTabContainer.childNodes[i]) == browser)
					{
						// founded tab
						var currentTab = gBrowser.mTabContainer.childNodes[i];


						break;
					}
				}
			}
		}
	}

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]