如何在不等待ajax响应的情况下执行计数统计
How to perform a count statistics without wait for ajax response
我想计算点击特定div(#counter
)的次数,然后重定向到另一个站点。
我对id为counter
的div的点击事件进行了ajax调用。然后在成功函数中,我将在ajax上完成重定向。这是代码
jQuery('#counter').click(function(){
var data = { clicked:'yes'
};
jQuery.ajax({
url:"stat.php",
type:"POST",
data:data
}).done(function(res){
window.location = "http://www.myurl.com";
});
});
问题是,这需要一些时间来重定向,这样用户就必须等到ajax完成事件触发。
由于我不关心响应,我只需要一个启动用户点击该(#counter
)div的请求,所以我只增加DB中的值。那么,有没有一种方法可以在ajax启动后立即重定向到另一个网站?我不希望用户等待响应然后重定向。因为在这种情况下不需要响应。这只适用于网站统计,或者计算按钮点击次数,然后将其重定向到其他网站的最佳方法是什么。
编辑、更新
尝试
jQuery('#counter').click(function(){
data = { clicked:'yes'
};
var redirect = function() {
setTimeout(function() {
window.top.location.href = "http://stackoverflow.com/questions/"
+ "25554598/"
+ "how-to-perform-a-count-statistics-"
+ "without-wait-for-ajax-response/";
}, 1500); };
$.when(jQuery.ajax({
url:"/echo/json/",
type:"POST",
data:{json:JSON.stringify(data)}
}), redirect())
.done(function(_data) {
alert(_data[0].clicked)
})
});
jsfiddlehttp://jsfiddle.net/guest271314/51g5huvq/
只需将重定向代码移到.done回调之外即可。通过这种方式,当您单击时,会立即完成两件事:发送ajax请求,并启动重定向。您可以将重定向封装在一个短的setTimeout中,以确保在重定向客户端之前激发了ajax请求。
jQuery('#counter').click(function(){
var data = { clicked:'yes'
};
jQuery.ajax({
url:"stat.php",
type:"POST",
data:data
}).done(function(res){
});
setTimeout(function(){window.location = "http://www.myurl.com";}, 500);
});
相关文章:
- 如何在不使用Internet Explorer的情况下从未挂起的HTML文件执行程序
- 如何在不使用javascript执行的情况下为函数分配参数
- 如何停止两个按钮执行相同的工作?在这种情况下,它们都会滚动到顶部
- 在不使用隔离作用域的情况下执行函数的角度指令
- 在 gruntjs 构建失败的情况下强制执行某些任务
- 在不执行ajax请求的情况下,使用jQuery读取HTTP标头以检查404
- Angular在不触发摘要的情况下执行XHR请求
- 函数在我的情况下无法执行
- 如何在不使浏览器滞后的情况下暂停Javascript的执行
- Phonegap onclick在不单击的情况下执行
- 如何在不冻结浏览器的情况下执行大量javascript代码
- 使用node.js模块,在什么情况下模块会被执行两次
- 如何在不选择模式配置参数的情况下,使用mongoose在MongoDB模式实例化中的关联数组/对象中执行foreach
- button.click仅在前面有警告的情况下执行
- 如何在不打开新窗口的情况下在单页应用中执行 Dropbox 身份验证
- 在没有javascript循环的情况下多次执行命令
- 如何在不刷新页面的情况下多次执行构造函数
- Node 的断言模块是否提供了一种在没有强制的情况下执行深度相等检查的方法?
- 使用 V8 JavaScript 引擎在没有 Web 视图的情况下执行 JS 库
- 如何在没有物理感谢页面的情况下执行谷歌Adwords转化跟踪