我需要一个关于jQuery ajax的建议

时间:2011-07-10 16:55:44

标签: jquery

代码:

$(element).click(function() {
jQuery.ajax(
type: 'GET',
url: 'file.php?id=xxx',
async: false,
success: function(data) {
...
}
);
});

file.php 对数据库执行选择,它将显示大约500.000行。

我需要做一个进度条(0 - 100%),而ajax得到这些行。

有没有人有任何建议?

也许我应该使用iframe来做呢?我不知道是否可以使用ajax。

2 个答案:

答案 0 :(得分:0)

你应该发送更多的ajax请求以便能够显示进度,单个的

是不可能的

答案 1 :(得分:0)

在您的服务器上,您需要实现一个获取给定ID(以及用户ID或用户IP地址)的函数,并返回给定请求的当前状态。这完全取决于您执行SQL或其他服务器端活动的方式,但这是理解“我的活动的百分比是多少?”的核心概念。

那就是说,让我们说实现“file.php?request = status& id = ...”,它返回一个JSON结构 {:status => “0.50”} 意味着完成了50%的任务。再次抱歉,我无法帮助解决这一问题,但这取决于服务器上的特定代码,以便最好地实现这一点。

一旦你启动你的AJAX(如上所述),设置一个时间偶尔ping你的服务器更新。

$('#progressBar').progressBar( 'value', 0 );

var updateProgressBar = function() {
  $.ajax({
           'type': get,
           'url': 'file.php?request=status&id=...', 
           'success': function(json) { $('#progressBar').progressBar( 'value', json.status * 100 ); }
};

var updater = setTimeout(updateProgressBar, 2000); //make sure to clear this when request completes

希望这会让您开始实施正确的进度条,并告诉我您是否对实施或想法有任何疑问。