显示在div中通过ajax调用的脚本的进度

时间:2012-05-23 07:50:38

标签: javascript ajax progress

我正在使用ajax调用脚本。我想在页面上显示脚本执行的进度。

我的意思是我想逐步在div中显示以下消息:

//after execution of section 1
Section 1 of script executed successfully.
//after execution of section 2
Section 2 of script executed successfully. 
//after execution of last section
Script execution complete.

我正在使用的方法是在完全执行脚本后才显示所有3条消息。

var script1_ajax = new XMLHttpRequest();

    script1_ajax.onreadystatechange=function() {            
        if (script1_ajax.readyState==4 && script1_ajax.status==200) {

            document.getElementById('result').innerHTML = script1_ajax.responseText;

        }
    }

我不想将我的脚本分成多个脚本。

请建议如何执行此操作。

1 个答案:

答案 0 :(得分:3)

有各种技术可以保持与服务器的连接打开并从该连接获得临时更新,这些技术采用集体术语“彗星”which is described here。长轮询,带有分块的隐藏iframe,某些浏览器上的XHR等。其中一个或多个可能对您有用。请注意,不同的技术适用于不同的浏览器,每种技术都有好处和缺点。

我们可以依赖web sockets几年后情况会好转,但是现在除非您可以限制使用您的网站/应用程序the few browsers that currently support them,否则这不是一个选择。< / p>