логин: 
<< предыдущая заметкаследующая заметка >>
21 марта 2010
Выбегающее сообщение.

Сделал зачем-то модуль MESSAGE — выбегающее сообщение. Для привлечения внимания выпрыгивает из угла. Вставляя в заметку как {_MESSAGE: Привет, человечек! _} или комбинируя с прочими модулями (модулем доступа, например), можно оставлять личные сообщения для отдельного человека или группы. Например:

{_DOSTUP: Vasya_Pu | {_MESSAGE: Вася, позвони мне срочно по поводу пятницы!!! _} _}

Изначально я расчитывал использовать эту штуку для одноразового оповещения «владелец блога внес вас в список друзей, теперь вы можете видеть подзамочные заметки», но пока не придумал, как это лучше сделать. Наверно надо бы в общем виде делать отдельную базу сообщений, куда вообще можно будет оставлять сообщения для конкретного пользователя, пока он не появится.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows Firefox
0
0
lleo.me/[email protected]Александр
Клёво.:-) Еще комменты сделай отправку по ctrl + enter.
Linux Firefox
 Москва
0
0
Надо, да. Но это вообще надо делать с размахом: отдельную процедуру, которая бы могла динамически задавать в модуле обработки клавиатуры горячие клавиши.
Windows Firefox
0
0
lleo.me/[email protected]Александр
Леонид, любите вы чтоб прям с размахом всегда.:-)
Nokia-E90 Safari
2
0
LLeo Nokia (#3043)
Без размаха после себе дороже выходит - многое переделывать.
Прикольно получилось :)

По поводу одноразовых сообщений - легко случайно провтыкать. Открыл страницу в фоне, а потом броузер накрылся и все. Лучше если человек сам его будет прибивать - по крестику, например. Тогда видно что он прочитал.

А себе можно табличку вывести - кто прочитал, кто нет.

Или еще добавить варианты ответов. Типа "ты прийдешь завтра? Да/Нет/Не знаю еще". Что нажал - то в табличке и высветилось.
Windows Opera
1
1
Monstradamus (sing1eton)
Чтоб не провтыкать, можно просто в таблице сообщений завести поле "прочитано" и если движок позволит, по закрытию окна ставить поле в true. И показыватьсообщение, только если оно не прочитано еще. И если не прошел крайний срок (для приглашений, например).
Nokia-E90 Safari
0
0
LLeo Nokia (#3043)
Варианты ответов - это уже лишнее :)
Windows Safari Chrome
0
0
Леонид, Вы зря не любите jQuery - с ним, например, подобное окошко двигалось бы плавно.
Windows Opera
0
0
gryzchick
Скоро "подсветку" ссылок при наведении курсора будете делать на каком-нибудь ExtendedLinkerHover.js. Чтобы окошко двигалось плавно, достаточно поставить интервал в 10-30 миллисекунд.
Linux Firefox
 Москва
0
0
недостаточно - не двигается плавно
Windows Opera
0
0
gryzchick
Расстояние тоже уменьшить в несколько раз, возможно сделать сдвиг пошагово: сначала по вертикали, потом по горизонтали. Ниже 10 миллисекунд интервал ставить бесполезно, не будет успевать интерпретатор.
Linux Firefox
 Москва
0
0
я экспериментировал - плавности не получится, много перерисовывает браузер

да и фиг с ней - зачем плавность? выскочило окно? иллюзия движения была? стало ясно, что это не элемент страницы, а что-то дополнительное? и достаточно для своих целей
Windows Safari Chrome
0
0
Всё нужно для своих целей. В данном случае, jQuery позволяет в 1 понятную строчку сделать красивое (которое здесь так и не получилось) мультибраузерное движение элементов, что сокращает минимум на порядок время разработки и тестирования.

Грубо говоря, проблема в том, что javascript в сегодняшнем виде сделан не для людей. Проблем много, как в несовместимости, так и в том, что для реализации простейших вещей требуются килобайты кода.

Относительно подсветки и прочего: юмор, конечно, стоящий тенденций быдлопрограмминга с копированием без разбора чужих скриптов, однако в реальной жизни тот же jQuery позволит в 1 строчку реализовать кнопку включения-выключения подсветки, тогда как на javascript это несколько Кб текста.
Windows Opera
0
0
gryzchick
Я говорил про подсветку ссылок при наведении на них курсора. Кнопка, как думается, будет занимать строчек пять-шесть и около 200 байт кода, что, конечно, не сравнимо с 20 килобайтами jQuеry.
Windows Safari Chrome
1
0
Если быть точнее, 24Кб. С кнопкой - чуть больше строчек получается:
1. Выбрать все элементы по тегу a (ну или каким там нужно)
2. В них регэкспом по полю класса найти нужный класс/его отсутствие.
3. Добавить/удалить нужный класс.
Это повторяется 2 раза, для открытия и закрытия. If'ы, вызов и прочее - явно больше получается - 400-500B.

