Javascript jQuery$.ajax执行速度慢
我在一些使用执行缓慢的jQueryJavascript 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)
$.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的时间,但其中一个是异步的,另一个不是