[英]How do I measure the progress of an ajax call? In Php with jquery/ajax
我有一个AJAX调用,它正在运行一个较长的PHP脚本,其中有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文件将被覆盖。
使用AJAX和PHP取得进展的最佳方法是什么?
如果您需要更多信息,请告诉我。
我四处张望,感觉不到信息或信息的一半,可以找到在线足以完成此任务。
我想使用jQuery AJAX而不是XMLHttpRequest,我在寻找类似于seositecheckup.com的东西,当您扫描页面时,您可以在控制台中看到每个已完成函数的状态更新,并通过不同的AJAX调用来完成。 那怎么可能?
我应该忘记使用jQuery,而是专注于纯JavaScript吗?
现在我有一个使用jQuery的安装程序,可以解决的问题是,我使用JSON文件从中获取结果,并且当多个用户请求同一脚本时它会被覆盖,是否可以将状态存储在db中并接收它从那里有一些唯一的标识符?
将来,我希望将脚本放入可以运行的队列中,并且在脚本结束时应向用户发送电子邮件。
HTTP处理可能花费很长时间的请求的方式是请求返回202 ,响应的正文应包含用户可以在其中查询结果的URL。
#Request
POST /some/entitities
...
#Response
HTTP/1.0 202 Accepted
/jobs/{jobId}
然后,用户可以轮询/jobs/{jobId}
,后者可以返回代表进度的数字。 你必须用这个吗? 不,但是如果您这样做,其他开发人员可以立即识别出发生了什么。
即使您不使用我推荐的方法,也将必须跟踪数据库中的作业进度,并需要单独的AJAX调用来查找当前进度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.