Само собой, если нужна только подсветка - jQuery использовать несколько странно. Если же на сайте скриптов сравнимый объём - имеет смысл пользоваться. Кроме того, если нужна обработка сложных вещей - аяксы всякие, жёстко заскриптованные input'ы - тут jQuery избавляет от безумного количества бесполезной работы.
Windows Opera
0
0
gryzchick
Вы охренели, что ли?
document.getElementById('button').onclick = function(){
var elems = document.getElementsByTagName('a')
elems[0].style.color == 'blue? var color = 'black': var color = 'blue'
for x in elems elems[x].style.color = color
4 строчки, 220 байт.
Windows Safari Chrome
0
0
Я про переключение не сменой цвета, а классами - оно заметно более гибко. Впрочем, пофиг.
Windows Opera
0
0
gryzchick
Заменить style.color на className - и выйдут те же 212 байт.
Windows Safari Chrome
0
0
Классов у поля может быть несколько, что немного расстраивает.
Linux Firefox
 Москва
0
0
Вы сами понимаете смысл своих слов? Напишите скрипт Рождения Вселенной на триллаирд триллиардов гигабайт, подгружайте его вместе со страницей - и радуйтесь, что теперь создавать и гасить вселенные можно одной строчкой on() и off().

Очень смешно, предлагать грузить чемодан скриптов jQuеry ради "подсветки ссылок", которая делается вообще-то одним словом в css.
Windows Safari Chrome
1
0
Да, я полностью понимаю смысл своих слов. Любые вещи полезны для своих задач.

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

В вашем случае, эта страница весит 40Кб. Скрипты к ней - ещё 40Кб. Несжатый jQuery - 70Кб, что сравнимо. То есть нагрузка для пользователей небольшая, тем более, что однократная. При этом, jQuery позволяет в несколько раз уменьшить время написания и объём скриптов для местных нужд, при этом сильно улучшая их читабельность.

То есть, увеличивая время первой загрузки в 1.5-2 раза (о ужас, придётся скачать целых 40-50Кб gz-ипнутого кода + картинки). Дальнейшие объёмы те же. На практике, для компьютеров не на модеме/gprs это очень быстро. Соответственно, проблема объёма актуальна только для посетителей из глубинки и пользователей телефонов без wifi/3g/wimax. В первом случае, люди зачастую сознательно отключают картинки и js, а остальные готовы подождать (целых 10 секунд!). С телефонами всё сложнее. Если верить разработчикам, jQuery полноценно поддерживается уже в Nokia S60, потому проблем быть не должно (впрочем, сам не проверял). Для телефонов в целом лучше создавать минималистический дизайн с минимумом кода - тогда перегрузка страницы не будет критичной, и можно практически полностью отказаться от javascript. Так что я не вижу причин в Вашем случае отказываться от jQuery (или подобных библиотек), помимо этической стороны вопроса.

Наиболее важно здесь то, что использование jQuery значительно сэкономит затраты на разработку не отдельной функции, а всего js кода, исходя из чего пример про Вселенную несколько странен (с учётом реальных объёмов сайта).

Что касается "подсветки ссылок", рассматривать случай реализации банального стиля через тяжеловесные библиотеки несколько странно - это ближе к юмору, чем к жизни. А пример с кнопкой включения-выключения подсветки ссылок на странице куда более жизненный, и демонстрирует пользу от jQuery.

PS Что-то я слишком богохульствую по нынешним меркам.
PPS Леонид, с чем может быть связано скрытие этого коммента - с особенностью Вашего комментария (типа скрывать все ответы), особым видом бан-листа, или же с какими-то секретыми забаненными конструкциями в тексте?
Linux Firefox
 Москва
0
0
Что такое "кнопка включения-выключения подсветки ссылок"? Что это за маразм и где он должен применяться в реальности?
Windows Safari Chrome
0
0
Навскидку, пригодно для индивидуальных пользовательских интерфейсов, изменения внешних ссылок для удобства отличия от внутренних. Впрочем, безусловно, это сферическая свистелка и перделка в вакууме.
Леонид, может пойдете на встречу труженикам тыла и сделаете сжатие хотя-бы внешних скриптов(pins, pravka_blog, JsHttpRequest, ...) ?
Даже первые три ужимаются с 33 до 9 кб, а в такие килобайты "тот, чье имя здесь не пишут", слава gzip-у уже не влезает :-)
Linux Firefox
 Москва
