【发布时间】:2015-12-28 20:21:38
【问题描述】:
我有一个 AJAX 调用,它正在运行一个长的 PHP 脚本,其中有 20 个不同的结果,我想显示脚本中的每个步骤何时完成。 就像这样 1/20 完成,2/20 完成,3/20 完成。
最新 29-12-2015 03:17。
我尝试通过 PHP 创建 JSON 文件 (jsonFileName_uniqueTimeStampHere.json),但是使用 PHP 创建文件所花费的时间导致 404 file not found 错误!
因为当 AJAX 调用正在运行时,它会在文件创建之前进行进度调用,我知道我无法使用 JavaScript 创建文件,但无论如何都可以创建。
jQuery AJAX 成功回调之前的文件?
在 AJAX 调用运行时显示进度信息的最佳方式是什么。
按照我现在的方式,我在服务器上保存了一个 JSON 文件,该文件会使用已完成的最新状态进行更新,但如果多个用户正在运行相同的脚本,则该状态的 JSON 文件将被覆盖。
- 我是否应该将每个进度的状态保存在 DB 中,然后通过多次调用获取已完成状态的 PHP 方法来接收它?
- 我是否应该继续使用当前使用的方法并向 JSON 文件添加一个用户 ID,以便在每次调用该文件时它都是唯一的?
- 我应该如何以与 Seositecheckup 相同的方式进行操作?
在 AJAX 和 PHP 方面取得进展的最佳方式是什么?
如果您需要更多信息,请告诉我。
我环顾四周,感觉不到信息或一半的信息,有找到网上已经足够我自己做这个了。
我想使用 jQuery AJAX 而不是 XMLHttpRequest,我正在寻找类似于 seositecheckup.com 的东西,当您扫描页面时,您可以在控制台中看到每个已完成功能的状态更新,并使用不同的 AJAX 完成来电。这怎么可能?
我应该忘记使用 jQuery 而是专注于纯 JavaScript 吗?
现在我有一个使用 jQuery 的设置,问题是,我使用 JSON 文件来获取结果,当多个用户请求相同的脚本时它会被覆盖,是否可以将状态存储在 db 中并使用一些唯一标识符从那里接收它?
将来我希望将脚本放入一个可以运行的队列中,当脚本结束时,它应该向用户发送一封电子邮件。
【问题讨论】:
-
谢谢,我查看了该链接及其大约 2 年的历史并使用 XMLHttpRequest,我想以与 seositecheckup 类似的方式使用 jquery ajax。
-
jquery ajax 只是 XHR 的一个包装器
-
我确实意识到这一点,但我不想使用纯 javascript 来执行此操作,我想使用 jquery ajax 设置来执行此操作,我希望它有意义。
-
实际上没有任何意义。如果您知道使用 vanilla JS 完成此操作的方法,为什么您会限制自己使用一个仅因为您在其他地方使用它而使这变得困难的库?它毫无意义,但是,this answer 中似乎有一个使用 jQuery 的解决方案。基本上是一个 hack,但我猜它仍然有效。
标签: javascript php jquery json ajax