我有一个应用程序,其中客户端向第三方服务器发送多个异步 javascript 请求。我面临的问题是,每当客户端响应这些响应时,该站点都会在那几毫秒的时间内变得不活动。因此发送这些多个请求会增加非事件时间。例如,如果我发送 x 个请求,并假设对于每个响应,该站点在 y 平均毫秒内变为非事件状态,然后总无效时间为 x*y。我怎样才能将这些电话减少为一个电话。我指的是第三方,例如对谷歌分析、谷歌广告线索等的调用
这是我正在调用的电话之一的示例
function () {
var oldonload = window.onload;
window.onload = function(){
__adroll_loaded=true;
var scr = document.createElement("script");
var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com");
scr.setAttribute('async', 'true');
scr.type = "text/javascript";
scr.src = host + "/j/roundtrip.js";
((document.getElementsByTagName('head') || [null])[0] ||
document.getElementsByTagName('script')[0].parentNode).appendChild(scr);
if(oldonload){oldonload()}};
}());
最佳答案
首先:内联异步 javascript 不会阻止浏览器。但是立即调用的函数会。你不需要嵌套 window.onload
回调到立即调用的函数。
我建议您提供一个函数来完成对浏览器事件的所有反应。例如:
window.onload = function() {
//do everything here
}
如果您的应用程序逻辑可行,请将此脚本放在 </body>
之前结束标签。
这可能对您有所帮助。无论如何,我还建议您测量脚本执行时您的应用程序真正做了什么。例如,使用 Chrome 开发人员工具(时间轴选项卡),您可以轻松做到这一点。
关于javascript - 减少来自客户端的第三方异步调用次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25697801/