Часы без JavaScript
Сделал крошечные аналоговые часы, которые работают без JavaScript. Кто первый догадается как они работают, тот молодец.
Правда я их ускорил в 60 раз (а то очень уж скучно смотреть), поэтому это скорее секундомер, но стартуют они с текущего времени.
Комментарии 36
Не, ну можно сделать старт и с клиентского. Правда без JS это на порядок сложнее. Вот я и не стал заморачиваться :)
Комментарий для dinoel:
Неа, этот изврат — побочный эффект того, что мне хочется развлечься :)
Комментарий для dinoel:
http://www.maxmind.com/app/locate_my_ip
Шлёт IP, знаем город — знаем таймзону.
Комментарий для Евгения Степанищева:
Но если вдругкуда-то выйдет в полезное, то нужно существенно уменьшать размер, записывая в отдельные кадры не полные картинки, а только разницу.
Комментарий дляmaxim-zotov.livejournal.com:
А откуда там ограничение в 32? По описанию ( http://www.w3.org/Graphics/GIF/spec-gif89a.txt ) там одна сотая секунды и Delay Time в unsigned int. То есть максимальное значение будет 65535 / 100 = 65,5 секунд, нет?
Хотя, конечно, вопрос в том не забывают ли авторы декодеров указать unsigned в нужном месте…\
В любом случае, ещё один кадр, это нестрашно. Можно вставлять прозрачный 1×1, много места не займёт.
Комментарий дляmaxim-zotov.livejournal.com:
Еще одну ссылку упустил на список таймзон по городам:
http://www.maxmind.com/timezone.txt
Не, это
Комментарий для Евгения Степанищева:
Да, торможу. Неправильно посчитал, потом еще неправильный эксперимент провел, должно быть 655 секунд (65535/100). А вот Gimp не позволяет ввести больше 65 секунд.
В ней соответствия регионов по MaxMind обозначениям таймзон, а вот описания таймзон брать уже по «правильной» ссылке, но обычно их брать не нужно, если в операционке уже есть функция получения смещения по обозначению таймзоны.
Ну я и не обещал, что это будет работать при помощи магии :)
Агрессивный кеш. Опера, наверное? :)
no-cache).
Хотя в скрипте тоже не мешало бы явный запрет на кеширование выдавать (expires,
Получить таймзону по ип конечно может, а что делать если у меня кривая таймзона/отстают часы ?
Первое что приходит в голову для получения времени клиента на сервере без яваскрипта — какой нить хитрый изврат с куками и expires. ну типа, поставить 24 куки с expires от 0 до 24 , и посмотреть что придёт на сервер )
Комментарий для dinoel:
Так это как раз хорошо, что на сайте пользователю показывается правильное время, независимо от кривости установок на компе пользователя. Разумеется, если предположить, что точность определения таймзоны по IP 100%, что, конечно, не так.
Не, тут прикол именно в том чтобы показать пользователю его время без использования яваскрипта :) Практической пользы никакой , но интересно.
Я не написал такую штуку ещё
Хранить всю базу geoip и апдейтить её для обычной игрушки мне не хочется.
Комментарий для dinoel:
мы не понимаем друг друга. У меня нет равным счетом ничего про javascript.
как-то что-то сделать, в зависимости от задачи.
какого-нибудь серьезного примера веб-приложения, когда требуется знать время пользователя. Серьезней часиков на страничке. Но допустим, что такие задачи есть :)
Но, в общем, неважно, в итоге мы всё равно говорим об одном.
Практическая же польза в том, чтобы определить правильное время пользователя. Показать его самому пользователю, или записать себе, или еще
Проблема в том, что времени, установленном на компьютере пользователя, доверять нельзя, времени, полученному из JavaScript. У пользователя на компе не то что часовой пояс может быть кривым, год может стоять другой.
Я сейчас не могу придумать
Комментарий дляmaxim-zotov.livejournal.com:
Есть, конечно. Показывать в ЖЖ время постов и комментов в часовом поясе пользователя.
:) Я думаю что если у пользователя время неправильное, то получить правильное время пользователя на сервере это
Задача: получить время которое установлено на компьютере пользователя (даже если оно неправильное) на сервере, без использования яваскрипта.
Первое, что приходит в голову, соединиться с IP, с которого пришёл запрос и попробовать найти там
Под
Комментарий для dinoel:
не понял, почему не то. Мы узнаем точное местное время пользователя.
Если я могу узнать точное время пользователя, зачем мне знатькакие-то фиктивные циферки?
А зачем рисовать часы без javascript? Just for fun! :)
Комментарий дляmaxim-zotov.livejournal.com:
Не совсем. IP, бывает, не соответствуют фактическому расположению пользователя, когда провайдеры неочень-то аккуратны. Кроме этого, есть прокси. Так что точность относительная.
Комментарий для Евгения Степанищева:
Да, само собой. Вопрос лишь в сравнении недостоверности времени из JavaScript и по IP. Вдруг получится так, что по IP процент ошибок меньше :)
Ну а если два метода дают одинаковые данные, то больше уверенности, что и время у пользователя верное, и по IP мы попали куда надо.