0
0
Я бы рад, да не умею.

Более того: у меня почему-то закрадываются определенные сомнения, что у меня не настроена в апаче или не включена на сайте та система, которая позволяет браузеру понять, грузить скрипты и стили заново или взять из своего кэша. Как проверить - не знаю.
Windows Safari Chrome
0
0
Судя по заголовкам, у Вас на front-end'е nginx, на котором и надо настраивать gzip. Так что Вам к хостеру.

Заголовки php-скриптов настраиваются Вами, в том числе явно в php, и, если у Вас Apache на back-end'е, в .htaccess файлах. Статика вся отдаётся через nginx, потому настройки делаются там. То есть, тоже к хостеру.

Gzip у Вас отключён, про кеширование статики в заголовках ничего нет. (впрочем, если включать полноценное кеширование, надо заморочиться с тем, чтобы изменялась ссылка на файл при изменении самого файла; в простом случае это делается так: style.css?date=26032010 или logo.jpg?date=26032010; чуть сложнее - прописывать в nginx'е rewrite, чтобы картинка по запросу /images/26032010/logo.jpg сервером бралась как /images/logo.jpg).

Ссылки:
HTTP заголовки страницы можно посмотреть здесь:
http://www.whatsmyip.org/http_headers/

Проверить сжатие:
http://www.whatsmyip.org/http_compression/

Для предыдущего есть плагины файрфокса. То, что ниже, Вам скорее всего не пригодиться, хотя, всякое бывает.

Настройка gzip сжатия в nginx:
http://sysoev.ru/nginx/docs/http/ngx_http_gzip_module.html

Изменение http заголовков в nginx:
http://sysoev.ru/nginx/docs/http/ngx_http_headers_module.htm[...]
Сжатие можно сделать на "чистом" php+mod_rewrite (идея та же, что и в index.php в вашем движке), т.е. без изменений со стороны провайдера. Если интересно - могу поспособствовать словом и делом.

С nginx и memcache не работал, может они это сделают проще и красивее...
Linux Firefox
 Москва
0
0
Провайдер сказал, что кэширование должно быть, а вот сжатия нет и не будет. Потому что это глупость, у провайдера 20 тысяч пользователей, и лишь мне одному вдруг понадобилось сжатие, не пошел бы я лесом с такой нелепой и несуразной просьбой.
Проверить проще всего либо через сниффер, либо через прокси с возможностью логирования траффика. Сам я не юниксоид, так что конкретного названия программы не подскажу.
Mac Safari
0
0
bukov_net (tonsky)
WebInspector встроен в Safari и Chrome и прекрасно показывает все заголовки, сжатие, время загрузки всех ресурсов.
А перетаскивается у вас плавно?
У меня, например, очень даже рывками и связано это не с таймерами, а полупрозрачным "кантом". Причем это в Опере, а в Фоксе - плавно, но с "дожащим" фоном вокруг "канта".
Вы зря его любите. Это - не волшебная палочка. Это, как говорит мой знакомый, отборная калочка.
Windows Safari Chrome
0
0
Помимо ругани, у Вашего знакомого есть аргументы?
Есть - практика применения этого (и подобных) монстра разработчиками. Представьте скорость-качество GPRS (даже не EDGE) где-нибудь в деревне с 19 до 22 часов по Москве. И попробуйте открыть admnet.ru , a после сравните с yandex.ru
Windows Safari Chrome
0
0
admnet.ru просто кривой сайт, с 30 ошибками html на главной странице и картинками на 500Кб. При этом, что характерно, вес страницы примерно равен весу js файлов. Не надо путать проблемы с головой с проблемами jQuery.

При этом яндекс, что характерно, грузит jQuery. =) И общий вес главной страницы до сжатия - 175Кб, после сжатия - ~100Кб.

А разница как раз в том, что яндекс грузит 20 страниц, а адмнет - 50, и скорость реакции сервера адмнета оставляет желать лучшего (это если исключить 500Кб картинок)

Если же говорить о практике применения, jQuery в разы сокращает время разработки (с учётом доведения до мультибраузерности), и, соответственно, её цену, при этом даже на russian wooden modem грузится за 4 секунды.

