Категории
Серверное время на JavaScript
Обычно на страницах сайтов при манипуляциях со временем программисты используют объект Date. Например вывести время, которое изменяется каждую секунду или в зависимости от текущего времени выводить какие-то события, обратные отсчеты и т.п.
Но ведь объект Date берет значение из системного времени в ОС пользователя. То есть полностью на стороне клиента. А если пользователь находится в другом часовом поясе, приложение, которое заточено под показ событий на серверное время будет работать не правильно.
Одним из вариантов работы на стороне клиента именно с серверным временем будет следующий пример:
В html-коде пишем следующий код между тегами head, обязательно перед подключением сторонних javascript файлов, т.к. страница грузит сторонние скрипты синхронно, ибо они могут влиять на дальнейшее отображение.
Здесь мы передаем с сервера время в формате Unix-time и присваиваем в глобальную переменную.
Затем ставим таймер на увеличение значение времени каждую секунду.
Грубо говоря, мы запустили свои часы на странице.
Теперь вместо:
Math.round(new Date().getTime() / 1000)
смело используем нашу переменную «realtime», которая будет содержать юникстайм с погрешностью в несколько секунд.
Этот вариант конечно не идеален, будет погрешность на время передачи данных и загрузки их в браузер, но для приложений, где 1-5 секунд не играют роли, можно пользоваться.
Информация | |||
---|---|---|---|
Автор | webmancer | Нравится | 0 |
Рейтинг | 1 | Не нравится | 0 |
Голосов | 1 | Прочитали | 1 |
Дата | 2011-11-18 09:00:00 | В избранном | 0 |
Ваша реакция |
Только авторизованные пользователи могут участвовать в рейтингах, делать заметки и добавлять в избранное. |
На рекомендательном сервисе WEBmancer.Org только зарегистрированные пользователи могут комментировать и оставлять рецензии. Авторизованный пользователь так же может ставить отметки книгам, фильмам и другим постам. Вести учет прочитанных книг и просмотренных фильмов. Добавлять посты в избранное и иметь к ним быстрый доступ.