Приветствую!
Продолжу тему аякса на сайте рассмотрением одного очень популярного модуля — "Кто онлайн?". Модуль популярный, но очень не оптимизированный.
А вы знаете как он работает? — если кратко, то вот:
1. Получает авторизованных посетителей онлайн (1 запрос)
1а Проверяет каждого на принадлежность к администраторам (N запросов, по количеству посетителей)
1б Проверяет не админов на принадлежность к редакторам (N-a запросов, где а — количество админов)
2 Считает гостей онлайн (1 запрос)
3 Считает авторизованных посетителей за сегодня (1 запрос)
3а Проверяет каждого на принадлежность к администраторам (M запросов, по количеству посетителей)
3б Проверяет не админов на принадлежность к редакторам (M-b запросов, где b — количество админов)
Если в данный момент на сайте 10 человек онлайн, то получится порядка 40 запросов(а может и больше). Согласитесь, что такое количество запросов к базе данных от одного модуля — это явно перебор. Вариант с кэшированием отпадает — если посетитель зашел на сайт и не попадает сразу в список "онлайн" — то мало толку от такого модуля.
Я переписал запросы в этом модуле — получилось 3 запроса (вместо +40 для хорошо посещаемого сайта) (теперь их количество не зависит от количества юзеров) и добавил возможность обновления через аякс с заданным интервалом.
Установка:
1. распаковать архив
2. раскидать файлы по нужным папкам
3. установить в админке (для проверки работы можете установить его рядом со старым модулем "Кто онлайн" — и показать только админу)
4. Если нужно — поменять период обновления, по умолчанию он равен = 60 секунд(если 0 — обновляться не будет)
1. Ссылка для скачивания.
2. Языковой файл — положить в папку languages/ru/modules/
PS Дизайн блока остался такой же (тестировался на версии 1.9). Замечания, баги и предложения жду в комментариях
Продолжу тему аякса на сайте рассмотрением одного очень популярного модуля — "Кто онлайн?". Модуль популярный, но очень не оптимизированный.
А вы знаете как он работает? — если кратко, то вот:
1. Получает авторизованных посетителей онлайн (1 запрос)
1а Проверяет каждого на принадлежность к администраторам (N запросов, по количеству посетителей)
1б Проверяет не админов на принадлежность к редакторам (N-a запросов, где а — количество админов)
2 Считает гостей онлайн (1 запрос)
3 Считает авторизованных посетителей за сегодня (1 запрос)
3а Проверяет каждого на принадлежность к администраторам (M запросов, по количеству посетителей)
3б Проверяет не админов на принадлежность к редакторам (M-b запросов, где b — количество админов)
Если в данный момент на сайте 10 человек онлайн, то получится порядка 40 запросов(а может и больше). Согласитесь, что такое количество запросов к базе данных от одного модуля — это явно перебор. Вариант с кэшированием отпадает — если посетитель зашел на сайт и не попадает сразу в список "онлайн" — то мало толку от такого модуля.
Я переписал запросы в этом модуле — получилось 3 запроса (вместо +40 для хорошо посещаемого сайта) (теперь их количество не зависит от количества юзеров) и добавил возможность обновления через аякс с заданным интервалом.
Установка:
1. распаковать архив
2. раскидать файлы по нужным папкам
3. установить в админке (для проверки работы можете установить его рядом со старым модулем "Кто онлайн" — и показать только админу)
4. Если нужно — поменять период обновления, по умолчанию он равен = 60 секунд(если 0 — обновляться не будет)
1. Ссылка для скачивания.
2. Языковой файл — положить в папку languages/ru/modules/
PS Дизайн блока остался такой же (тестировался на версии 1.9). Замечания, баги и предложения жду в комментариях

у меня то же самое, так и прописано при обновлении контента. Подумаю, что можно сделать.
У меня на сайте тоже cp1251 - но отображается все корректно. Вы гляньте, пожалста, файлик update - может там убились сообщения при архивации
пересохранение настроек помогает(убрать-поставить флаг и записать).
+
исправно показывает появление новых пользователей в онлайне, а вот в офф провожает только опосля перезагрузки страницы?
наблюдение верно, или всеже нет?
У меня исправно работает на проекте (довольно большая текучка пользователей).
показалось))
такого не должно быть
Проблема в том, что настройки по умолчанию некорректно сохранились.
Другими словами - если у вас работала раскраска в старом модуле, то будет работать и в этом. Только для этого нужно протыкать заново флажки в настройках и пересохранить.
Если еще мысли есть по этому модулю, пишите. Раз уж буду к нему возвращаться, то сразу бы и сделал.
В идеале было бы вообще хорошо если бы в админке в настройках модуля можно было выбирать как его отображать - либо сразу развернутый список "Кто онлайн" и списаок "Сегодня были", либо развернуть при клике, (естественно настройка и для одного и для второго списка отдельно) Но это я уже наверное нафантазировала сверх меры)))