【发布时间】:2016-05-18 03:17:17
【问题描述】:
使用 PHP 5.4 运行 apache 服务器。
我有一个表单,它向服务器发布一个 xhr 请求,如果在当前 xhr 完成之前再次按下按钮,则中止先前的请求。
因此,如果我坐在那里,尽可能快地单击按钮(大约 100-150 毫秒内)并在我的网络选项卡中看到所有已取消的 XHR 堆积,然后让 last 请求真正完成,我检查了服务器,发现所有被取消的请求实际上都“完成”了它们在服务器上的任务(连接到数据库并将一些数据放入表中)。
也可能是相关的:在“工作”(插入数据库)之后发生的唯一事情是将状态字符串发送回客户端。
我读到您不应该依赖取消 HTTP 请求来实际取消服务器进程,但这里有些东西闻起来很可疑。
取消 XHR 请求是否可靠,或者我的服务器出了什么问题?
【问题讨论】:
-
XMLHttpRequest 中止方法是可以的,但是如果请求已经发送到服务器,那么即使我们中止请求,服务器也会处理请求。客户端不会等待/处理响应。
标签: javascript php ajax