8

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

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

我已经向 Marketo 开了一张票,但在他们修复他们的代码之前,我正在寻找一种解决方法。我想到了几个:

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

还有其他解决方法吗?任何想法都值得赞赏。

更新

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

更新#2

从他们的支持团队那里得到了另一个回复,说我的想法很好,但他们现在无法实施,他们希望有一天开发人员会接受它们......无论如何,我已经在 Marketo 中创建了一个想法社区

4

2 回答 2

12

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

我刚刚浏览了新版本的 Munchkin 代码(150),发现了以下未记录的参数:

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

我试过了,它完成了工作——所有的 HTTP 请求现在都是异步的。

于 2015-05-18T10:09:18.037 回答
0

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

此外,如果您在管理员的宝箱部分下查看,有一个选项可以启用测试版 Munchkin 代码 - 如果上述方法不起作用,也许可以启用尝试。

于 2014-09-12T01:04:04.973 回答