Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Минималистский календарик в 1 кБ? учебно-спортивный интерес 
:(
    Опции темы
SelenIT
Дата 28.10.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Цитата(cruelangel @  28.10.2007,  21:27 Найти цитируемый пост)
вполне достаточно: 1, 2, 4 дня, 1, 2, 3 недели, 1, 2, 3, 6 месяцев

Недостаточно. По опыту подобной системы, примерно каждый пятый-шестой юзер слезно просит добавить "еще фильтрик". Выбиралка диапазона решает проблему навсегда.

Цитата(cruelangel @  28.10.2007,  21:27 Найти цитируемый пост)
зачем, если есть универсальное поле ввода?

...дополненное опциональным датапикером для тех, кто не дружит с клавой smile - для максимально широкого ублажения юзеров...

Цитата(cruelangel @  28.10.2007,  21:27 Найти цитируемый пост)
речь не об этом.

...а о чем тогда? Тогда я вообще не понимаю смысла дискуссии... smile 


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
_Michael
Дата 29.10.2007, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



cruelangel, человек спрашывает как можно скрипт оптимизировать а не зачем он нужен. пускай для тебя ненужно он без нужды, но кому-то так нравится. Если можно не только поле ввода а еще и такой датапикер раелизовать? то что ето плохо? Конечно надмерная перегруженность страницы контентом плохо, но в данном случае, маленькая кнопочка для ввода даты двумя тремя кликами, думаю намного поднимет например общее мнение среднестистического "проводниково-аутлучного" пользователя о сайте. Большинству, подавляющему большинству юзеров намного удобнее развалившись в кресле все операции делать мишей нежели отвлекаться на клаву чтоб там найти нужную клавишу. Но еще раз повторю человек не ето спрашывал открывая данную тему. Если хочешь поспорить о том, надо такое или нет, открывай новую тему.


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
SelenIT
Дата 30.10.2007, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Ой, йо...  smile ведь не мог я не видеть соотв. темы на dklab.ru, выходит, просто забыл напрочь, а потом фактически тупо воспроизвел практически один из примеров оттуда... AKS, что ж Вы меня сразу туда носом не ткнули?

Хотя с другой стороны, алгоритм-то тривиальнейший, диктуется структурой данных... может быть и конвергенция в мыслях такая... Но все равно, теперь придется срочно изобретать оригинальную оптимизацию и брать килобайтную планку, чтоб избавиться от "комплекса вторичности"...;)



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
AKS
Дата 30.10.2007, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(SelenIT @  30.10.2007,  01:18 Найти цитируемый пост)
AKS, что ж Вы меня сразу туда носом не ткнули?

Зачем? Здесь все по-другому - лучше, проще (никакой вторичности).

PM MAIL   Вверх
cruelangel
Дата 30.10.2007, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 12.9.2007

Репутация: 4
Всего: 8



обфускатором её smile
PM MAIL   Вверх
_Michael
Дата 30.10.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



SelenIT, ну смотри, если забрать все переводы строк, ето будет 1361-32*2 = 1297 байт. если в скрипте табуляцию убрать будет еще -27 байт тоесть 1270. Если заменить container на с например и calendar на например, то будет еще -37 байт, то-есть 1233. байта. если со стилей убрать px будет уже 1229, еще пробелов с десять можно убрать уже будет 1219. Нуу, больше не знаю как. smile 
Да и вообще то сам скрипт то меньше, всего 995 байт, что менее 1к. а етих 1361 ето ж вся страница.


Это сообщение отредактировал(а) _Michael - 30.10.2007, 15:41


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
_Michael
Дата 30.10.2007, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



Еще можно вместо d.getElementById(id).innerHTML писать просто id.innerHTML. ( еще -19 байт smile)

Это сообщение отредактировал(а) _Michael - 30.10.2007, 15:50


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
_Michael
Дата 30.10.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



Сорри, только что попробовал id.innerHTML у меня не работает, но container.innerHTML работает отлично smile


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
SelenIT
Дата 30.10.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



_Michael, спасибо, но хотелось бы сохранить подобие читаемости. Сжатие за счет переносов строк и пробелов - это, имхо, уже немножко неспортивно;). А замена getElementById на all и тем паче глобальную переменную нарушает кроссбраузерность...

