2014-11-13 2 views
2

У меня возникают трудности с некоторыми веб-сайтами, над которыми я работаю, с медленным выполнением jQuery $.ajax.

Я не говорить о сервере, требующем много времени, чтобы ответить. Я говорю о фактическом выполнении функции $.ajax, занимающей много времени.

Нормальный (быстрый) Пример

Переход к jQuery.org и работает следующий код принимает 3ms:

var start = (new Date()).getTime(); 
$.get("https://jquery.org/projects/") 
var end = (new Date()).getTime(); 
console.log("executed in " + (end - start) + "ms") 

Bad (медленный) пример

Однако, работает очень аналогичный код на demo website Я работаю над принимает 324ms:

var start = (new Date()).getTime(); 
$.get("http://sauce-demo.myshopify.com/collections/frontpage/products/bronze-sandals") 
var end = (new Date()).getTime(); 
console.log("executed in " + (end - start) + "ms") 

Теперь, очевидно, ответ от $.ajax (и, следовательно, $.get) будет асинхронной. Но что может вызвать такое огромное увеличение времени выполнения?

Thanks

+3

Вы уверены, что вы не устанавливаете секонгулятор как синхронизацию, используя, возможно, глобальную настройку ajax ??? –

+0

Принимает только 2 мс здесь: http://jsfiddle.net/2L7g7be3/ –

+0

Я пробовал в jsfiddle, и оба из них бежали в 1 мс для меня. –

ответ

1

Спасибо за все замечательные комментарии ребята. Вы совершенно правы - это выглядит, как была глобальная async: false создана вложенная в одном из файлов JavaScript:

jQuery.ajaxSetup({ 
    async: false 
}); 

Я не знал, JQuery имел глобальную настройку асинхронной.