#html #ajax
Вопрос:
У меня есть таблица с заголовком, строка с полями ввода, строки с данными. Подобный этому. http://brow.hu/sitegen/stackoverflow_table_example.png
Если кто-то вводит что-то в поле ввода, я хочу отфильтровать данные с помощью ajax-запроса. После получения новой таблицы я изменяю содержимое старой: div.innerHTML = req.responseText;
и она мигает. Как этого избежать?
Комментарии:
1. Ссылка на изображение теперь мертва, что делает вопрос неясным.
Ответ №1:
Один из способов избежать мерцания называется двойной буферизацией. В Ajax это можно сделать просто, если 2 раздела занимают одно и то же пространство, один из них со стилем «дисплей: нет», другой «дисплей: встроенный». Всегда пишите в невидимый, а затем меняйте стили отображения местами. Если дивы имеют абсолютное расположение и размер, нет абсолютно никаких шансов на мерцание, и даже если они этого не делают, вы вряд ли сможете добиться большего.
Ответ №2:
Он мигает, потому что вы полностью заменяете таблицу … если вы добавляете строки в существующую таблицу или удаляете строки из нее, а затем загружаете данные AJAX в результирующую таблицу, она не будет мигать.
Комментарии:
1. вероятно, это тоже хороший ответ, но другой, написанный Аланом Хенселом, проще 🙂 thx, хотя