
ChatX 2.5.0
В уходящем году, мы спешим выпустить ещё одно, скорее всего крайнее в 2023 году обновление.
Мы обновили чат до версии 2.5.0 и привнесли в него ряд новшеств и улучшений в целом.
- Была добавлена поддержка PHP 8.0+. В прошлом обновлении скрипта эта версия PHP могла не поддерживаться (хотя демонстрационный чат работает отлично 🤔).
- Полностью переработано поле ввода нового сообщения. Хотя визуально оно не отличается от предыдущего, мы произвели переход с textarea на редактируемый (contenteditable) элемент. Пришлось написать более десятка функций, чтобы отладить работу тестового поля по аналогии с прошлым, тем не менее, теперь нам удалось побороть давний баг с прыгающим скроллбаром в поле на мобильных устройствах. Кроме того, новый принцип работы позволит в дальнейших обновлениях без труда перейти на визуально редактируемый контент и отказаться от bb-тегов.
- В оригинальном скрипте мы изначально отключили и запретили отправку новых строк в сообщениях. Однако, теперь вполне очевидно, что возможность переходить на новые строки — очень удобна и востребована. В новой версии чата можно перейти на новую строку зажав сочетание клавиш CTRL+ENTER. Учтите, что для того, чтобы поставить новую строку, чат должен содержать какой-то контент (хотя бы один символ). Количество строк хотя и ограничено максимальным числом символов в поле ввода, тем не менее, при отправке, все лишние строки будут вырезаться до двух последовательных. Сделано это с целью не дать пользователю инструмент злоупотребления необоснованно длинными пустыми сообщениями.
- Концепция ChatX построена на технологии long polling (длинных опросов). Эта технология не является современным стандартом, тем не менее, сама идея чата заключается в его простоте установки и неприхотливости к серверным ресурсам, что диктует необходимость использования именно этой технологии. Ранее мы каждый раз обновляли весь контент чата целиком с каждым длинным опросом. В случае включения пользователями ‘быстрого обновления’ — это могло расходовать как серверные ресурсы, так и пользовательский трафик. В новой версии скрипта мы реализовали перезаписывающийся статичный файл, содержащий лишь ID сообщений чата. Сравнивая ID сообщений в статичном файле и уже подгруженными ранее в контейнере, мы экономно отслеживаем все изменения в ленте. Ожидаем, что данное нововведение положительно скажется на производительности скрипта.
- Добавили визуальный индикатор заполненности формы ответа под кнопкой отправки сообщения. Теперь всегда видно сколько неиспользованных символов осталось до лимита в текстовом поле.
- Несколько улучшили работу bb-тегов, например, теперь пустые теги не будут трансформироваться в HTML, а курсор для таких тегов будет устанавливаться внутри.
- Была полностью переделана форма входа и регистрации так, чтобы она была встроена в структуру чата только когда пользователь не авторизован в свой аккаунт. В противном случае — нам нет необходимости встраивать ее в документ.
- То же касается предупреждения о незаполненном имени; кроме того, немного модифицировали появление/исчезновение контейнера с предупреждением.
- Непрозрачные изображения в формате .png отображаются в ленте чата в миниатюре. Для файлов с прозрачными пикселями оставили вставку в полном разрешении.
Это неполный список нововведений и, конечно, изменений намного больше. В данной статье мы отразили наиболее важные и заметные обновления.
Текущая версия скрипта является очень стабильной версией с минимальным количеством недочетов, поэтому рекомендуем ее к установке 🙂