我的页面加载被冻结,Chrome状态为“等待api.mixpanel.com” - 这是什么以及如何避免它?

时间:2013-02-04 16:35:37

标签: javascript performance mixpanel

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

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

Chrome开发者工具无法打开。

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

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

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

我把它放在<头>我的HTML页面:

<!-- 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>

1 个答案:

答案 0 :(得分:1)

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

唯一一次这可能是错误的,如果你将回调传递给track

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

如果没有连接,则回拨永远不会触发。但是,只要您不依赖于此行为并且只是跟踪,最糟糕的情况就是您会丢失一些事件。