Jquery find () занимает слишком много времени в IE - PullRequest
0 голосов
/ 21 августа 2009

Я пытаюсь найти HTML внутри DIV в ответе Ajax HTML:

$j(responseText).find("#my_DIV").html()

Это отлично работает в FF, но IE6, кажется, зависает и ждет вечно, пока find () завершает работу, есть ли способ найти DIV или я что-то не так делаю?

Ответы [ 4 ]

1 голос
/ 21 августа 2009

Я думаю, что проблема в функции jQuery.clean, если вы передадите очень большой HTML-код, у вашего браузера будет много работы, когда jquery придется анализировать все html-строки в dom-узлах, так как firefox быстрее чем IE вы заметите проблему только в IE.

0 голосов
/ 21 августа 2009

Я не уверен, использует ли селектор потомков ту же итерацию, что и метод find, но вы можете попробовать следующий код, чтобы увидеть, получаете ли вы более быстрые ответы:

$j(responseText+" #my_DIV").html()

См. Документацию для селектора потомков

0 голосов
/ 21 августа 2009

Попробуйте разделить ваш код следующим образом:

var response = $j(responseText);
var div = response.find("#my_DIV");
var html = div.html();

Таким образом, вы сможете точно увидеть, какая часть занимает время. Затем с помощью этой более точной информации вы можете отредактировать свой вопрос, чтобы предоставить более подробную информацию.

0 голосов
/ 21 августа 2009

Если это ajax-вызов, попробуйте урезать ответ. Вы не упоминаете, что вы используете на стороне сервера - но идея в том, что, если это поступает XMLHttpRequest, вы возвращаете только тот фрагмент, который вам нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...