我正在开发一些超级基本的网站跟踪软件。嵌入客户端站点的一小段代码从CDN加载javascript文件,该文件跟踪客户端站点上的访客操作 - 点击次数,页面上的时间等。
当他们离开页面时会触发beforeunload
事件,以便通过jQuery
AJAX
将收集到的数据发送到我服务器上托管的PHP
处理文件。
我知道beforeUnload
存在跨浏览器问题。我认为通过以下文章解决了这些问题:http://jonathonhill.net/2011-03-04/catching-the-javascript-beforeunload-event-the-cross-browser-way/
大概有90%的时间都有效。但有时如果我检查我的php error_log,我可以看到事件正在触发,但我没有从AJAX请求中获取数据。
如果是AJAX问题,我不知道如何调试它 - 请求是从客户端站点发送的。或者这可能是beforeUnload
的问题。
只是为了澄清一点,这里是我的代码片段,我用jQuery AJAX
发送数据:
window.onbeforeunload = function (e) {
jQuery.ajax('http://www.example.com', {
async: false,
data: 'tracking_data='+JSON.stringify(data),
type: 'POST',
dataType: 'text',
cache:false
});
};
有什么想法吗?我已经坚持了一个月了!