Сегодня я обратил свой взляд на проблему актуальности отображения информации на сайте. Общеизвестно, что небольшие яркие метки (типа такой NEW) возле наиболее свежих материалов способствуют увеличению их читаемости примерно в два раза! Они привлекают внимание посетителя и как бы "подталкивают" его нажать на заветную ссылку.
Но есть и обратная сторона - редкообновляемые ресурсы. Недавно я поймал себя на том, что на некоторых моих страницах эти метки висят уже более года. Они уже порядком премелькались постоянным посетилям и наоборот, ухудшают общее мнение о сайте.
Если у вас только одна новостная страница, где вы и анонсируете все обновления - то это вообще не проблема. Другое дело, если таких страниц несколько десятков. Тут уже просто не удержишь в голове всю эту махину связных документов, подразделов, разделов. Даже в простейшем случае, когда вы добавляете в навигационное меню один-единственный пункт, он должен быть выделен на всех страницах сайта. А это значит, что сначала вам придется ручками править все страницы (добавлять и выделять его), а потом (через пару недель) - опять править, только уже убирать выделение. Вот и получается неблагодарная двойная работа.
Озаботившись этой проблемой, я решил хотя бы наполовину облегчить жизнь самоотверженного web-дизайнера. Да, поставить выделение все-таки придется самому - без этого никак. А вот работу по снятию выделений и меток мы поручим умному JS-скрипту.
Итак, формулировка задачи такова: в подключаемом JS-файле хранится функция, которой мы передаем 2 параметра: момент добавления новости и сколько дней она должна висеть с пометкой "новая". В зависимости от текущей даты, эта функция либо печатает в документ метку, либо нет.
Вот как это выглядит в коде (скопируйте в файл new-time.htm):
А это содержимое подключаемого файла new-time.js:
Здесь я воспользовался функцией (new Date()).getTime(), которая возвращает количество миллисекунд, прошедших, кажется, с полночи 1 января 1980. В принципе, мне совсем не важно знать начало отсчета, главное - разница между моментами добавления новости и текущим временем просмотра у посетителя.
Как видите, у меня стоит округление до суток (now-was)/1000/60/60/24 - в секунде 1000 миллисекунд, в минуте - 60 секунд, и т.д. А в сутках удобнее всего задавать длительность анонсирования новости.
Глядя на вызов функции вида anonce(1125794619552,7); у всех вас назревает вопрос: "А как узнавать значение первого ужасающего параметра? Ведь оно будет требоваться постоянно, при каждом последующем обновлении."
Я и тут вас не покину: нажмите на эту ссылку, и вы сразу же узнаете, что хотели! Запечатлите этот миг, он уникален! Только одна оговорка: если вы читаете данный выпуск рассылки через обычный браузер, открыв письмо из почтового ящика, то эта возможность будет заблокирована. Поэтому откройте оригинал выпуска на сайте и проделайте те же манипуляции там: www.alex-world.ru/web/master/0004.htm
Ну что же, остальное - дело техники. Начинается новое время: создайте себе файл new-time.js и подключите его ко всем страничкам, где потребуется ставить метки новизны. Пользуйтесь на здоровье, теперь об актуальности отображения вашей информации позаботится до неприличия пунктуальный JS-скрипт.
|