FireFox аддон / javascript setTimeout вопрос - PullRequest
4 голосов
/ 21 мая 2011

Когда мое расширение запускается, оно запрашивает у моего сайта файл xml, как только оно получает файл, оно запускает простое предупреждение, сообщающее пользователю, что последний файл был загружен.

Проблема в том, что файлвсего несколько килобайт, это может произойти очень быстро, и предупреждение ожидает нажатия кнопки «ОК», прежде чем он начнет загружать браузер.

Я решил это, поместив предупреждение в setTimeout 30 секунд, что должно датьбраузеру достаточно времени, чтобы загрузить (а также начать загружать любые сохраненные вкладки) до появления предупреждения.

У меня простой вопрос: держать таймер в таком состоянии ... не слишком ли много ресурсовили это повлияет на медленные машины или что-нибудь?30 секунд слишком долго, чтобы иметь таймер в аддоне Firefox?

Ответы [ 3 ]

3 голосов
/ 21 мая 2011

Таймеры не требуют больших ресурсов, если их использовать разумно (то есть не раскручивать 3000 таймеров с интервалами в 1 мс).

Хотя, кто-то задается вопросом об использовании оповещения ... Кажется, это не всегда правильно.

2 голосов
/ 21 мая 2011

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

Вместо этого используйте всплывающее предупреждение, чтобы сообщить пользователю, что файл загружен.См. Этот документ MDC для получения информации об использовании службы всплывающих оповещений:https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIAlertsService

2 голосов
/ 21 мая 2011

Таймер ничего не делает, пока не наступит время его срабатывания.Он просто сидит в очереди на таймер.Если вокруг нет других таймеров (маловероятно), поток таймера даже не проснется, пока не наступит время его запуска.

...