如何通过jQuery(ajax)跟踪提交给服务器的请求的进度?

我有一些PHP应用程序。 目前我正在开发用户通过ajax(jQuery)向服务器提交请求/表单的部分。 服务器将在MySQL数据库中插入数千条记录,这些记录可能需要几分钟(由于各种计算等)。 </ p>

问题:有没有办法跟踪服务器端的更新进度? 我知道一旦完成,我可以写一些输出。 解决方法类似于:
-存储某个会话ID和进度详细信息(例如:处理5k中的3k插入 - 可能在数据库中的某个进度表中
-有前端jQuery脚本每10个请求来自服务器的信息 几秒钟...... </ p>

有什么想法吗?请随时提出任何问题。谢谢。</ p>
</ div>

展开原文

原文

I have some PHP app. At the moment I am developing part where an user submits a request/form to the server via ajax (jQuery). Server will insert thousands of records in MySQL database that will probably take couple minutes (due to various calculations etc).

Question: Is there a way to track progress of updates on server side? I understand I can write some output once everything is finished. A workaround would be something like: - store somewhere session ID plus progress details (example: processed 3k inserts out of 5k - maybe in some progress table in database - have front end jQuery script requesting that information from the server every 10 seconds or so...

Any ideas? Please feel free to ask any question you may have. Thank you.

dongyu1979
dongyu1979 McCrossan这就是我的想法。会努力吗。谢谢。
4 年多之前 回复
douqinlu4217
douqinlu4217 你的想法几乎是实现这一目标的唯一方法。XHR的进度事件将仅跟踪文件上传时的状态,而不是由于请求而在服务器上进行的任何工作
4 年多之前 回复

1个回答



虽然我不知道你在服务器端做什么的具体细节,但需要“几分钟”的脚本 执行可能涉及几个不同的步骤。 让脚本一次执行一步,返回结果然后再次调用以执行下一步可能是有意义的。</ p>

通过使用这样的过程,你' 能够跟踪客户端的进度。 需要注意的是,如果客户端关闭浏览器窗口或使用ajax代码离开页面,则不会执行其余步骤。</ p>
</ div>

展开原文

原文

While I don't know the specifics of what you're doing server-side, a script that takes a "couple minutes" to execute likely involves several distinct steps. It might make sense to have the script execute one step at a time, return its result, and then get called again to execute the next step.

By using a process like this, you'll be able to track progress client-side. The caveat is that if the client closes the browser window or leaves the page with your ajax code, the remaining steps won't be executed.

dqdt45183
dqdt45183 实际上,我认为我将使用我的存储过程在执行时写下某个表中百分比的进度(例如:每1k记录左右)。 从我的前端我可以每次检索该号码以显示进度条...谢谢。
4 年多之前 回复
duanbi2003
duanbi2003 如果你想按我建议的方式这样做,你会写入临时表,并且只在最后一步中复制到实时表。
4 年多之前 回复
dougan7523
dougan7523 基本上,很少有选择加上额外的数学计算。 对于每个选择,正在插入其他成对记录。 它必须是存储过程,否则可能导致部分完成的过程。 谢谢。
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