Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何捕获ajax发送到服务器的事件,而不是等待服务器响应_Php_Jquery_Ajax_Events - Fatal编程技术网

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

Php 如何捕获ajax发送到服务器的事件,而不是等待服务器响应,php,jquery,ajax,events,Php,Jquery,Ajax,Events,我的问题是,当用户点击网站上的链接时,我使用jquery捕捉事件点击,并使用ajax更新数据库 若我这样做,将需要一点时间,因为等待响应表单服务器 $.ajax({ success: function() { ... window.href = link; } }); 我想要像这样的东西 $.ajax({ alreadysend: function() { ... } }); 我阅读了ajax文档,但找不到任何解决问题的方法 编辑:我解决了我的问题,我需要在jQuery上努力工作,谢谢大家为

我的问题是,当用户点击网站上的链接时,我使用jquery捕捉事件点击,并使用ajax更新数据库 若我这样做,将需要一点时间,因为等待响应表单服务器

$.ajax({
success: function() {
...
window.href = link;
}
});
我想要像这样的东西

$.ajax({
alreadysend: function() {
...
}
});
我阅读了ajax文档,但找不到任何解决问题的方法


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

为什么不在
$.ajax
行之后调用想要调用的函数呢?像这样:

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

编辑如果要执行重定向,则必须等待AJAX调用返回,以确保重定向成功与否。如果您不关心它是否成功,而只关心它进行调用,那么您可以将它放在$.ajax调用之后的行中,因为调用是异步进行的。在任何情况下,我们都需要一些关于您想要实现什么的详细信息。

默认情况下会这样做,因为Ajax是异步的!如果您想让代码执行,而不管服务器是否被访问和响应,只需将执行代码放在Ajax块之后即可


另一方面,如果您想知道用户是否已经进行了提交操作,可以使用应用程序范围变量切换调用和完成的事件。(即,当用户启动Ajax调用时设置为true。完成时,设置为false。不允许调用I已为true)

只需在调用$后调用代码即可。Ajax:

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

// do something immediately after 

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

我不能100%确定您要做什么,但是如果您想在代码继续之前等待Ajax调用返回,可以通过将
async
设置为false来设置它,尽管值得注意的是,这会适得其反,在jQuery1.8中被弃用

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


您的意思是要执行AJAX调用,但仍让用户导航到当前页面之外吗?要防止用户再次按下按钮,直到服务器返回答案为止?由于数据库操作需要时间,听起来您有一个阻塞操作。不过,你想阻止或允许什么还不清楚。你能提供更多的细节吗:)?也许你是想写
window.location.href
?这是将用户重定向到其他页面的正确方法。感谢您的快速回复,当用户单击链接i时,使用jquery捕获事件单击和事件。preventDefault();阻止事件转到此链接,然后我使用ajax将更新发送到我的站点,但在jquery中,我们在发送之前就已经成功了。在我的例子中,这两种方法都不适用,我希望在发送之前和成功之前,它们之间有某种联系,就像alread发送到服务器,但不等待服务器响应为什么投票失败?如果我误解了这个问题,请告诉我。ajax调用将在该函数调用之后异步进行。如果
do\u things()
函数是问题中指出的重定向,我现在明白了。问题中没有提到这一点。我不想知道成功与否,我只想知道它是否已经发送:-D