我从我的页面发送了一些不同的mixpanel事件。其中一些是在提交表单时发送的(两种不同的形式,每种形式都有自己的模态)。在所有事件中,其中一个表单提交事件间歇性地失败,我无法弄清楚原因。两种形式的提交都有jQuery,如:
$(document).on 'submit', '#myForm', (e) ->
mixpanel.track('my form submitted')
一种形式是可靠的,另一种形式是不可靠的(大约3/4的时间失败)。我把不可靠的一个改为:
$(document).on 'submit', '#myForm', (e) ->
window.mixpanel.track('my form submitted')
它似乎在大部分时间都有效,但仍然不总是如此。我是在想象差异,还是可以将mixpanel.track
改为window.mixpanel.track
改变了一些东西。那我在这里错过了什么?
答案 0 :(得分:1)
我认为这是由Mixpanels异步行为引起的。当您调用submit时,track()指令以非阻塞方式开始执行,即使在对Mixpanel API的track()调用仍在进行时也允许提交表单。如果发生这种情况,您的表单将在track()调用完成之前提交。
点击链接时会发生同样的事情,并解释in this post。这就是Mixpanel提供track_links()和track_forms()方法的原因。这些解决了以下问题,可能对您的情况有所帮助。
此功能将等待最多300毫秒的混合面板服务器进行响应,如果他们没有响应,那么它将转向链接而不确保您的事件已被跟踪。要配置此超时,请参阅下面的mixpanel.set_config文档。