Так что, если это аргументы Вашего знакомого - знайте, в этой области он не шарит.
admnet - кривой. И таких большинство.
yandex - прямой. Таких единицы.
Да. Они оба используют одну библиотеку, но различия для пользователя - разительные. Если для adnet - главное погрузить чего-то-там, то для yandex - показать пользователю страницу.
Как думаете, к кому из них ближе будет работа у человека, который впервые видит библиотеку и с js на Вы?
Уверяю вас, когда скрость подключения плавает от 3 до 10 килобит, время реакции сервера совершенно незаметно.
Похоже, что к библиотеке должна прилагаться культура использования, которую я в описаниях не видел (может уже и появилась?). То, что дается в примерах как раз и толкает на бездумное включение Всего ради Одной строчки. Напоминает мне это старого доброго Борланда с его VCL. Он тоже сокращает и доводит, правда издержки этого сейчас уже почти незаметны пользователю.

Знакомый в этой области не шарит. Он жертва сокращенного времени разработки. Тихо матерясь таскает за собой sim-ки всех операторов очередной деревни и помнит, кто по каким часам тормозит и сколько стоит.
Windows Safari Chrome
0
0
jQuery - это просто удобно для разработки, и не важно, для одной строчки оно удобно, или для тысячи. Как минимум, с ним может не болеть голова, не сглючит ли свеженаписанный код в том или ином браузере.

Культура программирования со стороны пользователя - это минимизация времени выполнения и используемых ресурсов, и она нисколько не зависит от языка программирования. Трудности с jQuery в таком контексте могут возникнуть, если требуется исполнять действительно много кода, при этом почти везде используя jQuery (это, к сожалению, плата за мультибраузерность - время исполнения такого когда в 2-3 раза больше). К слову, VCL может сократить разработку интерфейса программы с месяца до 1 дня.

Вот, кстати, один из примеров удачного использования jQuery с кучей плагинов:
https://mylk.qiwi.ru

PS Есть шанс, что к Вашему знакомому придёт йота и решит все проблемы.
Вот-вот «удобно для разработки». Этим пользуются все. Но вот о том, как с этим "изделием" жить потребителю задумываются мало. Код сглючит в любом случае, отладку никто не отменял. Правда есть надежда что во всех браузерах одинаково.

Золотые слова! Но у пользователя нет ресурса "время-цена разработки", основной его ресурс - время и цена получения информации, а в большинстве случаев(сайтов) "фреймворк" только разбазаривает этот ресурс. VCL может, знаю, но за это берет вполне определенную плату с пользователя (некоторое замедление работы интерфейса и размер приложения).

До Яндекса далеко - первые буквы появились примерно на 80-ом килобайте (хотя сам html - 5k и css примерно столько), у Яндекса - на 20-ом.

Шанса нет. Он - работник Газпрома и работает на компрессорных станциях.
Windows Safari Chrome
0
0
Текст появляется только после подгрузки всех js файлов. Яндекс их по-умному разместил в самом конце страницы.

Что касается сайта киви, предполагается, что Вы не один раз зашли и ушли, а регулярно пользуетесь сайтом (оплата всего подряд без комиссии - и правда весьма удобно). В этом случае статика загрузится только один раз, то есть эти 80Кб задержки одноразовые. При этом даётся удобный легковесный сайт, в котором любые действия загружают весьма мало данных и только через ajax. То есть, для нужд вида "зайти и заплатить" такой вариант оптимален, плюс к чему даёт красивый сайт.

PS Йотой обещают через 4 года покрыть все населённые пункты России. И, кстати, спутниковый интернет - не вариант при наличии машины и отсутствия недостатка в финансах?
Вы не правы. Текст и скрипты могут (и должны) показываться и загружаться независимо. Яндекс использует асинхронный тип загрузки - через модификацию DOM, Киви - тупо прописывает все скрипты в разделе head, т.е. блокирует отображение до полной загрузки всех элементов. Потратьте 10 минут - сравните исходники.

Кэш - очень ограниченное хранилище. У меня на данный момент чуть больше 10Мб(а в настройках 20 ?), т.е. за 10-15 просмотров "средних" сайтов из него уйдут все файлы Киви и все грузить заново.

