用这个代码我可以告诉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

其他提示

我不是来与的具体细节。,但是一般的答案并不涉及投票wold是:使用的变化 永远框架 技术。基本上,创建一个隐藏的框架,并设置src它是'getresults.php'.内部getresults你"流"的背剧本块,这是呼吁有javascrpt功能在母体文件,实际上更新的进展。这里的 一个例子 这显示了背后的基本思想的一个永久框架。(我不会推荐使用自己的实际JS或HTML虽然,这是合理的平均)

你的服务器侧脚本应该以某种方式保持其进展的某个地方上的服务器(文件、现场数据库,缓存,等等)。

你应该有AJAX功能返回的当前进展情况。调查这种功能,一旦第二和渲染的结果。

不知道如何服务器侧代码的工作很难说。然而,有三个阶段的过程。首先你需要叫有创造就业脚本。这返回一个识别号码,并将服务器的工作。接下来,每一秒或所以,你需要呼叫状态脚本,这返回状态消息,你想要显示。这一地位脚本,还需要返回值是否指示的工作已经完成或没有。当状态脚本说工作已经完成了你停止调查。

你怎么得到这个状态脚本是知道的状况的工作在很大程度上取决于如何服务器是设立,但可能涉及编写信息的数据库表的各点期间的工作。状态脚本后来读这个消息的数据库。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top