Подтвердить что ты не робот

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 мс, но в других браузерах все быстро.

Спасибо.

4b9b3361

Ответ 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>