PHP在活动页面上显示后端脚本的输出
PHP Displaying output of backend script on active page
我有一个PHP web应用程序。应用程序的一个组件是将数据提交到后端管道(也是用PHP编写的)管道是一个外部脚本,我的应用程序使用'exec'php函数调用它。流水线是一个多步骤流水线,它执行几个程序,从以前运行的程序中获取输入。我希望能够在提交给管道的应用程序页面上显示一条消息,并完成管道中的每个步骤,例如
步骤1已完成。。。现在执行步骤2。步骤2已完成。。。现在执行步骤3。
等等。
我对使用javascript/AAJAX以及任何其他与PHP兼容的语言来做到这一点持开放态度。
非常感谢您的帮助。
假设您有某种数据库支持您的PHP前端和管道,那么您并不特别需要与PHP兼容的东西,而是可以与数据库接口的东西。
在没有任何关于您设置/尝试的详细信息等的情况下,我只能提供我在这种情况下使用的工作流程的概述。
- 前端脚本被提交,并将请求推入处理队列
- 用户会看到一个"正在处理,请稍候"类型的页面。此页面发出一个长轮询AJAX请求,或将Websocket连接到前端站点的脚本,该脚本轮询数据库以获取管道处理的更新
- 管道脚本相互链接,并将其完成的详细信息推入数据库,这些详细信息由Websocket/长轮询前端脚本读取,并通过Javascript返回给用户以显示在页面上
使用数据库作为中间人将是最简单、最灵活的方法。如果你对其他语言更熟悉,你也可以使用它们,只要它们与你在PHP/管道端使用的数据库兼容。
编辑
虽然我没有任何关于你想做什么的教程链接,但它背后有一些基础知识,你可以用来拼凑你的解决方案:
首先,我将使用cron让您的管道(处理)脚本在后台每隔一段时间运行一次。或者,您可以使用类似于PHP守护程序框架的东西来守护该管道,以便它在后台运行。也许有一个cron任务来检查它是否正在运行,并在需要时重新启动它。
从那里,你可以在数据库中构建一个表,其中包含手头处理任务的状态更新,并构建一个PHP脚本,检查给定任务的状态并输出有关它的JSON数据。使用AJAX请求可以很容易地读取这些JSON数据,最简单的方法可能是jQuery的.AJAX()方法。这可以在客户端的"状态"页面上每隔一段时间调用,在每个"循环"结束时使用setTimeout
调用,每隔X秒轮询一次状态更改。这将是你追求的最简单的实现,尽管不是最好的执行或最佳的方式
因此,这里的一般工作流程将更改为:
- 前端脚本被提交,并将请求推送到状态设置为挂起的处理队列中
- 用户会看到每X秒ping一次
status.php?task=12345
的处理页面 - 后端守护进程/cron脚本接收请求并开始处理,每隔一段时间将状态更新推送到数据库中
status.php
脚本开始在JSON代码中返回不同的状态信息,并将其显示给用户
- 未能从后端触发javascript
- 在使用客户端脚本时拾取JSON对象
- 加载服务器端渲染的React组件后执行脚本
- Dynamics 2016内部部署Crm客户端脚本.选项集控件类型缺少方法
- 在服务器端脚本执行后关闭选项卡
- 检查浏览器'在asp.net的后端代码中启用或禁用了s JS
- 加载客户端脚本后下载静态网页
- 在执行客户端脚本后获取文档源
- 自动刷新 PHP 脚本后端
- 如何处理对后端服务进行相同调用的多个浏览器脚本
- 重定向到后端脚本后的新 URL
- Page.客户端 按钮单击事件后的脚本进程
- Phonegap没有执行ajax脚本(对后端的REST调用)
- PHP在活动页面上显示后端脚本的输出
- 拥有一个简单的浏览器内JS游戏,需要它与后端'Ruby脚本一起工作
- Azure移动服务插入后端脚本错误
- 如何设计一个AJAX界面来显示基于运行脚本后端的进度条
- 如何在ejs脚本部分使用后端变量
- 后端的PHP脚本,当使用JQuery单击按钮时
- 如何在asp.net mvc中运行客户端验证后的脚本