我的Rails应用程序中有一些JS代码,可以在新会话中向Mixpanel发出跟踪事件。
理论上,在任何其他事件被解雇之前,我应该看到"新会议"事件第一。但在一些访问中,我没有看到"新会议"事件意味着它在某些场合没有被解雇。
以下代码有什么问题?
Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library
答案 0 :(得分:4)
如果您正在使用Turbolinks,则在首次加载页面后不会触发就绪事件,因此您需要绑定到page:load
之类的自定义turbolinks事件,如:
var ready;
ready = function() {
var currentLocation = window.location.hostname;
var lastLocation = document.referrer;
if (lastLocation.indexOf(currentLocation) > -1) {
} else {
mixpanel.track("New Session", {});
}
mixpanel.track("Page View", {});
};
$(document).ready(ready);
$(document).on('page:load', ready);
对于 Rails 5 ,事件名称已更改为turbolinks:load
答案 1 :(得分:1)
在真正解决问题之前,您需要弄清楚如何重现问题。
我们知道代码正在运行,我建议使用if语句进行跟踪和添加数据。
$(function(){
var currentLocation = window.location.hostname;
var lastLocation = document.referrer;
if (lastLocation.indexOf(currentLocation) > -1) {
// internal links
mixpanel.track("Page View", {});
} else {
// external or non-existant link
// bookmarks and email links won't have referrers
mixpanel.track("New Session", {referrer: document.referrer});
mixpanel.track("Page View", {});
}
})