如何衡量 ajax 调用的进度?在 Php 中使用 jquery/ajax

How do I measure the progress of an ajax call? In Php with jquery/ajax

本文关键字:ajax Php jquery 调用 何衡量      更新时间:2023-09-26

我有一个运行长PHP脚本的AJAX调用,它有20个不同的结果,我想显示脚本中的每个步骤何时完成。像这样 1

/20 完成,2/20 完成,3/20 完成。

最新 29-12-2015 03:17.

我尝试通过 PHP 创建 JSON 文件(jsonFileName_uniqueTimeStampHere.json(,但使用 PHP 创建文件所花费的时间导致 404 文件未找到错误!

因为当 AJAX 调用运行时,它会在创建文件之前进入进度调用,我知道我无法使用 JavaScript 创建文件,但无论如何都可以创建。

从 jQuery AJAX 成功回调之前的文件?

AJAX 调用运行时显示进度信息的最佳方式是什么。

我现在的方式是,我在服务器上保存了一个 JSON 文件,该文件使用已完成的最新状态进行更新,但如果多个用户运行相同的脚本,则具有该状态的 JSON 文件将被覆盖。

  1. 我是否应该将每个进度的状态保存在数据库中,然后通过多次调用 PHP 方法来接收它,从而获取已完成的状态?
  2. 我是否应该继续使用当前使用的方法,并将用户 ID 添加到 JSON 文件,以便在每次调用文件时它都是唯一的?
  3. 我应该如何以与Seositecheckup相同的方式进行操作?

AJAX 和 PHP 方面取得进展的最佳方式是什么?

如果您需要更多信息,请告诉我。

我环顾四周,不觉得信息或一半的信息,在网上找到已经足够了,可以自己做到这一点。

我想使用 jQuery AJAX 而不是 XMLHttpRequest,我正在寻找类似于 seositecheckup.com 的东西,当您扫描页面时,您可以在控制台中看到每个已完成函数的状态更新,并且使用不同的 AJAX 调用完成。这怎么可能?

我应该忘记使用jQuery,而专注于普通的JavaScript吗?

现在我有一个使用 jQuery 的设置,问题是,我使用 JSON 文件从中获取结果,当多个用户请求相同的脚本时它会被覆盖,是否可以将状态存储在数据库中并从那里接收它带有一些唯一标识符?

将来,我想将脚本放入可以运行的队列中,当脚本结束时,它应该向用户发送电子邮件。

处理可能需要很长时间的请求的 HTTP 方法是让请求返回 202,响应正文应包含用户可以查询结果的 URL。

#Request
POST /some/entitities
...
#Response
HTTP/1.0 202 Accepted
/jobs/{jobId}

然后,用户可以轮询/jobs/{jobId},该轮询可以返回一个数字来表示进度。你必须使用这个吗?不,但如果您这样做,其他开发人员可以立即识别正在发生的事情。

即使您不使用我推荐的方法,您还必须跟踪数据库中的作业进度,并进行单独的 AJAX 调用来查找当前进度。