Сегодня я познакомился с миром веб-работников на JavaScript.Это заставило меня задуматься о таймерах.Я привык программировать таймеры так, как это.
var time = -1;
function timerTick()
{
time++;
setTimeout("timerTick()",1000);
$("#timeI").html(time);
}
Я знаю, что это можно улучшить, сохранив дату при запуске таймера, но я никогда не был фанатом этого.
Теперь я разработал метод с использованием Web Workers, сделал небольшой тест и нашел его гораздо более надежным.Поскольку я не являюсь экспертом по JavaScript, я хотел бы знать заранее, работает ли эта функция корректно или какие проблемы могут возникнуть, заранее.
Мой код JavaScript (обратите внимание, я использую JQuery):
$(function() {
//-- Timer using web worker.
var worker = new Worker('scripts/task.js'); //External script
worker.onmessage = function(event) { //Method called by external script
$("#timeR").html(event.data)
};
};
Внешний скрипт ('scripts / task.js'):
var time = -1;
function timerTick()
{
time++;
setTimeout("timerTick()",1000);
postMessage(time);
}
timerTick();
Вы можететакже посмотрите живую демонстрацию на моем сайте .