arc*_*101 8 ajax performance firefox google-chrome flask
我的客户端上有一个AJAX查询,它将两个参数传递给服务器:
var url = window.location.origin + "/instanceStats"
$.getJSON(url, { 'unit' : unit, "stat" : stat }, function(data) {
instanceData[key] = data;
var count = showInstanceStats(targetElement, unit, stat, limiter);
});
Run Code Online (Sandbox Code Playgroud)
服务器本身是一个非常简单的Python Flask应用程序.在该特定URL上,它从查询中获取"unit"和"stat"参数,以确定该文件中的CSV文件和行的名称,获取该行,并将数据发送回格式为JSON的客户端(大致1KB).
这是有趣的事情:当我测量数据返回所花费的时间时,我发现有些查询很快(在20到40毫秒之间),有些查询很慢(在320到350毫秒之间).改变"stat"参数(即在CSV中选择不同的行)似乎没有任何影响.快速和慢速查询通常来回切换(即所有偶数查询都很快,所有奇数查询都很慢).Python服务器本身为每个查询报告大致相同的时间.
AJAX本身似乎也没有任何影响,因为我可以使用JS中构建的url并将其自己粘贴到浏览器中并获得相同的行为.以下是两个后续查询的一些测量值:
快速:http://i.imgur.com/VQ7qopd.png
慢:http://i.imgur.com/YuG0ROM.png
这似乎是特定于Chrome的,因为我在Firefox上尝试过它,同样的实验每次都会产生大致相同的查询时间(30到50毫秒之间).这很不幸,因为我想在Chrome和Firefox上部署.
是什么导致了这种行为,我该如何解决?
我也遇到了,而且完全相同:我的 Node.js 应用程序提供 Ajax 请求,无论/url我请求哪个,它都是30msor 300ms,并且它来回切换:奇数请求很长,偶数请求很短。
我在 Chrome Web Inspector(又名 Chrome DevTools)中看到的是“DNS 查找”和“初始连接”之间存在很长的差距。
他们说它与OCSP这里相关:
http://www.webpagetest.org/forums/showthread.php ?tid=12357
OCSP 是某种证书验证协议: https://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol
从localhost到127.0.0.1似乎可以解决这个问题:现在是响应时间30ms。