Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery$.ajax执行速度慢_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript jQuery$.ajax执行速度慢

Javascript jQuery$.ajax执行速度慢,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在一些使用执行缓慢的jQuery$.ajax的网站上遇到困难 我不是说服务器需要很长时间才能响应。我说的是$.ajax函数的实际执行需要很长时间 正常(快速)示例 转到并运行以下代码需要3ms: var start = (new Date()).getTime(); $.get("https://jquery.org/projects/") var end = (new Date()).getTime(); console.log("executed in " + (end - start)

我在一些使用执行缓慢的jQuery
$.ajax
的网站上遇到困难

我不是说服务器需要很长时间才能响应。我说的是
$.ajax
函数的实际执行需要很长时间

正常(快速)示例

转到并运行以下代码需要3ms

var start = (new Date()).getTime();
$.get("https://jquery.org/projects/")
var end = (new Date()).getTime();
console.log("executed in " + (end - start) + "ms")
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")
坏(慢)示例

但是,在我正在使用的计算机上运行非常类似的代码需要324ms的时间:

var start = (new Date()).getTime();
$.get("https://jquery.org/projects/")
var end = (new Date()).getTime();
console.log("executed in " + (end - start) + "ms")
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
)的响应将是异步的。但是,是什么导致执行时间如此巨大的增加呢


谢谢大家的精彩评论。你完全正确-看起来在一个JavaScript文件中嵌套了一个全局
async:false
设置:

jQuery.ajaxSetup({
  async: false
});

我不知道jQuery有一个全局异步设置

你确定你没有使用ajax全局设置将secong one设置为sync吗?这里只需要2毫秒:我在JSFIDLE中尝试过,这两种设置都为我运行了1毫秒。@A.Wolff提出了一个很好的建议,实际上我可以说你必须使用bps(大小/时间),不是ms差异,因为您没有获得相同的数据。看起来肯定不是异步的。在get之后添加一个警报,您将看到延迟。尝试一下[here]()中的脚本,你会发现有不同之处。“网络”选项卡还有一个“计时”选项卡,您可以看到它们都需要300ms的时间,但其中一个是异步的,另一个不是