Значит шанс есть. Спутниковому интернету все равно нужен наземный канал связи. Знакомый пользуется общественным транспортом (самолетом-автобусом).
В дополнение к предыдущему посту. Вот он - ужас использования фреймворков https://newstat.kuban.ru
Windows Safari Chrome
0
0
Блять, ext-all.js - 500Кб. Охуенный фреймворк! При таком весе он должен посетителям как минимум минет делать!
Согласен. Это клиника. Но ныне ее все больше, к сожалению. И "ускоренная разработка" + "монолитные" библиотеки только ухудшают качество web-разработок. Давайте все-таки применять такие средства в адекватных ситуациях, а не для "плавного движения окна"
Windows Safari Chrome
0
0
Блин, не надо путать гигантский фреймворк и небольшие библиотеки. Фреймворк - это набор классов на все случаи жизни сразу. Библиотека типа jQuery - это небольшой набор инструментов для удобной работы. Кроме того, фреймворк весит в среднем на порядок больше страницы, тогда как jQuery - сравним. Потому jQuery окупается уже при реализации сложной анимации на сайте, а фреймворк - только при очень сложной логике сайта.
И тебе привет человечек.
Windows Opera
0
0
Dmitriy (#130254)
Вот нашел интересную заметку, может не в тему, но все же:
В модуле статистики сайтов я решил записывать в лог неопознанных юзер-агентов, чтобы быть в курсе выхода новых версий браузеров. Сегодня в списке логов появилась пара интересных экспонатов:
Неопознанный браузер Za*batyi brauzer
Неопознанный браузер X*y ego znaet/1.0 (CP/M; 8-bit)
Linux Firefox
 Москва
0
0
Ну а что тут странного? Строка представления Браузера - это лишь та строка, которую передает сам клиент. Клиент при желании может передавать что угодно.

Например, когда Youtube перестал мне показывать видео, утверждая, что мой Firefox 2.0.0.16 больше не поддерживается (сейчас они вроде этот бред подправили), я стал ему представляться как Firefox 3.1 Windows 7 - и все заработало.
Не тесно вам ещё в PHP рамках? Не смотрели ли на уже имеющиеся web-framework`и? На, скажем, django (что есть язык python, и что можно хостить в google`вских облаках). Там, кстати, и messages framework (http://docs.djangoproject.com/en/dev/ref/contrib/messages/) уже есть, равно как и множество прочих, довольно полезных.
Linux Firefox
 Москва
0
0
Удивляет количество людей, готовых отдать свой сайт черту за его фреймфорк с кнопочкой, отсосать у любого проекта за бесплатно и захостить свою душу на Гугле.

Давече Мицголд вот рассказывал, что программировать нужно исключительно под Firefox. А на вопрос "что ты будешь делать, когда через 3 года Firefox умрет, как умерло все, что было до него?" неизменно удивляется и отвечает, что Firefox, разумеется, отныне и навсегда вечен... :)

Вы наверно тоже считаете, что Гугль вечен? :) А я помню времена (мой сайт уже существовал), когда Гугля не было, все сидели под системой OS/2, а вечными считались Альтависта и Рамблер. И где они теперь, вы эти названия хоть слышали?
> через 3 года Firefox умрет

А вы уверены, что PHP вашей версии за будущие три года не умрёт?

> вы эти названия хоть слышали?

Мы слышали. Свой первый сайт в 1998 году создали, под FreeBSD на институтском сервере захостили, потом в zenon переехали, потом на dedicated server в канаде, потом на на порядок более мощный в германии.

И первый свой динамический сайт создавал я тоже на голом языке -- то был Perl тогда, даже без use CGI. Потом появился use CGI.

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

А удивляет меня количество людей идущих ровно по тому же пути, вместо того, чтобы сразу на финиш телепортироваться (чай не 1998 год на дворе).

Нет, если основной задачей является именно, что создание ещё одного PHP фреймворка, а не удобного сайта, то всё правильно (кроме выбора языка). И пару-тройку тутошних юзабилити-решений стоит многим взять на вооружение.
С другой стороны, быть может писать всё самому с нуля это в перспективе более верно, и это я тогда выбрал не тот путь. Оттого за этим проектом и слежу, комментарии оставляю и ответов ожидаю с нетерпением :o)
Nokia-E90 Safari
 Москва
1
0
LLeo Nokia (#3043)
Фактически суть дискуссии: кем быть - разработчиком или пользователем?

Мне роль пользователя не годится - у меня нестандартный задачи. Ни один ваш фреймворк не сделает мне тот функционал, который мне нужен.
Windows IE
0
0
vivliofika
гыгыгы. Моя вивлиофика тоже появилась только на год позже :)
А я думал это проверка на бота или поисковик. А это Выбегающее!

всего комментариев: 77

<< предыдущая заметка следующая заметка >>