我编写了一个 PHP 脚本来导入大量数据。导入过程通过 Ajax 调用触发,ajax 请求继续等待服务器响应。因为我在专用服务器上工作,所以没有超时问题。
问题是我们需要一个可以终止导入过程的功能。例如客户端的停止按钮。我们认为如果我们终止了等待的 ajax 调用,那么服务器上的进程也会停止,因为没有请求服务。但不幸的是,情况并非如此,脚本继续在服务器端执行,而 Ajax 请求已经被客户端杀死。
其次,我们在这个项目中使用 PHP 会话。假设如果取消按钮需要对服务器上的另一个脚本进行 Ajax 调用以停止进程,那么如果已经有等待的 ajax 请求,该请求将如何到达服务器。Php/Apache 将保留第二个请求,直到第一个请求周期完成。
注意:根据我们的项目架构,我们需要在每个页面上都有 session_start()。如果有人能指导这些问题,那就太好了。