Javascript 如何度量ajax调用的进度?在Php中使用jquery/ajax
我有一个AJAX调用,它运行一个很长的PHP脚本,其中有20个不同的结果,我想展示脚本中的每个步骤何时完成。 像这样1/20完成,2/20完成,3/20完成 最新发布时间:2015年12月29日03:17 我试图用PHP创建JSON文件(Javascript 如何度量ajax调用的进度?在Php中使用jquery/ajax,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,我有一个AJAX调用,它运行一个很长的PHP脚本,其中有20个不同的结果,我想展示脚本中的每个步骤何时完成。 像这样1/20完成,2/20完成,3/20完成 最新发布时间:2015年12月29日03:17 我试图用PHP创建JSON文件(jsonFileName\u uniqueTimeStampHere.JSON),但是用PHP创建文件所花费的时间导致404文件找不到错误 因为当AJAX调用运行时,它会在文件创建之前调用进度,我知道我不能用JavaScript创建文件,但无论如何都可以创建 从
jsonFileName\u uniqueTimeStampHere.JSON
),但是用PHP创建文件所花费的时间导致404文件找不到错误
因为当AJAX调用运行时,它会在文件创建之前调用进度,我知道我不能用JavaScript创建文件,但无论如何都可以创建
从jQuery AJAX成功回调之前的文件
在运行AJAX调用时,显示进度信息的最佳方式是什么
按照我现在的方式,我在服务器上保存了一个JSON文件,该文件使用已完成的最新状态进行更新,但是如果多个用户运行相同的脚本,则该状态的JSON文件将被覆盖
将来,我希望能够将脚本放入一个可以运行的队列中,当脚本结束时,它应该向用户发送一封电子邮件。处理可能需要很长时间的请求的HTTP方法是请求返回一个,响应的主体应该包含用户可以查询请求的URL结果
#Request
POST /some/entitities
...
#Response
HTTP/1.0 202 Accepted
/jobs/{jobId}
然后用户可以轮询/jobs/{jobId}
,它可以返回一个数字来表示进度。你一定要用这个吗?不,但如果您这样做,其他开发人员可以立即识别出发生了什么
即使您不使用我推荐的方法,您也必须在数据库中跟踪作业进度,并进行单独的AJAX调用以了解当前进度。可能重复感谢,我查看了这个链接及其大约2年前的版本,并使用了XMLHttpRequest,我想以与seositecheckup类似的方式使用jquery ajax。jquery ajax只是XHRI的一个包装器。我知道,但我不想使用普通javascript,我想使用jquery ajax设置,我希望这是有道理的,实际上没有道理。如果您知道使用vanilla JS实现这一点的方法,那么为什么您要将自己限制在一个库中,而这个库只因为您在其他地方使用它而使这一点变得困难呢?这是毫无意义的,但是,似乎有一种解决方案使用jQuery。基本上是一种黑客行为,但我猜它仍然有效。如果我使用jquery ajax来实现这一点,您将如何使用运行脚本的用户的唯一标识符将数据保存在数据库中。创建进程的唯一标识符的最佳方法是什么?你能给我一个db构建的例子吗?我有20个不同的结果。你可以使用GUID,你正在将它们传递回调用方,并使用2020,你将如何创建它,您是使用php还是在前端使用javascript执行此操作?@user3502250创建作业的是服务器,它生成作业id,客户端调用该URL直到完成,在这一点上,服务器将向客户端提供可以检索资源的最终URL。因此,我应该只调用类中的一个方法来从db获取状态?完成后是否删除表中的行?