gpt4 book ai didi

php - 浏览器关闭时服务器是否为 "shut down"? PHP-MySQL

转载 作者:可可西里 更新时间:2023-11-01 16:25:50 25 4
gpt4 key购买 nike

我想知道 - 当我写了一段代码,最多可以更新 10,000 行并且可能需要几秒钟才能完成时,如果通过 ajax 请求访问文件时,post 查询是否发送到 php 文件,然后浏览器关闭,文件是否得到完全执行?假设完成请求大约需要 25 秒,用户可能不会等待 25 秒,是否足以“ping”此文件并让用户在 mysql 查询发生时浏览或关闭其浏览器窗口?

最佳答案

请求有3个部分

  1. 连接到网络服务器的浏览器
  2. 服务器执行的PHP脚本
  3. 在数据库服务器中运行的查询

当您关闭浏览器时,与服务器的连接也会关闭。服务器可能会也可能不会终止启动的 PHP 脚本(如果 PHP 作为 apache 模块运行,它将被终止,除非调用 ignore_user_abort)。此外,网络服务器可能对请求有时间限制,要么终止脚本,要么只向客户端发送连接超时消息,而不终止脚本,但不给它向浏览器发送任何内容的机会。

这是棘手的部分 - 更新在数据库中运行,它不会被 Web 服务器或 PHP 杀死。

所以你想要实现的是 ping 一个 PHP 脚本,它正在执行一个查询,但客户端不等待结果。您可能希望也可能不希望查询本身是异步的(PHP 脚本不等待查询),但您必须告诉客户端请求已完成,例如发送 content-length 为 0,并刷新输出(实际上是 http header ),并使用 ignore_user_abort 运行 PHP,以便它继续执行。

关于php - 浏览器关闭时服务器是否为 "shut down"? PHP-MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12729444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com