Единый форум поддержки

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Единый форум поддержки » Новые возможности форумов » Живые темы: обновление в реальном времени


Живые темы: обновление в реальном времени

Сообщений 1 страница 10 из 10

1

Ещё одна возможность, облегчающая и делающая более удобным форумное общение

Живые темы
Автоматическая загрузка новых ответов без обновления страницы

https://forumupload.ru/uploads/0015/c4/3f/2/496388.gif

(скриншот 1)

Благодарим администрацию и пользователей форума mayak.f-rpg.me за тестирование и обратную связь!

Скрипт обеспечивает автоматическое обновление тем в реальном времени1 без необходимости обновлять страницу вручную.
Находясь на последней странице темы, вы будете сразу же получать новые сообщения от других участников. Также автоматически обновляется заголовок темы, даты публикации сообщений и список просматривающих тему.
На главной странице форума и в Активных темах информация также актуализируется в реальном времени.
На неактивной вкладке автообновление не производится, пока вкладка вновь не станет активной.

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

В этом описании и других источниках скрипт также может быть назван как автообновление или реалтайм.

Установка и подключение

Установочный код: в HTML низ

Код:
<!-- Обновление тем в реальном времени © Alex_63, 2025 -->
<script type="text/javascript" src="//forumstatic.ru/f/ru/bestbb/realtime.js"></script>

Рекомендуется использовать обновление тем совместно со стандартной возможностью ajax-отправки сообщений. Проверьте, включена ли опция в разделе Администрирование - Права.

Данный функционал проходит этап открытого бета-тестирования. Это значит, что возможность доступна для всех желающих: вы можете свободно установить код себе на форум и использовать его без ограничений, однако поскольку разработка экспериментальная, возможно наличие ошибок и недоработок (о них сообщайте). На этапе бета-тестирования возможность предоставляется бесплатно.

Скрипт протестирован на кроссбраузерность и совместимость с другими актуальными разработками @Гость.

В некоторых случаях, например при использовании устаревших скриптов (в частности, реализующих кастомные BB-коды), может потребоваться их доработка для совместимости с автообновлением. Обращайтесь к разработчику в этой теме или лично. Если вы сами разработчик, ознакомьтесь с разделом ниже (Для разработчиков).

Индивидуальное отключение автообновления

По просьбам пользователей реализована возможность индивидуального отключения автоматического обновления тем, возвращающая стандартное поведение форума.
Ссылка Отключить автообновление появится на страницах тем и поиска по темам (в том числе Активные темы и т.п.)
https://i.imgur.com/6FqCJxO.png
Установите дополнительный код ниже основного установочного кода:

Код:
<!-- Обновление тем в реальном времени: индивидуальное отключение © Alex_63, 2025 -->
<script type="text/javascript" src="//forumstatic.ru/f/ru/bestbb/realtime.disable.js"></script>
Инициализация функционала Rusff в загружаемых сообщениях

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

Для реакций:

Код:
<!-- Rusff реакции в realtime постах -->
<script>$(document).on('pun_post', function() { ReactionsPlugin.init() })</script>

Для наград:

Код:
<!-- Rusff награды в realtime постах -->
<script>
$(document).on('pun_post', function() { 
    require(["mainRouter"], function(n) {
        n.obj.GlobalModel.trigger("startApplication");
    })
 })
</script>
Для разработчиков

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

Код:
$(document).on('имя_события', function(event) {
    // ваш код обработчика
});

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

Событие

Описание

pun_post

Стандартное событие, вызываемое также при отправке сообщения с помощью ajax. Как в стандартном сценарии, так и при автообновлении - вызывается в момент появления нового(-ых) сообщения(-й) на странице. В случае автообновления объект event содержит свойство mode со значением 'update'. Актуально для скриптов, обрабатывающих содержимое постов.

pun_main_update

Событие, вызываемое при обновлении содержимого #pun-main на странице темы, в Активных темах или на главной странице (когда информация на странице полностью актуализирована). Актуально, если ваш скрипт как-либо видоизменяет содержимое страницы и при автообновлении нужно выполнить преобразования вновь.

Скрипт уже работает на этом форуме и mayak.f-rpg.me!

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

Копирование исходного кода и любые модификации запрещены.


Скрипт обновляется автоматически без участия пользователя.
Актуальная версия 0.1.8 (beta) от 11 января 2025.


1 Интервал получения обновлений изменяется динамически и может составлять от 25 до 120 секунд.

+7

2

Прикольная штука, поставил себе на форум :) 
Также, было бы неплохо, дать возможность юзерам полностью отключать/включать автообновление тем в своём профайле :)

0

3

Merlin777 написал(а):

Также, было бы неплохо, дать возможность юзерам полностью отключать/включать автообновление тем в своём профайле :)

Уже есть, правда включается не в профиле, а на страницах тем или поиска по темам: Индивидуальное отключение автообновления
При этом автообновление отключается полностью (с запоминанием в локальном хранилище браузера), пока не будет включено обратно.

+2

4

При добавлении сообщений автоообновление работает хорошо, но если удалить сообщение - то не обновляется.

+1

5

Merlin777
Автообновление в первую очередь нацелено на получение новых актуальных сообщений без обновления страницы. Удалённые сообщения действительно не исчезают со страницы в реальном времени, это просто не предусмотрено. Но подумаю над необходимостью, возможно и реализую в дальнейших обновлениях. Скрипт пока на этапе бета-тестирования и будет дорабатываться.

+2

6

Ещё было бы очень неплохо, если бы при прочтении новых сообщений менялся цвет  #pun-index .inew,  tr.inew и icon inew, то есть, счётчик непрочитанных сообщений,  и выделение цветом непрочитанных разделов на главной странице и тем внутри разделов  :)

0

7

Merlin777
Автообновление фиксирует изменение ID самого свежего поста в теме (или в случае главной страницы или активных тем - по всему форуму), прочтение темы само как таковое никак не фиксирует, можно конечно и это реализовать, но любое подобное усложнение логики увеличит количество запросов к серверу, пока не уверен что это того стоит. К тому же трекинг непрочитанных тем в движке сам по себе реализован весьма примитивно, над этим бы тоже в перспективе стоило поработать )

+1

8

Alex_63
я прошу не прямо сейчас всё срочно переделывать, а спокойно в будущем, если сие возможно  :)

Отредактировано Merlin777 (Чт, 27 Фев 2025 21:28:19)

+1

9

Заметил когда Приходят новые Сообщения в личку - то только после обновления страницы видно что они пришли.

0

10

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

0


Вы здесь » Единый форум поддержки » Новые возможности форумов » Живые темы: обновление в реальном времени