我希望能够追踪一组页面上一组UI组件的鼠标点击事件。为此,我正在使用以下jquery/ajax调用(已削减u):
上述ajax调用(1.)在按钮被跟踪的情况下,当跳转到新页面时,浏览器会"取消"此调用。
如果我将'async'改为'false',则ajax调用将成功。
此外,不跳转到新页面的点击事件将成功。只有跳转到新页面的点击事件才会被取消。
我不想使调用同步。
你有什么想法,可能是什么问题?如何保证异步调用在点击事件跳转到新页面之前完成?
1.添加点击日志的Ajax调用。
myClickLogger = {
endpoint: '/path/to/my/logging/endpoint.html',
logClickEvent: function(clickCode) {
$.ajax({
'type': 'POST',
'url': this.endpoint,
'async': true,
'cache': false,
'global': false,
'data': {
'clickCode':clickCode
},
'error': function(xhr,status,err){
alert("DEBUG: status"+status+" \nError:"+err);
},
'success': function(data){
if(data.status!=200){
alert("Error occured!");
}
}
});
}
};
2. JQuery点击事件,将调用ajax日志记录器(clickCode是标识被点击的按钮/图片的标识符):
$(document).ready(function() {
$(".myClickEvent[clickName]").click(function() {
var clickCode = $(this).attr("clickName");
myClickLogger.logClickEvent(clickCode);
});
});
上述ajax调用(1.)在按钮被跟踪的情况下,当跳转到新页面时,浏览器会"取消"此调用。
如果我将'async'改为'false',则ajax调用将成功。
此外,不跳转到新页面的点击事件将成功。只有跳转到新页面的点击事件才会被取消。
我不想使调用同步。
你有什么想法,可能是什么问题?如何保证异步调用在点击事件跳转到新页面之前完成?
''
吗?它是否也适用于单引号'type'
或'success'
等,因为我没有使用单引号。 - jogesh_pi