У меня есть страница с выпадающими списками. Выбор option
из первого select
заполняет второе, а выбор option
из второго select
возвращает таблицу результатов сопоставления с использованием функции innerHtml
для пустой div
на странице.
Проблема в том, что после того, как я сделал свой выбор и значительный объем данных перенесен на страницу, весь последующий Javascript на странице работает исключительно медленно. Кажется, что все данные, которые я извлек через AJAX для заполнения div
, все еще занимают много памяти. Я попытался установить возвращаемый объект, содержащий результаты AJAX, равным null
после вызова innerHtml
, но безуспешно.
Firefox, Safari, Chrome и Opera не показывают снижения производительности, когда я использую Javascript для вставки большого количества данных в DOM, но в IE это очень очевидно. Чтобы проверить, что это проблема Javascript / DOM, а не просто старая проблема IE, я создал версию страницы, которая возвращает все результаты при начальной загрузке, а не через AJAX / Javascript, и обнаружил, что IE не имеет проблем с производительностью.
К вашему сведению, я использую метод jQuery.get в jQuery для выполнения вызова AJAX.
РЕДАКТИРОВАТЬ Вот что я делаю:
<script type="text/javascript">
function onFinalSelection() {
var searchParameter = jQuery("#second-select").val();
jQuery.get("pageReturningAjax.php",
{SEARCH_PARAMETER: searchParameter},
function(data) {
jQuery("#result-div").get(0).innerHtml = data;
//jQuery("#result-div").html(data); //Tried this, same problem
data = null;
},
"html");
}
</script>
Хочу отметить, что это становится проблемой только тогда, когда возвращаемое значение data
достаточно велико. Это напрямую связано с размером, поскольку я могу видеть умеренное замедление для результатов среднего размера и только значительное замедление, когда возвращается несколько сотен записей +.