【问题标题】:Triggering two page at once in PHP在 PHP 中一次触发两个页面
【发布时间】:2015-04-29 17:05:55
【问题描述】:

假设,我有四个页面(index.php、progressbar.php、buffering.php、trackvalue.php)。我想要完成的是,

1

当有人从 index.php 提交一个值时,它必须放在 progressbar.php 中。

2

progressbar.php 将从 buffering.php 创建的 txt 文件中获取当前状态值。

3

buffering.php 将在首先提交值时从 index.php 接收值。并且这个页面会在一个txt文件中输出进度值。

所以我必须在有人单击提交按钮时触发并将值发送到 buffering.php,但还必须在 progressbar.php 中而不是在 buffering.php 中。不要告诉我只是将 prgressbar.php 包含在 buffering.php 中,因为我必须从该页面捕获实时数据。由于在 buffering.php 中启用了缓冲,所以我不能这样做。也不要告诉我禁用输出缓冲,由于某种原因我不能这样做。

请建议我如何在后台触发脚本并传递一些值。

【问题讨论】:

  • 在尝试编写一些代码之前,请先谷歌并学习 AJAX。也看看jQuery的.ajax()
  • 我试过了。当我从脚本处理某些内容时,它不会输出任何内容,直到该过程完成。这就是为什么我要为实时数据创建一个 txt 文件。如果您知道如何在通过 ajax 处理脚本时访问它,请告诉一些有关它的信息。 @LihO
  • 如果您尝试过某事,那么这里的问题应该显示您尝试过的内容并描述您面临的具体问题...

标签: php ajax buffering


【解决方案1】:

请建议我如何在后台触发脚本 传递一些值。

PHP 页面必须完成处理才能获得完整的回报。

要完成听起来像是在尝试做的事情,您需要创建一些事件驱动的代码。您可以通过执行以下操作来做到这一点:

不要让 index.php 直接与 buffering.php 通信。让它处理一些新文件,initial.php。当您向此页面发出请求以“启动”您的处理时,让它在事件数据库表中创建一个事件条目。然后,initial.php 只返回创建的 EventID...实际上并不进行缓冲。

将 buffering.php 转换为一个 cron 进程,该进程会查看事件表、查找新条目并在后台开始处理。如果需要,它可以使用完成百分比等更新行。

progressbar.php 然后可以接收一个 EventId,查询数据库中的完成百分比并将该值返回给 index.php,这样您就可以在它等待 cron 进程时显示进度。完成后,重定向或加载要向用户显示的任何完整数据。

主要的一点是,您需要一些后台进程来从您当前使用的脚本中获取事件,这样您从 index.php 调用的任何内容都不必等待整个进程运行时。

这可以通过 MessageQueue 系统、内存中系统(如 MemCache)或我描述的 DB 表来完成...

【讨论】:

    猜你喜欢
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2016-04-03
    相关资源
    最近更新 更多