Marketo Munchkin同步请求损害了JS的性能

Tza*_*ach 8 javascript marketo

最近我注意到我网站的javascript代码中存在一些性能问题.经过一些分析后,我发现问题是我用来跟踪事件的Marketo Munchking代码.看起来最近他们改变了他们的JS代码,为每次调用发送同步http请求Munchkin.munchkinFunction.相关的代码段是:

a=new XMLHttpRequest;a.open("GET",b,!1); ... a.send();
Run Code Online (Sandbox Code Playgroud)

我用Marketo打开了一张票,但在他们修改代码之前,我正在寻找一种解决方法.我想了几个:

  1. 有没有办法挂钩他们的js代码,以强制XMLHttpRequest异步?
  2. 例如,可以安全地直接引用其旧版本的脚本//munchkin.marketo.net/143/munchkin.js.我测试了它并且它有效,但也许我错过了一些东西.

有没有更多的解决方法?任何想法都表示赞赏.

更新:

刚收到Marketo支持的回复.他们承认这些电话确实是同步的,但他们声称这是不丢失信息的唯一方法.我想他们会想到Munchkin.munchkinFunction在重定向之前进行调用的情况.我不同意他们,并会要求他们提供替代方案.与此同时,我正在使用旧版本的代码.

更新#2:

得到了他们的支持团队的另一个回复,他说我的想法很好,但他们现在无法实现它们,并且他们希望有一天开发人员能够接受它们......无论如何我在Marketo中创造了一个想法社区.

Tza*_*ach 12

更新(2015年10月):此功能现已记录在此处.

我刚刚浏览了新版本的Munchkin代码(150)并找到了以下未记录的参数:

Munchkin.init('XXXXXX', {asyncOnly: true});
Run Code Online (Sandbox Code Playgroud)

我尝试了它并完成了工作 - 所有HTTP请求现在都是异步的.