gpt4 book ai didi

javascript - PHP在事件页面上显示后端脚本的输出

转载 作者:行者123 更新时间:2023-12-02 16:56:52 25 4
gpt4 key购买 nike

我有一个 PHP 网络应用程序。该应用程序的一个组件是将数据提交到后端管道(也用 PHP 编写)。 管道是一个外部脚本,我的应用程序使用 'exec' php 函数调用它。该管道是一个多步管道,它执行多个程序,并从之前运行的程序中获取输入。我希望能够在提交到管道的应用程序页面上显示一条消息,并完成管道中的每个步骤,例如

第 1 步已完成...现在正在执行第 2 步。第 2 步已完成...现在正在执行第 3 步。

等等等等。

我愿意使用 javascript/AJAX 以及与 PHP 兼容的任何其他语言来执行此操作。

非常感谢任何帮助。

最佳答案

假设您有某种数据库支持 PHP 前端和管道,那么您并不特别需要与 PHP 兼容的东西,而是需要可以与数据库交互的东西。

没有关于您已设置/尝试的内容等的更多详细信息。我只能提供我在这种情况下使用的工作流程的概述。

  • 提交前端脚本并将请求推送到处理队列中。
  • 用户会看到一个“正在处理,请稍候”类型的页面。此页面向前端站点发出长轮询 AJAX 请求或 Websocket 连接到脚本,该脚本轮询数据库以获取管道处理的更新。
  • 管道脚本相互链接,并将其完成的详细信息插入数据库,这些详细信息由 Websocket/长轮询前端脚本读取,并通过 Javascript 返回给用户以显示在页面上。<

使用数据库作为中间人将是最简单、最灵活的方法。如果您更熟悉其他语言,您也可以使用它们,只要它们与 PHP/管道端使用的数据库兼容。

编辑

虽然我没有任何关于您想要做什么的教程的链接,但它背后有一些基础知识,您可以使用它们来拼凑您的解决方案:

I would start by getting your pipeline (processing) script to run in the background at interval using cron.或者,您可以使用类似 this PHP-Daemon framework 的东西对该管道进行守护进程。以便它在后台运行。也许有一个 cron 任务来检查它是否正在运行并在需要时重新启动它。

从这里,您可以在数据库中构建一个表,其中包含当前处理任务的状态更新,并构建一个 PHP 脚本来检查给定任务的状态并输出有关该任务的 JSON 数据。使用 AJAX 请求可以轻松读取此 JSON 数据,其中最简单的可能是 jQuery's .ajax() method 。这可以在客户端“状态”页面上定期调用,在每个“循环”结束时使用 setTimeout 调用来每隔 X 秒轮询状态更改。这将是您所追求的最简单的实现,尽管不是最佳的性能或最佳的实现方式。

因此这里的一般工作流程将更改为:

  • 前端脚本已提交,并将请求推送到处理队列,状态设置为待处理。
  • 用户会看到处理页面,每 X 秒 ping 一次 status.php?task=12345
  • 后端守护程序/cron 脚本接收请求并开始处理,定期将状态更新推送到数据库中。
  • status.php 脚本开始以 JSON 代码返回不同的状态信息,并将其显示给用户。

关于javascript - PHP在事件页面上显示后端脚本的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26102569/

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