Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите мерцание того чего не нужно.

Dmitry Sidorov Ученик (174), закрыт 4 года назад
Есть система диалогов пользователей (картинка 1) и в ней список диалогов переобновляется каждую сек Ajaxом. Дело в том что при наведении на блок и при переобновлении диалогов анимация наводки начинаем мерцать каждую секунду. Это весьма логично. Но как это можно исправить, наводка диалогам очень нужна. Код ajax (рисунок 2,3). Необходимо убрать данное мерцание. Возможно есть способ не посылать каждую секунду диалоги а проверять наличие чего-то нового, а потом уже запроч на сами диалоги если есть изменения.
Дополнен 4 года назад
Просьба не учить жизни не рассказывать про новые технологии сокетов и тому подобное. Спасибо) Если код можно оптимизировать, буду рад послушать. Я начинающий
Лучший ответ
Петр Балуев Ученик (171) 4 года назад
Есть несколько способов оптимизировать твой чат.
1. На сервере добавить какое нибудь поле "last_update_dttm", которое будет содержать последнее обновление чата. На клиенте тебе нужно сравнить это поле с текущим состоянием и потом уже решать обновлять чат или нет.
2. На клиенте ты сначала делаешь $.empty() а потом вычисляешь новую разметку. Не надо так. Сначала вычисли разметку, добавь её куда нибудь со свойством display:none, а потом сделай замену и удали прошлую.
Остальные ответы
aSpectro Мыслитель (7814) 4 года назад
На одном jQuery далеко не уедешь, попробуйте не удалять все элементы и создавать их заново при обновлении ajax'ом, а добавлять лишь новые, а вообще я бы посоветовал тут фреймворк типа vue или react, там это реализуется в пару строк кода
Похожие вопросы