2014-06-18 75 views
0

我有幾個不同的混合面板事件從我的頁面發送。其中一些是通過提交表格提交的(兩種不同的形式,每種形式都有自己的模式)。在所有的事件中,一個表單提交事件間歇性地失敗了,我找不到原因。這兩個表單提交有jQuery像:Mixpanel軌道事件間歇性失敗

$(document).on 'submit', '#myForm', (e) -> 
    mixpanel.track('my form submitted') 

一種形式是可靠的,另一種不是(它大約3/4的時候失敗)。我改變了不可靠的:

$(document).on 'submit', '#myForm', (e) -> 
    window.mixpanel.track('my form submitted') 

它似乎工作大部分時間,但仍然不總是。我是否想象中的差異,或者可以改變mixpanel.trackwindow.mixpanel.track已經改變了一些東西。還有什麼哦,我在這裏錯過了什麼?

+0

'window.mixpanel'和'mixpanel'不應該有所不同,除非你已經在某處重新定義了'mixpanel'(你不應該!)。也許,檢查瀏覽器的日誌以查看發生了什麼。 –

+0

@EvanHahn我玩過更多,實際上,'window.mixpanel'似乎與'mixpanel'沒什麼區別。最後,我完全採用了不同的策略,但我仍然希望自己能夠做到這一點。 – ivan

回答

1

我認爲這是由Mixpanels的異步行爲造成的。當您調用submit時,track()指令以非阻塞方式開始執行,即使在調用Mixpanel API的track()仍在進行時也可以提交表單。如果發生這種情況,您的表單將在track()調用完成之前提交。

同樣的事情發生時,點擊鏈接,並解釋in this post。這是Mixpanel提供track_links()track_forms()方法的原因。這些解決問題如下,並可能有助於你的情況。

此功能將等待長達300毫秒的mixpanel服務器迴應,如果他們還沒有到那個時候將前往該鏈接不保證您的活動一直追到迴應。要配置此超時,請參閱下面的mixpanel.set_config文檔。