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

时间:2014-09-11 11:55:42

标签: javascript marketo

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

a=new XMLHttpRequest;a.open("GET",b,!1); ... a.send();

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

  1. 有没有办法挂钩他们的js代码以强制XMLHttpRequest异步?
  2. 直接引用其旧版本的脚本是安全的,例如//munchkin.marketo.net/143/munchkin.js。我测试了它并且它可以工作,但也许我错过了一些东西。
  3. 还有其他解决方法吗?任何想法都表示赞赏。

    更新

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

    更新#2

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

2 个答案:

答案 0 :(得分:11)

更新(2015年10月):此功能现已记录为here

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

Munchkin.init('XXXXXX', {asyncOnly: true});

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

答案 1 :(得分:0)

您肯定使用跟踪代码的异步版本吗?如果您查看您的Marketo管理员,在跟踪代码下,有一个下拉菜单选择跟踪代码类型 - 确保这是在异步,然后在您的网站中使用该特定的脚本块。

另外,如果您查看管理员中的Treasure Chest部分,可以选择启用Beta Munchkin代码 - 如果以上操作不起作用,可以尝试启用。