最近我发现我网站的javascript代码存在一些性能问题。经过一些分析后,我发现问题是我用来跟踪事件的Marketo Munchking代码。看起来最近他们改变了他们的JS代码,以便为每次调用Munchkin.munchkinFunction
发送同步http请求。相关的代码段是:
a=new XMLHttpRequest;a.open("GET",b,!1); ... a.send();
我用Marketo打开了一张票,但在他们修改代码之前,我正在寻找一种解决方法。我想了几个:
XMLHttpRequest
异步?//munchkin.marketo.net/143/munchkin.js
。我测试了它并且它可以工作,但也许我错过了一些东西。还有其他解决方法吗?任何想法都表示赞赏。
更新:
刚收到Marketo支持的回应。他们承认这些电话确实是同步的,但他们声称这是不丢失信息的唯一方法。我想他们会想到在重定向之前调用Munchkin.munchkinFunction
的情况。我不同意他们,并会要求他们提供替代方案。与此同时,我正在使用旧版本的代码。
更新#2 :
他们的支持团队得到了另一个回复,他说我的想法很好,但他们现在无法实现它们,并且他们希望有一天开发人员能够接受它们......无论如何,我已经创建了一个{ {3}}
答案 0 :(得分:11)
更新(2015年10月):此功能现已记录为here。
我刚刚浏览了新版本的Munchkin代码(150)并找到了以下未记录的参数:
Munchkin.init('XXXXXX', {asyncOnly: true});
我尝试了它并完成了工作 - 所有HTTP请求现在都是异步的。
答案 1 :(得分:0)
您肯定使用跟踪代码的异步版本吗?如果您查看您的Marketo管理员,在跟踪代码下,有一个下拉菜单选择跟踪代码类型 - 确保这是在异步,然后在您的网站中使用该特定的脚本块。
另外,如果您查看管理员中的Treasure Chest部分,可以选择启用Beta Munchkin代码 - 如果以上操作不起作用,可以尝试启用。