HTML5 Web Workers
веб-работник запустить JavaScript в фоновом режиме и не влияет на производительность страницы.
Что такое веб-работник?
При выполнении сценария в HTML-странице, состояние страница не отвечает на запросы, пока сценарий не будет завершен.
веб-работник запустить JavaScript в фоновом режиме, независимо от других сценариев не будет влиять на производительность страницы. Вы можете продолжать делать все, что готов сделать: Нажмите для выбора контента и т.д., в то время, когда веб-работник работает в фоновом режиме.
Поддержка браузеров
Internet Explorer 10, Firefox, Chrome, Safari и Opera поддержка Web Workers.
Примеры HTML5 Web Workers
В следующем примере создается простой веб-работника, рассчитывая на заднем плане:
demo_workers.js код файла:
Функция timedCount ()
{
I = I + 1;
PostMessage (я);
setTimeout ( "timedCount ()", 500);
}
timedCount ();
Детектирование поддерживает ли браузер веб-работник
Перед созданием веб-работника, пожалуйста, проверьте браузер пользователя поддерживает его:
{
// Да! Поддержка веб-работник!
//Некоторый код .....
}
еще
{
// Извини! Web Worker не поддерживается
}
Создайте файл веб-мастер,
Теперь, давайте создадим наш веб-работника во внешнем JavaScript.
Здесь мы создали подсчет сценария. Сценарий хранится в файле "demo_workers.js":
Функция timedCount ()
{
I = I + 1;
PostMessage (я);
setTimeout ( "timedCount ()", 500);
}
timedCount ();
Важная часть кода выше метод PostMessage () - используется для возврата некоторых HTML-страницу новостей.
Примечание: веб - работник, как правило , не используется для таких простых сценариев, но для более ресурсоемкие задачи.
Создание веб-работник объекта
У нас уже есть файл веб-мастер, и теперь нам нужно вызвать его из HTML-страницы.
Следующий код не обнаруживает присутствие работника, если нет - он создает новый объект веб-мастер, а затем запустить "demo_workers.js" Код:
{
w=new Worker("demo_workers.js");
}
Затем мы можем иметь место и получать сообщения от веб-работника.
Добавить в веб-работнику "OnMessage" слушатели событий:
. Document.getElementById ( "результат") innerHTML = event.data;
};
Веб прекращение работник
Когда мы создаем объект веб-рабочий, он будет продолжать прослушивать сообщения (даже после завершения внешнего скрипта) до тех пор, пока не будет прекращено.
Прекратить веб-работника, и освободить браузер / ресурсы компьютера, используйте метод прекращает ():
Полный рабочий веб-пример кода
Мы видели, как файл .js Worker код. Вот код страницы HTML:
примеров
<HTML>
<Head>
<Meta Charset = "UTF-8">
<Title> В этом учебнике (w3big.com) </ title>
</ Head>
<Body>
<P> Количество: <выход ID = "результат"> </ выход> </ p>
<Кнопка OnClick = "startWorker ()"> для работы </ кнопка>
<Кнопка OnClick = "stopWorker ()"> остановлен </ кнопка>
<P> <STRONG> Примечание: </ STRONG> Internet Explorer 9 и более ранних версиях IE браузер не поддерживает Web Workers </ p>.
<Script>
вар ж;
функционировать startWorker () {
если (TypeOf (рабочий)! == "неопределенные") {
если (TypeOf (ж) == "неопределенные") {
ш = новый работник ( "demo_workers.js");
}
w.onmessage = функция (событие) {
. Document.getElementById ( "результат") innerHTML = event.data;
};
} Else {
document.getElementById ( "результат") innerHTML = "К сожалению, ваш браузер не поддерживает Web Workers ..." .;
}
}
Функция stopWorker ()
{
w.terminate ();
W = не определено;
}
</ Script>
</ Body>
</ HTML>
Попробуйте »
Web Workers и DOM
Так как веб-работника во внешнем файле, они не могут получить доступ к объекту JavaScript следующий пример:
- объект окна
- Document Object
- родительские объекты