如何捕获事件 AJAX 发送到服务器,而不是等待服务器响应


how can catch event ajax send to server, not waiting for server respond

我的问题是当用户点击网站上的链接时,我使用 jquery 捕获事件点击和 ajax 更新数据库如果我做这样的事情,由于等待响应表单服务器,这将花费一些时间

$.ajax({
success: function() {
...
window.href = link;
}
});

我想要类似的东西

$.ajax({
alreadysend: function() {
...
}
});

阅读了文档 ajax,但我找不到任何解决方案来解决我的问题。

编辑:我解决了我的问题,我需要在jQuery上努力工作,谢谢大家

默认情况下,它这样做,因为 Ajax 是异步的!如果您希望代码执行而不管服务器是否已到达并响应,只需将执行代码放在 Ajax 块之后即可。

另一方面,如果要判断用户是否已执行提交操作,可以使用应用程序范围变量来切换调用和已完成事件。(即当用户发起 Ajax 调用时设置为 true。完成后,设置为 false。禁止我已经为真的电话)

只需在调用 $.ajax 后立即调用您的代码:

$.ajax({success: function(){
    // done after server response
}});
// do something immediately after 

Ajax 调用是异步的,因此脚本不会被阻止。

为什么不直接在$.ajax行之后调用要调用的函数?喜欢这个:

$.ajax({ ... });
do_things();

编辑 如果要执行重定向,则必须等待 AJAX 调用返回以确保它是否成功。如果你不在乎它是否成功,而只关心它进行调用,你可以把它放在$.ajax调用之后的行中,因为调用是异步发生的。无论如何,我们需要更多关于您想要实现的目标的信息。

我不是 100% 确定您要做什么,但是如果您想在代码继续之前等待 ajax 调用返回,您可以通过将 async 设置为 false 来设置它,尽管值得注意的是,这有点适得其反,并且在 jQuery 1.8 中已弃用。

http://api.jquery.com/jQuery.ajax/

默认情况下,所有请求都是异步发送的(即设置为 默认为 true)。如果需要同步请求,请将此选项设置为 假。跨域请求和数据类型:"jsonp"请求不 支持同步操作。请注意,同步请求可能会 暂时锁定浏览器,在请求时禁用任何操作 处于活动状态。从 jQuery 1.8 开始,不推荐使用 async: false。