Jquery ajax медленный ответ в Google Chrome
Я разрабатываю свой сайт с помощью Java. Я использую jquery, ajax, например:
$.ajax({
dataType: "json",
url : 'getWords.htm',
type: 'post',
async : false,
data : {dataJSON : JSON.stringify(dataJSON)},
success : function(words) {
.....
}
});
Он работает хорошо, но в Chrome он работает медленно, чем Firefox, IE и Opera. В Chrome у меня небольшая задержка (около 0,8 сек). Когда у меня есть четыре запроса ajax за один клик, это очень медленно. Как я могу это исправить?
В firebug я вижу: отправка 5 мс, ожидание 512 мс, получение 3 мс,
но в других браузерах все быстро.
Спасибо.
Ответы
Ответ 1
Если вы не загружаете содержимое .post()
в динамически сгенерированный элемент, попробуйте поместить его внутри window.onload
вместо $(document).ready
, что сработало для меня. Надеюсь, это поможет!
Обновление
Будучи post()
, запущенным с событием click(), родительский элемент должен быть готов. Но вы можете выиграть некоторое время, если вы вызываете функцию post()
вне вашего $(document).ready
и сохраняете результаты в переменной javascript
. Это будет действовать как некоторая initialValue
, которую вам нужно будет обновить со второго щелчка пользователя по вашему элементу.
Ответ 2
Используйте async: 'true'
.
Это значение по умолчанию, и вы не должны переключаться на синхронные запросы, если у вас нет веских оснований для этого. Сначала это позволит браузеру загружать файлы параллельно, а вторые синхронные запросы могут блокировать поток браузера.
Кстати: "Начиная с jQuery 1.8, использование async: false устарело". (from jQuery.ajax document)
Ответ 3
Что-то подобное произошло со мной некоторое время назад, и время ответа было разным для каждого браузера при вызове AJAX, POST или GET. Это оказалось огромным количеством данных, которые я передавал от url, "getWords.htm" в вашем случае. Несколько вопросов, которые могут помочь определить, что неправильно в вашем случае:
- Сколько данных вы отправляете назад и какой формат? Пытаться
JSON и проанализировать его в функции "УСПЕХ" для создания HTML-кода
код/страница.
- Сколько объектов DOM вы пытаетесь создать в одном
выстрел? Это помогает много разобрать все, что вам нужно на лету, что легко
делать, как только вы используете JSON на стороне клиента и генерируете HTML-код
оттуда динамически.
Ответ 4
иногда лучше использовать jquery на компьютере, а не тот, который хранится в google.
зависит от вашего интернет-соединения.
Локальный
<script type="text/javascript" src="/js/jQuery.min.js"></script>
Api из google
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>