Всех поздравляю с наступившим 2009 годом! :)
За первые праздничные дни набросал тестовую версию ajax комментариев. Теперь для добавления коммента и обновления дерева не нужно перезагружать страницу.
Пощупать новинку можно, например, по этому адресу — http://new.livestreet.ru/blog/dev_livestreet/589.html Так же там работает новый механизм голосования за комменты.
Просьба потестировать новые комменты с голосованием и сообщать о всех багах. БД на сайте new.livestreet.ru используется та же, что и на livestreet.ru
ЗЫ Отдельное спасибо хочу сказать deniart'у за быструю верстку этой страницы.
вы можете перечислить в каких файлах находится изменения относительно новой системы комментариев?(экшены+шаблоны, просто перечислить в каких, без указания какие были изменения)
*чтобы можно было портировать на ветку 0.2(как сделаем выложу)
как ты определяешь, что она перезагрузилась? :)
перед отправкой формы выдели текст на странице и потом нажми отправить коммент. + в УРЛ не должен якорь при аяксе подставляться
А строка при получении запроса фаерфокс кажет ход загрузки, как будно идет перегруз страницы, но ФАЕРБАГ расставит всё на свои места. (признаться с моим инетом я ещё не залогинился туда)
Да так и есть. перезагрузки не наступает. Просто это кажется потомучто значек загрузки стьраницы крутится и строка получения в статусе прогресс показывает. Всё отлично.
Нужно на свернуть/развернуть повесить слайд эффект, могу помочь сделать. Ну и на проявку новых камментов можно ФЭЙД повесить, со слайдом. То есть сначало разьехалась плашка с новым камментом, потом проявилась от opacity:0 к opacity:1.
обычно не известно в каком месте появится новый коммент и делать для него анимацию, которую юзер не увидит сомнительно. А вот анимацию поля ввода коммента можно сделать, но я пока не разобрался с эффектами в мутулсе
А шапка видимо не работает еще пока. Зашел неавторизованным и увидел там deniart :-)
Мне даже дали коммент написать, правда потом пришло сообщение, что надо авторизоваться.
PS: Всем с наступившем — много интересного будет в этом году, попкорн запасайте :-D
Кстати, мне кажется, что ветки комментов изначально лучше свернутыми сделать, а потом если юзер хочет — разворачивает. Смысл их сворачивать, если они уже развернуты?
Так видел в других местах и так удобнее, имхо. А отступ лучше все-таки сделать, будет вообще супер, а то малехо сливаются.
приоткрывая завесу тайны:
«плюсик» — это добавление в социальные закладки топика, при нажатии будет виден список сервисов социальных закладок. Надеюсь эту функцию реализуют :)
«штекер» — это стандартная иконка для подключения к блогу
Я к тому, что функция в данном виде выпадает: вот ты зашел в топик, ты же все комменты читаешь, и сворачивать отдельные ветки тебе зачем, если они уже развернуты и готовы для прочтения? ) Т.е. выходит что эта функция вообще не нужна, а вот если бы ветки были изначально свернуты, появилась бы мотивация к использованию «плюсика» — чтобы развернуть ветку.
Допустим если ветка пошла совсем левая, то сворачиваешь и наслаждаешься более интересными далее. Когда они все свернуты, то бывает сложно быстро «сканировать» текст на предмет нужного.
Мне кажется, что вариант как свернутый (посмотрите на примере сети Профессионалы — очень напрягает), так и развернутый оба плохи. Здесь нужно некую золотую середину найти. Может сворачивать комментарии начиная с третьего уровня допустим? Это и общий смысл ветки позволит уловить и разгрузит визуально все комментарии.
Опять же, если совсем другим путем пойти, то зачем весь этот сыр бор для сворачиваний делается в первую очередь? Мне кажется самая большая проблема — найти откуда ноги растут (или другими словами предка) у того или иного комментария, так? На хабре для этого сделаны совсем непотребные стрелочки, где-то сворачивания делают и т.д. А может попробовать ввести некую динамику в это дело? Я вот чего придумал:
При наведении на коммент (или нажитии кнопки какой-то, хотя наведение мне больше нравится) можно выводить полупрозрачный блок чуть выше с сообщением на которое отвечали (то есть текст коммента-предка). Текст изначально сокращен. Затем при наведении мыши на него он становится полностью видимым и выводится полный текст (со скроллингом для длинных сообщений). При этом грузить ничего не нужно, все делается на клиенте через JS.
Такой вариант может очень существенно увеличить удобство работы с комментариями и уменьшит давление на колесо мыши.
Нюанс в том, что коммент по смыслу может быть и не связан с предком (первоначальным комментом), а относится к другому ответу, тогда выпадающее окошко с предком вряд ли о чем то скажет. Но идея все равно удачная, возьму на заметку ;)
вы не поняли. смотрите.
я захожу в тему. там 10 комментов.их них у каждогого 10 веток. к прмиеру.
я первый раз зашел в тему — они все развернуты.в базе к примеру (или в куках, где хотите). поставилась заметка «ага, эта ветка прочитана/отобразилась один раз».
когда я во второй раз захожу в топик, где еще новых 10 комментов с 10 ветками, то первые 10 (которые я по сути уже читал) — свернуты.
а новые 10, которые мною не читаны — развернуты. и не надо ниче сворачивать самому…
Почему бы не сделать что-то между livejournal и digg, чтобы когда коментов на странице очень много все ветки сворачивались до коментов первого и второго уровней?
Я конечно дико извиняюсь, но почему все такое меленькое :) Я понимаю что это легко переделывается, но неужели у всех стоит 800*600? У меня например, просто пиксель-хантинг получается. В остальном всё отлично конечно.
Не по теме сообщения. Просто — вниманию разработчиков.
Всё замечательно с Ливстритом. Но есть кое что, без чего индексация сайта ПС слегка притормаживает. Нужен sitemap.xml причём и для Google и для Yandex-a очень нужен.
Если это для того, чтобы в одном блоке разместить и последние комменты и публикации, то не понятно зачем изначально грузить аяксом. Лучше грузить через аякс только при смене публикации/комменты. А то как-то глупо смотрится при загрузке страницы
имхо это не глупо, а не оптимально: раз уж сразу после загрузки страницы последует автоподзапрос последних комментов, то во-первых лишний запрос к веб-серверу. многие бьются за минимизацию их количества, во-вторых повторная инициализация значительной части движка (выделения памяти, подгрузка файлов, интепретация...). повторный коннект к базе. на это все нужно время и ресурсы, которые секунду назад уже были потрачены :-).
так что с точки зрения экономии ресурсов более рационально просто еще один запрос сделать к БД за комментами, чем повторно делать все с начала ради одного запроса.
Хм, что там тех ресурсов? А мы думали на аяксе подтягивать ленту камментов/постов/голосов/событий. Тоесть висишь ты на странице, читаешь. На блок глянул, а он уже показывает все изменения произошедшие на сайте.
Заранее предвижу вопрос про отсутствие таких событий. Мы запустили сайт внутри сети в январе. На сайте сидит больше 500 человек одновременно. Постов, опросов и коллективных блогов создана уже куча. И вот там такой аякс оправдан.
(ЗЫ: Кстати ort движок с нагрузкой справляется на ура 10% процессора апачь и иногда до90% мускуль, но кратковременно пик проскакивает. Так что движок c БД работает не по детски круто)
в движке кеширование(лайфтайм) настроено не оптимально для посещаемых проектов, во многих местах время нужно увеличить в десятки раз, тогда будет еще быстрее :)
и на счет кеширования надо попробовать разбить большие запросы с джойнами на тупые отдельные подзапросы и кешировать сущности отдельно, а не всю пачку сразу. Возможно будет еще больший выигрыш, хотя это нужно экспериментировать
здесь больше уклон в сторону унификации, сделать получение данных только в одном месте + страница с нужным контентом загружается быстрее, т.к. не грузятся блоки, модемщики и GPRSники это должны ощутить :)
это, кстати, позволяет в данных блоках вообще отказаться от подключения обработчиков блоков в Смарти, если речь зашла о ресурсах :)
В хроме иконка на третьем повороте колесика при прокрутке падает вниз за край экрана
добавление important в «top: 220px !important;» класса .update решило проблему, но я не знаю правильно ли так делать или нет
да, сейчас все хорошо…
это повторялось в течении пары дней, я сразу не написал, мало ли разработка, а сегодня посмотрел во всех остальных браузерах, там все нормально было, а вот в хроме падало, решил все же написать :)
Макс, спасибо за фичу! а можно организовать такую штуку, чтобы новый комментарий открывался посередине экрана, а не сверху? чтобы можно было не скролируя видеть, на что собственно комментарий. В javascript не силен, но думаю это както должно решаться. было бы просто супер!
Вот если бы деревья были свернуты, если в них нет новых комментариев, то да, было бы супер. Лучше разворачивать, чем сворачивать. НО тогда лучше делать не малозаметный «плюсик», а под корневым комментарием писать «раскрыть ветку из X-ми комментариев».
И еще такой момент, когда добавляешь новый комментарий по ajax, спорно, что все остальные сразу делаются прочитанными. Ведь я могу ответить на первый попавшийся комментарий, не прочитав ни одного нового ниже, потом фиг поймешь какие из них были новые, не даты же добавления читать. Я бы отмечал комментарии прочитанными только при обновлении страницы, а не при добавлении комментария.
дайте пожалуйста сразу ответы на стандартные вопросы, о браузере, его версии, ОС и её версии, отключенных и включенных скриптах и всём остальном что может пригодиться… и впредь при описании ошибки вставляйте эту информацию, пожалуйста
На аяксе половина юзерской части движка завязано. Махом разумеется нет. Да и не махом запаритесь дописывать/переписывать.
А вы что, заботитесь о том одном проценте(думаю, даже меньше) у которого отключен JS? Аякс это удобно и красиво, без аяксовых фишек конкретно LS потеряет много своих фишек — если бы было хотя бы соотношение 70/30 а не 99/1, то может быть и стоило бы под 30% без яваскрипта что-то делать. А при сегодняшнем раскладе это не нужно.
Без аякса, оно надёжнее, и какие именно фишки вы имеете ввиду на аяксе чисто LS? Приведу пример, отсылка комментариев, без аякса ты точно знаешь результат, а с аяксом иногда случается что связь с сервером потеряна и значок обновления крутится и крутится, я конечно понимаю что для того чтобы проверить результат надо например обновить страницу, а как же наши любимые пользователи, которые жмут и жмут и плачут…?
Догадываюсь — timeout error (страница не ответила в заданное время)? Это и результат — пользователю всё понятно. Вопрос, тут выше говорили что ajax это в движке, а мне так думается надо тему править?
Может, тогда стоит озаботиться качественным хостингом? На нормальном хостинге никаких таймаутов быть не должно, согласитесь. Максимум что видел конкретно на ЛС — задержка ответа с тормознутого хоста в сша(информационный бокс вылезал через 4-5 секунд), но при безаяксовом движке от тормозов, если сервер у чукчи в юрте стоит вы не избавитесь.
говорили что ajax это в движке, а мне так думается надо тему править?
/incude/ajax/ смотрели? Весь этот функционал используется для добавления комментов/голосов и еще кучи всего, его надо распихать тогда по новой логике. Запаритесь — я вам говорю. Да и не нужно это 100%.
А от чего может зависеть скорость работы аякса? Последний ЛС вертится на апаче, вдска. Нагрузка большая (около 3к уников в сутки), но хостер говорит реусрсов у нас еще дофига и затыка по серверу нет. Однако добавление комментов и всякие голосовалки идут с дикой задержкой. Т.е. тыкнул в стрелочку — результат будет только через 20-40 секунд. То же самое и с добавлением комментов.
142 комментария
*чтобы можно было портировать на ветку 0.2(как сделаем выложу)
перед отправкой формы выдели текст на странице и потом нажми отправить коммент. + в УРЛ не должен якорь при аяксе подставляться
это было первое ощущение, которое потом прошло… но все же
Мне даже дали коммент написать, правда потом пришло сообщение, что надо авторизоваться.
PS: Всем с наступившем — много интересного будет в этом году, попкорн запасайте :-D
Так видел в других местах и так удобнее, имхо. А отступ лучше все-таки сделать, будет вообще супер, а то малехо сливаются.
«плюсик» — это добавление в социальные закладки топика, при нажатии будет виден список сервисов социальных закладок. Надеюсь эту функцию реализуют :)
«штекер» — это стандартная иконка для подключения к блогу
т.е. если глянул — значит прочитал.)
а новые — держать развернутыми…
Мне кажется, что вариант как свернутый (посмотрите на примере сети Профессионалы — очень напрягает), так и развернутый оба плохи. Здесь нужно некую золотую середину найти. Может сворачивать комментарии начиная с третьего уровня допустим? Это и общий смысл ветки позволит уловить и разгрузит визуально все комментарии.
Опять же, если совсем другим путем пойти, то зачем весь этот сыр бор для сворачиваний делается в первую очередь? Мне кажется самая большая проблема — найти откуда ноги растут (или другими словами предка) у того или иного комментария, так? На хабре для этого сделаны совсем непотребные стрелочки, где-то сворачивания делают и т.д. А может попробовать ввести некую динамику в это дело? Я вот чего придумал:
При наведении на коммент (или нажитии кнопки какой-то, хотя наведение мне больше нравится) можно выводить полупрозрачный блок чуть выше с сообщением на которое отвечали (то есть текст коммента-предка). Текст изначально сокращен. Затем при наведении мыши на него он становится полностью видимым и выводится полный текст (со скроллингом для длинных сообщений). При этом грузить ничего не нужно, все делается на клиенте через JS.
Такой вариант может очень существенно увеличить удобство работы с комментариями и уменьшит давление на колесо мыши.
Нюанс в том, что коммент по смыслу может быть и не связан с предком (первоначальным комментом), а относится к другому ответу, тогда выпадающее окошко с предком вряд ли о чем то скажет. Но идея все равно удачная, возьму на заметку ;)
я захожу в тему. там 10 комментов.их них у каждогого 10 веток. к прмиеру.
я первый раз зашел в тему — они все развернуты.в базе к примеру (или в куках, где хотите). поставилась заметка «ага, эта ветка прочитана/отобразилась один раз».
когда я во второй раз захожу в топик, где еще новых 10 комментов с 10 ветками, то первые 10 (которые я по сути уже читал) — свернуты.
а новые 10, которые мною не читаны — развернуты. и не надо ниче сворачивать самому…
из минусов — в базе дофига всего хранить… брююю
как вариант можно сделать пимпы: свернуть все и развернуть все
скинь скрин своей мелкоты
Всё замечательно с Ливстритом. Но есть кое что, без чего индексация сайта ПС слегка притормаживает. Нужен sitemap.xml причём и для Google и для Yandex-a очень нужен.
так что с точки зрения экономии ресурсов более рационально просто еще один запрос сделать к БД за комментами, чем повторно делать все с начала ради одного запроса.
Заранее предвижу вопрос про отсутствие таких событий. Мы запустили сайт внутри сети в январе. На сайте сидит больше 500 человек одновременно. Постов, опросов и коллективных блогов создана уже куча. И вот там такой аякс оправдан.
(ЗЫ: Кстати ort движок с нагрузкой справляется на ура 10% процессора апачь и иногда до90% мускуль, но кратковременно пик проскакивает. Так что движок c БД работает не по детски круто)
и на счет кеширования надо попробовать разбить большие запросы с джойнами на тупые отдельные подзапросы и кешировать сущности отдельно, а не всю пачку сразу. Возможно будет еще больший выигрыш, хотя это нужно экспериментировать
это, кстати, позволяет в данных блоках вообще отказаться от подключения обработчиков блоков в Смарти, если речь зашла о ресурсах :)
добавление important в «top: 220px !important;» класса .update решило проблему, но я не знаю правильно ли так делать или нет
это повторялось в течении пары дней, я сразу не написал, мало ли разработка, а сегодня посмотрел во всех остальных браузерах, там все нормально было, а вот в хроме падало, решил все же написать :)
а может дать им провернуться хотя бы кружок? ну или как-нибуть по другому, чтоб отклик от кнопки был при нажатии
Проверка работи скрипта…
И еще такой момент, когда добавляешь новый комментарий по ajax, спорно, что все остальные сразу делаются прочитанными. Ведь я могу ответить на первый попавшийся комментарий, не прочитав ни одного нового ниже, потом фиг поймешь какие из них были новые, не даты же добавления читать. Я бы отмечал комментарии прочитанными только при обновлении страницы, а не при добавлении комментария.
А вы что, заботитесь о том одном проценте(думаю, даже меньше) у которого отключен JS? Аякс это удобно и красиво, без аяксовых фишек конкретно LS потеряет много своих фишек — если бы было хотя бы соотношение 70/30 а не 99/1, то может быть и стоило бы под 30% без яваскрипта что-то делать. А при сегодняшнем раскладе это не нужно.
/incude/ajax/ смотрели? Весь этот функционал используется для добавления комментов/голосов и еще кучи всего, его надо распихать тогда по новой логике. Запаритесь — я вам говорю. Да и не нужно это 100%.