Пока удалось преодолеть планку в 1.3 кБ, за счет убирания лишних переменных и злоупотребления "добротой" HTML-модели, самостоятельно закрывающей незакрытые <td>, <tr> и т.п.. Итого, текущий рекорд (с двумя "красными днями", на пределе читаемости) - 1242 знака (при "неспортивном" сжатии в одну строку, убирании ";" перед "}" и переименовании переменных в однобуквенные - 1065). Имхо, это можно уже постить прямо сюда...;)
Код
<script>
function calendar(id,func,dt){
 dt=dt||new Date();
 var y=dt.getFullYear(),m=dt.getMonth(),t='<table><tr>',d,
 ars=['&lt;&lt','&gt;&gt;'],
 dc={5:'sat',6:'sun'};
 for(var i=0; i<7; i++) t+='<th'+(dc[i]?' class="'+dc[i]+'"':'')+'>'+['Пн','Вт','Ср','Чт','Пт','Сб','Вс'][i];
 for(i=1-((new Date(y,m,1)).getDay()+6)%7; i<=(new Date(y,m+1,0)).getDate(); i+=7){
  t+='<tr>';
  for(var j=0,cn;j<7;j++){
   cn=(dc[j]||'')+((d=new Date(y,m,i+j)).getMonth()!=m?' oth':'');
   t+='<td'+(cn?' class="'+cn+'"':'')+' onclick="'+func+'(new Date('+y+','+m+','+(i+j)+'))">'+d.getDate();
  }
 }
 for(i=0;i<2;i++) ars[i]=' <a href="#" onclick="calendar(\''+id+'\',\''+func+'\',new Date('+y+','+(m+i*2-1)+',1));return!1">'+ars[i]+'<\/a> ';
 document.getElementById(id).innerHTML=ars[0]+['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'][m]+' '+y+ars[1]+t+'<\/table>';
}
</script>
<style>
table {border-collapse:collapse;}
td,th {border:1px solid #000; padding:3px; text-align:right;}
.sun {color:red; background:#fdd;}
.sat {color:red; background:#ddd;}
.oth {background:#aaa;}
</style>
<body onload="calendar('container','alert')">
<div id="container">Тест</div>
</body>

...А что, раз браузеры умные и умеют сами поправлять кривые, по их мнению, данные - почему бы иногда, в меру, этим не попользоваться? Вот ведь сколько трафика и сил можно на этом сэкономить...

Upd.: путем варварского насилия над HTML (присвоения целевого id самому body и незакрытия body и table) удалось приблизиться к вожделенному килобайту почти вплотную - 1033 байта. Обрезав названия месяцев по трем первым буквам, получаем 1001 байт на всю работоспособную страницу (а с document.all - вообще 990!). Формально (хоть и с применением "запрещенных препаратов") цель достигнута? ;)

Это сообщение отредактировал(а) SelenIT - 30.10.2007, 21:59


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
_Michael
Дата 30.10.2007, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



Цитата(SelenIT @  30.10.2007,  17:50 Найти цитируемый пост)

...А что, раз браузеры умные и умеют сами поправлять кривые, по их мнению, данные - почему бы иногда, в меру, этим не попользоваться? 

Ето конечно можно, но страница не будет соответсвовать спецификациям W3C, или стандартам, в которых говорится что все теги должны закрываться
smile но здесь наверное ето несущественно.. поскольку не только ето требование на соответсвие стандарту не додержано smile

Это сообщение отредактировал(а) _Michael - 30.10.2007, 18:28


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
SelenIT
Дата 30.10.2007, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 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


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
_Michael
Дата 30.10.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



не работает поскольку нету XML заголовка 
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 что-то в етом роде

Это сообщение отредактировал(а) _Michael - 30.10.2007, 18:55


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
SelenIT
Дата 30.10.2007, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



_Michael, какой вариант и в каком браузере не работает? Или имеется в виду, что не проходит валидацию? Не спорю, для полной валидации даже как HTML 4.01 нужно добавить DOCTYPE, <title> и атрибут type для <script> и <style>, что скажется на калорияхбайтах smile. Но вообще в Strict mode работает, я проверял.

Правда, в настоящем XHTML (который с Content-type:application/xhtml+xml) не хочет innerHTML присваиваться, "неизвестная ошибка" вылетает. Для него придется делать версию на чистом DOM. Но тут уж я на килобайт и не замахиваюсь...

Это сообщение отредактировал(а) SelenIT - 30.10.2007, 22:04


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
cruelangel
Дата 30.10.2007, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 12.9.2007

Репутация: 4
Всего: 8



в данном случае лучше верстать дивами...
PM MAIL   Вверх
_Michael
Дата 31.10.2007, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



Не, я имел ввиду например здесь http://validator.w3.org/ smile Но ето если по стандартах все делать то конечно что в килобайт не уместится никак smile


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0979 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.