![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Однажды как-то случайно получился у меня минималистский а-ля календарик одной ф-цией, сегодня я снова на него наткнулся, чуть "причесал" код, в итоге весь скриптик уместился в 2 кБ. Вроде работает, при клике на день выполняется заданная при его создании ф-ция (в примере это простой alert) с выбранной датой как аргументом. Нутром чую, что можно сделать еще рациональнее, спортивный азарт подмывает ужать те же возможности до как минимум 1 кБ читабельного и красивого кода. Буду благодарен за соучастие в этом "интеллектуальном изв... упражнении"
![]() Upd.: Результат трудов (для тех, кому лень читать всю тему, в которой действительно много оффтопной воды;). Это сообщение отредактировал(а) SelenIT - 10.11.2007, 01:46 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
cruelangel |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
а я бы лучше обсудил практическую ценность сего виджета. я лично оной не наблюдаю.
|
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
cruelangel, вообще это задумывалось как часть очередного date picker'а (вместо alert-а может быть функция подстановки отформатированной как надо даты в текстовое поле). Но вопрос действительно скорее из абстрактного научно-спортивного интереса, чем из практического
![]() P.S. Вторая попытка - 1361 байт. Много ![]() Это сообщение отредактировал(а) SelenIT - 28.10.2007, 00:46 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
cruelangel |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
в том-то и дело, что быстрее и проще забить дату руками, чем ковыряться мышкой в датепикере...
|
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
На вкус, на цвет
![]() -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
cruelangel |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
хорошая автоматика распознает любой формат...
|
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
![]() ![]() -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
yalo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 24.5.2006 Репутация: нет Всего: 2 |
и с чего это проще? вполне нужная задача, сплошь и рядом применимая, буквально с неделю назад мне было необходимо такое решение, для портала, где архив новостей рациональнее всего именно в виде календаря представлять, так как новостей много, очень много может быть впоследствии, и выдавать их в виде обычной простыни со страницами-ссылками жестоко для пользователя, интересующегося новостями за определенный месяц или день.. и где же здесь простота в набивке руками? и как вообще все это набить руками?? ![]() |
|||
|
||||
AKS |
|
|||
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
||||
|
||||
cruelangel |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
SelenIT, для этого достаточно рядом показывать распознанную дату. к тому же, локализацию в зависимости от выбранного языка ещё никто не отменял..
yalo, скажу по секрету: навигация реализованная в виде датепикера - полный идиотизм. особенно прикольно это выглядит, когда новостей мало и на каждой странице получается по 1-2 записи. покажите мне пользователя, которого интересуют новости за определённый день прошлого месяца! нет, пользователей обычно интересуют новости за определённый период: сегодняшние за последнюю недёлю за последний месяц с момента последнего посещения не менее часто период его вообще не интересует - он просто выводит все новости с разбиением на страницы и жмёт для перехода между ними "ещё более древние новости" |
|||
|
||||
yalo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 24.5.2006 Репутация: нет Всего: 2 |
cruelangel, по-моему, Вы не правы, лично мне приходилось искать новости на одном из сайтов, сайт очень большой, за каждый день там было как минимум пять а может и больше новостей, адрес не вспомню, помню, что сайт объединял информацию юридического, экономического и еще возможно какого-то плана, что-то типа последних изданных законов, поправок к ним + всевозможные новости в мире бизнеса и экономики. Мне нужен был почти конкретный день, скажем плюс-минус 2 дня, а в новостях внизу была очень длинная простыня ссылок-страниц, я реально тогда замучилась искать какой-то определенный факт с того сайта среди новостей (узнав от кого-то, что на этом сайте есть интересующий меня факт среди новостей) кликая на стр. 1, 2 и т.д. и пытаясь примерно просчитать в уме куда же еще надо кликнуть и сколько пропустить страничек...:(
интересующий меня факт я так и не нашла, терпения не хватило, а трафика съела нормально так, кликая по ссылкам-страничкам, несказанно была бы рада тогда чудесному календарику Selenа
все-таки, это Ваша субъективная точка зрения |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
До боли знакомое ощущение, полностью поддерживаю! Имхо, едва ли не чаще, чем для навигации, дейтпикеры используются для задания границ диапазонов (напр. при поиске по тем же новостям, при построении графиков статистики и т.п.). Причем юзеру-гуманитарию вполне может понадобиться диапазон "с позапрошлой среды по прошлую пятницу" - например, от анонса товара до его поступления в продажу. Переводить дни в числа в уме или лезть в "часики" - долго и неудобно, а с помощью дейтпикера - наглядно, быстро и очевидно, особенно для юзера с проводниково-аутлучными привычками. Впрочем, это мое субъективное мнение ![]()
Добавил, заодно слегка почистив код для валидатора. Размер не изменился ![]() Вообще, основная цель этой демонстрации - проверка возможностей объекта Date, которому, по-моему, вполне можно доверить всю календарную арифметику (число дней в месяце, високосные года...), которую обычно пытаются реализовать вручную. Хотелось бы услышать комментарии по этому поводу. Это сообщение отредактировал(а) SelenIT - 28.10.2007, 19:29 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
cruelangel |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
yalo, нужно было воспользоваться поиском по сайту. как вариант - гуглопоиск - он ищет как правило лучше.
если известна конкретная дата, то гораздо удобнее просто её ввести, а не тыкать десять раз на "предыдущий месяц" и пару раз на "предыдущий год". Добавлено @ 20:39 > "с позапрошлой среды по прошлую пятницу" - например, от анонса товара до его поступления в продажу. вот и сделай ссылку "от анонса до начала продаж", а не заставляй его вспоминать в какой день недели это произошло. даже если это невозможно фильтра "за последние две недели" более чем достаточно. в пользовательских интерфейсах не нужна излишняя точность. Это сообщение отредактировал(а) cruelangel - 28.10.2007, 20:42 |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
cruelangel, я не понимаю, с чего такая ярость? ;) Это ж все дело вкуса, кому-то удобнее ввести, кому-то - покликать. Чем наличие рядом с полем ввода даты ма-аленькой кнопки открытия пикера мешает любителю текстового ввода? Имхо, такая комбинация всяко удобнее, чем три select-а, включая 31-строчный для числа
![]() А если понадобится "за три недели" или "за десять дней"? Плодить фильтры? Зачем, если есть универсальная выбиралка диапазона? ...для каждого товара, на всякий случай? Да если сам юзер забыл точное число, какого гейтса я должен их все помнить? ![]() Пользовательские интерфейсы вообще не нужны. Все можно сделать в консоли, кто не может - тому и в системе делать нечего ![]() -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
cruelangel |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
три селекта - это вообще жэсть...
> А если понадобится "за три недели" или "за десять дней"? также как и в случае 11 дней 14 часов 35 минут и 46 секунд Ж-) вполне достаточно: 1, 2, 4 дня, 1, 2, 3 недели, 1, 2, 3, 6 месяцев > Зачем, если есть универсальная выбиралка диапазона? зачем, если есть универсальное поле ввода? > Чем наличие рядом с полем ввода даты ма-аленькой кнопки открытия пикера мешает любителю текстового ввода? ничем. речь не об этом. |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Недостаточно. По опыту подобной системы, примерно каждый пятый-шестой юзер слезно просит добавить "еще фильтрик". Выбиралка диапазона решает проблему навсегда. ...дополненное опциональным датапикером для тех, кто не дружит с клавой ![]() ...а о чем тогда? Тогда я вообще не понимаю смысла дискуссии... ![]() -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
cruelangel, человек спрашывает как можно скрипт оптимизировать а не зачем он нужен. пускай для тебя ненужно он без нужды, но кому-то так нравится. Если можно не только поле ввода а еще и такой датапикер раелизовать? то что ето плохо? Конечно надмерная перегруженность страницы контентом плохо, но в данном случае, маленькая кнопочка для ввода даты двумя тремя кликами, думаю намного поднимет например общее мнение среднестистического "проводниково-аутлучного" пользователя о сайте. Большинству, подавляющему большинству юзеров намного удобнее развалившись в кресле все операции делать мишей нежели отвлекаться на клаву чтоб там найти нужную клавишу. Но еще раз повторю человек не ето спрашывал открывая данную тему. Если хочешь поспорить о том, надо такое или нет, открывай новую тему.
-------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Ой, йо...
![]() Хотя с другой стороны, алгоритм-то тривиальнейший, диктуется структурой данных... может быть и конвергенция в мыслях такая... Но все равно, теперь придется срочно изобретать оригинальную оптимизацию и брать килобайтную планку, чтоб избавиться от "комплекса вторичности"...;) -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
AKS |
|
|||
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
||||
|
||||
cruelangel |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
обфускатором её
![]() |
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
SelenIT, ну смотри, если забрать все переводы строк, ето будет 1361-32*2 = 1297 байт. если в скрипте табуляцию убрать будет еще -27 байт тоесть 1270. Если заменить container на с например и calendar на l например, то будет еще -37 байт, то-есть 1233. байта. если со стилей убрать px будет уже 1229, еще пробелов с десять можно убрать уже будет 1219. Нуу, больше не знаю как.
![]() Да и вообще то сам скрипт то меньше, всего 995 байт, что менее 1к. а етих 1361 ето ж вся страница. Это сообщение отредактировал(а) _Michael - 30.10.2007, 15:41 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Еще можно вместо d.getElementById(id).innerHTML писать просто id.innerHTML. ( еще -19 байт
![]() Это сообщение отредактировал(а) _Michael - 30.10.2007, 15:50 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Сорри, только что попробовал id.innerHTML у меня не работает, но container.innerHTML работает отлично
![]() -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
_Michael, спасибо, но хотелось бы сохранить подобие читаемости. Сжатие за счет переносов строк и пробелов - это, имхо, уже немножко неспортивно;). А замена getElementById на all и тем паче глобальную переменную нарушает кроссбраузерность...
Пока удалось преодолеть планку в 1.3 кБ, за счет убирания лишних переменных и злоупотребления "добротой" HTML-модели, самостоятельно закрывающей незакрытые <td>, <tr> и т.п.. Итого, текущий рекорд (с двумя "красными днями", на пределе читаемости) - 1242 знака (при "неспортивном" сжатии в одну строку, убирании ";" перед "}" и переименовании переменных в однобуквенные - 1065). Имхо, это можно уже постить прямо сюда...;)
...А что, раз браузеры умные и умеют сами поправлять кривые, по их мнению, данные - почему бы иногда, в меру, этим не попользоваться? Вот ведь сколько трафика и сил можно на этом сэкономить... Upd.: путем варварского насилия над HTML (присвоения целевого id самому body и незакрытия body и table) удалось приблизиться к вожделенному килобайту почти вплотную - 1033 байта. Обрезав названия месяцев по трем первым буквам, получаем 1001 байт на всю работоспособную страницу (а с document.all - вообще 990!). Формально (хоть и с применением "запрещенных препаратов") цель достигнута? ;) Это сообщение отредактировал(а) SelenIT - 30.10.2007, 21:59 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Ето конечно можно, но страница не будет соответсвовать спецификациям W3C, или стандартам, в которых говорится что все теги должны закрываться ![]() ![]() Это сообщение отредактировал(а) _Michael - 30.10.2007, 18:28 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
_Michael, по спецификации HTML не закрывать эти теги допустимо (хотя и не рекомендуется). При генерации DOM браузеры закрывают их сами перед началом следующего. А в режиме XML этот скрипт, увы, все равно не работает (по крайней мере в FF)...
P.S. Решил убедиться, сходил в спецификацию - table, оказывается, все-таки не закрывать нельзя. В примере исправил. В итоге минимальный вариант, не противоречащий стандартам, занимает 1045 байт с полными названиями месяцев и 1013 байт - с сокращенными. Планка 1024 все равно преодолена;). Это сообщение отредактировал(а) SelenIT - 30.10.2007, 22:00 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
не работает поскольку нету XML заголовка
Это сообщение отредактировал(а) _Michael - 30.10.2007, 18:55 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
_Michael, какой вариант и в каком браузере не работает? Или имеется в виду, что не проходит валидацию? Не спорю, для полной валидации даже как HTML 4.01 нужно добавить DOCTYPE, <title> и атрибут type для <script> и <style>, что скажется на калорияхбайтах
![]() Правда, в настоящем XHTML (который с Content-type:application/xhtml+xml) не хочет innerHTML присваиваться, "неизвестная ошибка" вылетает. Для него придется делать версию на чистом DOM. Но тут уж я на килобайт и не замахиваюсь... Это сообщение отредактировал(а) SelenIT - 30.10.2007, 22:04 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
cruelangel |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
в данном случае лучше верстать дивами...
|
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Не, я имел ввиду например здесь http://validator.w3.org/
![]() ![]() -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Видимо, да. Получилось целых 1193 байта. С точки зрения семантики не согласен (списки - еще куда ни шло), с точки зрения "спортивной оптимизации" - возможно, стоит попробовать, но имхо тогда CSS будет далеко не таким минималистским... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
cruelangel |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
float: left
width: 1em |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |