题
用这个代码我可以告诉an animated gif而该服务器的脚本是运行:
function calculateTotals() {
$('#results').load('getResults.php', null, showStatusFinished);
showLoadStatus();
}
function showLoadStatus() {
$('#status').html('');
}
function showStatusFinished() {
$('#status').html('Finished.');
}
然而,我想显示状态的多远沿着脚本,例如"处理线342 20000..."和它最直到它完成。
我怎么可以那样做?我可以让一个服务器-脚本,它包含不断更新的信息,但我在哪里放命令来阅读本说,每一秒?
解决方案
后读取你的意见对安德鲁的回答。
你会读的状况是这样的:
function getStatus() {
$.getJSON("/status.php",{"session":0, "requestID":12345},
function(data) { //data is the returned JSON object from the server {name:"value"}
setStatus(data.status);
window.setTimeout("getStatus()",intervalInMS)
});
}
使用这种方法,你可以打开几个同时把请求在服务器上。
所有你的status.php 作为输出为:
{"status":"We are done row 1040/45983459"}
但是你可以输出为许多你想要的信息在应对和处理相应的(喂养的进度条例或执行的一个动画..)
更多信息$.getJSON见 http://docs.jquery.com/Ajax/jQuery.getJSON
其他提示
你的服务器侧脚本应该以某种方式保持其进展的某个地方上的服务器(文件、现场数据库,缓存,等等)。
你应该有AJAX功能返回的当前进展情况。调查这种功能,一旦第二和渲染的结果。
不知道如何服务器侧代码的工作很难说。然而,有三个阶段的过程。首先你需要叫有创造就业脚本。这返回一个识别号码,并将服务器的工作。接下来,每一秒或所以,你需要呼叫状态脚本,这返回状态消息,你想要显示。这一地位脚本,还需要返回值是否指示的工作已经完成或没有。当状态脚本说工作已经完成了你停止调查。
你怎么得到这个状态脚本是知道的状况的工作在很大程度上取决于如何服务器是设立,但可能涉及编写信息的数据库表的各点期间的工作。状态脚本后来读这个消息的数据库。
不隶属于 StackOverflow