javascript - 减少来自客户端的第三方异步调用次数

标签 javascript asynchronous webclient

我有一个应用程序,其中客户端向第三方服务器发送多个异步 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/

相关文章:

javascript - 在 Dev 环境中加快 Rails 在整页加载时加载 Backbone Javascript Assets 的方法?

javascript - console.log 在 javascript 中间隔

c++ - 标准 C++ 中的异步线程

c# - 从 URL 和路径中的非法字符获取下载的文件

java - Web 客户端的 ObjectMapper

c# - System.Net.WebClient 问题

javascript - Google 应用程序脚本 - 运行自定义功能的自定义菜单

javascript - KnockoutJs 过滤器搜索后清空列表

python - 同时使用 Tornado 和 Twisted

javascript - 在函数的循环中处理查询