php - 异步PHP

标签 php javascript image background-process

我有一个 php 脚本,它获取用户输入(一些文本和一个链接),将其放入数据库,然后使用用户提供的链接搜索图像。

问题是,有时搜索图片需要一段时间,这会使网站“卡住”,因此显示“您的帖子已提交!”的 View 有时需要 4 到 6 秒才能最终加载。

有没有办法让 PHP 异步搜索图片?

您可能想知道为什么我不只加载 View 然后进行图像搜索,或者只使用 AJAX。好吧,我需要数据库中的“最后插入 ID”来根据项目 ID 重命名图像,并且只有在将帖子插入数据库后才能完成此操作。

编辑 1: 我已经读过这个 Asynchronous PHP calls?但我不确定我是否理解。

编辑 2:这是按要求对流程的概述:

  • 第 1 步:用户打开表单并填写 2 个字段(一些文本和一个链接)
  • 第 2 步:用户提交表单
  • 第 3 步:PHP 在 MySQL 数据库中插入帖子
  • 第 4 步:PHP 搜索该链接的图像(抓取网络,需要几秒钟)并使用数据库插入中最后一个 ID 的名称保存该图像。如果最后一个 ID 是 75,图像将保存为“img_75”。
  • 第 5 步:PHP 加载“您已成功发布链接”

我想要的是第 3 步之后的第 5 步,同时第 4 步正在运行。我实际上不需要第 4 步的响应。只要它在后台运行我就很高兴:)


解决方案: 我已按照@shadyyx 的建议进行操作。一个简单的 AJAX 调用。我真的希望有一个替代方案,但显然 php 或任何其他服务器端语言都不能处理异步调用。

最佳答案

我会在两步 AJAX 调用中执行此操作。

它应该是这样的:

  1. 用户打开表单并填写数据
  2. 用户点击提交按钮 - 一个 AJAX 调用被发送到服务器
  3. 一个新条目被写入数据库,最后一个 ID 作为响应返回给 JS
  4. 您向用户显示表单已提交的消息
  5. 并调用将抓取所需 URL 的新 AJAX 请求,使用您从第一个 AJAX 响应中获得的 ID 下载并保存图像...

清楚了吗?简单的?我猜是……

关于php - 异步PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10702800/

相关文章:

javascript - 使用 Parse.com 使用 Javascript 值填充 HTML 表格

php - 在 mysqli 中多次使用相同的 Binder

javascript - 如何在同一组件中提供和使用上下文?

php - 如果模式不匹配,如何使 preg_match_all 返回空数组值?

javascript - 超大随机拇指顺序

android - 如何在android和iphone webviews显示的html中制作可点击按钮(点击时图像改变)

javascript - 在 DOM 中更新图像的最有效方法是什么?

android - 拍摄相机 Intent 照片后删除图库图像

php - imap_open() 显示 "invalid remote specification"并且连接失败

php - 如何在 Laravel 中对多个列使用相同的类别 id?