【发布时间】:2017-01-12 19:42:29
【问题描述】:
我目前有一个使用 Turbolinks 的 Rails 应用程序。在这个应用程序中,我试图跟踪在特定视图上花费的时间。我查看了无数问题,并经历了称为 window.onbeforeunload、window.beforeunload、window.on('beforeunload') 的多种变体......我目前的尝试是这样的:
$(document).ready(function() {
var start = Date.now();
var id = gon.subjId;
var rand_index = gon.randIndex;
var index = gon.index;
console.log('showing article ' + index + ' at index ' + rand_index + ' for ' + id);
$(document).on('turbolinks:before-change', function() {
$.post('/log', {subj_id: id, article: {index: index, rand_index: rand_index, time_spent: Date.now()-start}},
function(response) {
});
})
});
我知道使用 AJAX 请求的功能有效;但是,它没有被调用。按下后退按钮时如何调用此函数?
【问题讨论】:
-
我认为 Rails 5 已将 turbolinks 事件的命名空间更改为
turbolinks而不是page尝试使用turbolinks:before-change -
我试过了并更新了问题,但还是不行
-
turbolinks:load现在有一个event.data.timing,这不是您期望看到的日期吗?参考这个link
标签: javascript ruby-on-rails turbolinks