JavaScript, эквивалентный flash.utils.getTimer? - PullRequest
1 голос
/ 18 декабря 2011

Есть ли какая-нибудь переменная окна в javascript, которую я могу использовать, или способ использовать таймер для отслеживания прошедшего времени без использования объекта даты?flash.utils.getTimer прекрасно работает во флэш-версии этого приложения, и я пытаюсь перенести его на javascript.Я не могу рисковать изменениями системных часов, вызывающими проблемы с безопасностью, поэтому я не хочу использовать объект Date.

У меня есть отметка времени сервера, и я хочу создать таймер, независимый от операционной системы.Системное время для расчета текущего времени сервера.Я буду использовать это вычисленное значение, чтобы разрешить различные операции во время окон на сервере времени.Меня не беспокоит взлом javascript, так как я знаю, что там нет безопасности, но я бы хотел, чтобы обычный пользователь не возился с доступностью определенных функций.

Спасибо

Добавлено дляуточнение:

Этот проект связан с видео-событиями в прямом эфире.Живое видео имеет время начала относительно сервера, и через другой веб-сервис я могу захватить время сервера.Что мне нужно сделать, так это сохранить серверное время на клиентском компьютере независимо от локального времени пользователя, чтобы определить, когда на клиенте должен запускаться и останавливаться прямой поток.Так что проблема на самом деле не в том формате, в котором я храню время сервера, а в том, как получить истекшее время с момента, когда я захватил время сервера без использования объекта даты.

Ответы [ 2 ]

5 голосов
/ 18 декабря 2011

Вы можете создать свой собственный объект таймера:

function Timer(init, precision) {
  var start = time = new Date(init || null).valueOf(),
      precision = precision || 100;

  setInterval(function () { time += precision; }, precision);

  this.elapsed = function() { return time - start; };
  this.getDate = function() { return new Date(time); };
}

и использовать его:

var t = new Timer();    // default timer
/* ... do things ... */
alert( t.elapsed() );   // a millisecond value
alert( t.getDate() );   // a Date object

Используйте параметр init, чтобы запустить таймер с любым заданным значением даты, которое вы предпочитаете..

1 голос
/ 18 декабря 2011

Вы можете заставить сервер отправлять серверное время и сохранять его в переменной даты javascript.Затем вы можете основывать свои вычисления на этой переменной, зная, что это будет время сервера и не будет зависеть от часов системы клиента.Что касается выполнения некоторого метода javascript через регулярные интервалы, вы можете использовать методы setTimeout и setInterval .

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