Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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即可继续浏览_Php - Fatal编程技术网

无需等待输出到php即可继续浏览

无需等待输出到php即可继续浏览,php,Php,目前,我向class.php页面提交了一个进程,进行一些计算,然后将计算结果写入MySql数据库供用户使用。 根据客户端的互联网速度,计算确实需要很长时间,用户正在等待它完成。 是否有一种方法可以提交流程并允许用户在后台完成时继续浏览 每周只需提交一次计算 我有 rank.php 在它里面$ranklist=$admin->do_ranking() 然后在admin.class内 函数do-ranking(){ 计算 } 返回$排名 }这方面有两种广泛的策略: 尽早发送响应并分离 您可以立即发送

目前,我向class.php页面提交了一个进程,进行一些计算,然后将计算结果写入MySql数据库供用户使用。 根据客户端的互联网速度,计算确实需要很长时间,用户正在等待它完成。 是否有一种方法可以提交流程并允许用户在后台完成时继续浏览

每周只需提交一次计算

我有 rank.php

在它里面$ranklist=$admin->do_ranking()

然后在admin.class内

函数do-ranking(){

计算 } 返回$排名
}

这方面有两种广泛的策略:

  • 尽早发送响应并分离
  • 您可以立即发送响应(不管是什么,也可能是空的),并将要计算的任务转发给后台任务。为此有几个选项,可以基于cron任务定期检查等待计算的作业。因此,我们讨论的是一个简单的作业调度程序,您将找到简单的示例。或者您可以生成一个系统进程并从中分离。具体取决于您使用的操作系统,例如在Linux上,您可以将进程推送到后台,从而立即返回生成的php脚本

  • 使用ajax请求传输数据

  • 这当然是一种更加优雅的方法:不需要完全重新加载整个页面(通过发送表单示例),而是使用一些简单的客户端逻辑(read:javascript)通过ajax请求发送数据(或空请求)。这意味着加载到浏览器中的页面根本不会被卸载,用户可以随心所欲

    类似于
    ignore\u user\u abort()
    ?我不确定php是否支持将任务发送到后台threadTx,我选择了选项2。我也应该想到这一点,但仍然在学习php和ajax的东西。当页面加载时,我提交了ajax请求。