Monthly Archives: February 2013

Image placeholders или fuck HTML5 storage

Итак, дано: ЖЖ, френдлента, в ней – картинки, настолько большие, что на монитор не помещаются. Результат – нечитаемая френдлента. Найти: как с этим бороться?

Решение первое, дипломатическое. Убедить всех френдов прятать большие картинки под кат. Не самый идеальный вариант, но для кого-то может и сработать. Не мой путь, так как я считаю, что в своём блоге каждый должен постить что хочет и как хочет.

Решение второе, техническое. Включаем в настройках ЖЖ image placeholders. Теперь все картинки стали маленькими кнопками. Нужна картинка – нажимаем кнопку. Не нужна – не нажимаем. Победа? Как бы не так. Этот механизм делал то ли сатанист, то ли садист, то ли просто нормальный человек. Так или иначе, если картинку один раз загрузить, больше вы от неё не избавитесь. Что делать?

Соображение первое. Если картинка не нужна, то её загружать не следует. Как понять, нужна она или нет, если размер и содержимое неизвестны заранее? Оказывается, очень просто. Placeholder является не только кнопкой, но и ссылкой. Если открыть её в отдельной вкладке, то просто открывается оригинал картинки – placeholder при этом остаётся на месте, не заменяясь картинкой.

Казалось бы, задача решена. Но возникает вопрос – а что делать, если нечаянно кликнули на placeholder? Как-то же убрать картинку обратно можно? Наблюдения: очистка кукисов livejournal.com не помогает. Смена браузера – помогает, стало быть эта информация не хранится на сервере. Не в кукисах, не на сервере, так где же, блин?

Позвольте вам представить новую технологию HTML5 – local storage! Теперь у веб-разработчиков есть ещё один способ причинять страдания пользователям. Я-то по наивности думал, что все подобные технологии были порождены сумбуром зари веб-технологий… Ни фига, принцип остался тот же – лишь бы навредить. Разработчики браузера, естественно, в сговоре с террористами – функции "удалить на Хрен local storage" в Firefox нет. Разработчики плагинов, похоже, тоже в доле – есть плагины для просмотра содержимого local storage (и проклятые placeholders там очень хорошо видны), но удалять они не умеют. Но один всё-таки нашёлся: ClearConsole. Правда, удаляет он всё без исключения – удалить только placeholders или хотя бы только local storage ЖЖ невозможно, это вам не кукисы. Ну ничего, пользы от этого local storage всё равно нет, поэтому можно смело удалять всё. Победа разума над интеллектом!

Яндекс.Карты и NoScript

Задолбался ковыряться с Яндекс.Картами. Не работают панорамы – хоть ты тресни. В IE работают, в FF – нет. Стал отключать плагины – оказалось, дело в NoScript. Переключился на другой профиль – там оно почему-то работает, хотя NoScript тоже установлен. И тут меня осенило, что там версия NoScript допотопная. Стал искать, с какой версии это началось. Оказалось, с 2.5.8. Откатился было к 2.5.7, но вроде как-то нехорошо это. Решил бы написать багрепорт, а там написано – надо предоставить все сообщения с консоли ошибок JavaScript. Стал там копаться, а на вкладке "Messages" NoScript что-то ругается про скрипт с некорректным типом, включаемый Яндексом…

Короче, выяснилось, что в Яндексе какой-то скрипт имеет тип application/octet-stream, что для скрипта, мягко говоря, странно. NoScript это невзлюбил и заблокировал (не смотря на то, что Яндекс в белом списке). К счастью, для таких извращений нашёлся свой белый список в about:config под именем noscript.inclusionTypeChecking.exceptions – добавил yandex.st (через пробел) в конец, всё стало работать и в последней версии NoScript.