2

我现在遇到一些间歇性的互联网连接问题,结果是我的网页加载(对于我的网站)被卡住了。

下角的 Chrome 状态显示:“等待 api.mixpanel.com”

Chrome 开发者工具打不开。

发生了什么,我该如何编写 mixpanel api 调用来避免这种情况?即:我的网站仍然可以运行并且我可以访问,但 mixpanel 不是——我希望网页在这种情况下仍然可以加载。

* 编辑:2013 年 2 月 6 日添加附加信息 *

@raylu 我在上个月得到了我的 mixpanel javascript,所以它是最近的。我不确定如何获得 mixpanel 版本,但这里有一些片段:

我把它放在我的 html 页面的 <head> 中:

<!-- start Mixpanel -->
...
src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';
...
)};b.__SV=1.2}})

然后,我有我的 html 正文内容。然后,我关闭身体:

</body>
<script type="text/javascript">mixpanel.track('some tag');</script>

<script type="text/javascript">mixpanel.name_tag('some id');</script>

</html>
4

1 回答 1

1

mixpanel.track被调用时,Mixpanel JS 库会触发 XHR(对于大多数浏览器)。这使它看起来像您的页面正在加载(选项卡上的微调器),直到请求完成。然而,XHR 是完全异步的,不会影响页面上任何其他 JS 的性能,因为它不会阻止任何其他 JS 运行。

唯一可能不好的情况是,如果您将回调传递给track

mixpanel.track('some event', {'some prop': 'some value'}, function() {
    window.location = '/thanks';
});

如果您没有连接,则回调将永远不会触发。但是,只要您不依赖这种行为而只是跟踪,最坏的情况就是您会丢失一些事件。

于 2013-02-06T08:36:10.717 回答