TrueColor GIF ★

Была у меня такая задумка — попробовать сделать полноцветную
Разбиение для начала выбрал простое — исходя из площади покрытия, думал потом взяться за оптимизацию (выбирать площадь, потом брать все цвета, которые в ней содержатся), но этого не понадобилось, оказалось, что если поставить задержку между кадрами ноль, то каждый браузер всё равно будет отрисовывать анимацию с очень заметной на глаз задержкой. Кажется в спецификации вообще не определено что означает нулевая задержка:
Delay Time — If not 0, this field specifies the number of hundredths (1/100) of a second to wait before continuing with the processing of the Data Stream. The clock starts ticking immediately after the graphic is rendered. This field may be used in conjunction with the User Input Flag field.
Но и если поставить задержку в 1/100 секунды, браузеры всё так же неторопливо отрисовывают картинку. Нарезанные кадры я собирал через утилиту gifsicle, она ещё и оптимизирует изображение — ненужные мне области я заливал прозрачным цветом, gifsicle умеет такие области отбрасывать, что уменьшает размер изображения:
gifsicle --delay 0 --crop-transparency -O3 out/*.gif > out.gifЖаль, что ничего не получилось.
Зато выяснились любопытные подробности. Не знаю как это выглядит в IE (негде попробовать), а вот FireFox и Chrome умеют, один раз отрисовав конечную анимацию, потом мгновенно доставать её из кеша на перезагрузке страницы. «Опера», как и следовало ожидать, постоянно перерисовает анимацию — стоит только вернуться на страницу с другого таба или прокрутить её обратно до анимированного изображения.
JavaScript GeoAPI и timeout
Если вы пользовались
Коллега из «Яндекса» провёл исследование — попросил всех знакомых зайти на специальную страницу, где использовалось Geolocation API. Выводы любопытные:
Среднее время работы геолокации 8 секунд. Максимальное 24 сек. Но в 15 секунд уложились все устройства, кроме одного.
C первой попытки с тестом справилось 18 из 21 устройства.
Всегда стоит использовать геоопредление высокой точности, так как геоопределение низкой точности не работает на Андроидах без включенной геолокации по wifi сетям. Щупанье чужих телефонов показало что как правило люди ее не включают.