Точный таймер в Javascript для приложений в стиле Metro - PullRequest
1 голос
/ 09 марта 2012

Я разрабатываю приложение в стиле metro с HTML5, CSS3 и Javascript, в котором мне нужен точный таймер.setInterval () здесь не подходит, потому что он недостаточно точен.

Я пробовал с Windows.System.Threading, но, похоже, он не реализован в javascript (и я не думаю, что этобудет).Я также пробовал что-то вроде:

    var date = new Date();
    var init = date.getTime();
    while(init + someTime < date.getTime())
       doNothing();
    doSomething();

Но, очевидно, это не сработало.

Кто-нибудь знает, как я мог это сделать?

Спасибо.

Ответы [ 2 ]

1 голос
/ 16 марта 2012

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

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

Документы: http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.background.backgroundtaskbuilder.aspx

Образец: http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9

0 голосов
/ 09 марта 2012

Мне не известно о каких-либо звонках, доступных непосредственно в Javascript для вас.Но вы можете написать оболочку WinRT вокруг Win32, вызывая QueryPerformanceCounter и QueryPerformanceFrequency , используя C # или C ++.Эти два вызова помогут вам создать высокоточный таймер .

...