我有一个通过ajax调用执行的sql查询,但我需要能够检查它的进度并更新进度条。
这里是我的简单的Ajax调用(使用JQuery):
var strResult = (($.ajax({url: URL,async: true}).responseText));
任何想法如何,我听更改更新了吧?
PS。这个问题与SQL无关。
我有一个通过ajax调用执行的sql查询,但我需要能够检查它的进度并更新进度条。
这里是我的简单的Ajax调用(使用JQuery):
var strResult = (($.ajax({url: URL,async: true}).responseText));
任何想法如何,我听更改更新了吧?
PS。这个问题与SQL无关。
如果您可以将查询分解为多个可单独执行的组件,则可以不断询问服务器的进度。
例如,如果你需要插入大量的数据到数据库,而不是使一个巨大的请求到DB:
INSERT INTO table VALUES (..), (..), .. ;
可以分解成许多插入语句:
INSERT INTO table VALUES (..);
...
INSERT INTO table VALUES (..);
然后在任何阶段,你总是可以计算可以给你的百分比的行数。
例如,你知道你想插入20000行。然后,使用一个AJAX调用,这将做到这一点的服务器:
SELECT COUNT(*) FROM table
将返回一个人数多达20000可以计算出百分比。
另一种解决方案是使用websockets,但这将需要大量的配置。
哪个数据库系统?并非所有人都提供进度信息。 – Polynomial 2012-01-31 16:10:17
这不是真正的问题!但是,sql语句是循环的,所以我可以回发回声。 – ojsglobal 2012-01-31 16:17:23
可能的重复:http://stackoverflow.com/questions/399641/ajax-page-download-progress – tkone 2012-01-31 16:37:16