2

我正在使用 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;

        }
    }

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

请建议如何做到这一点。

4

1 回答 1

3

有多种技术可用于保持与服务器的连接打开并从该连接获取临时更新,这些技术采用统称“comet” ,在此处进行了描述。长轮询、带有分块的隐藏 iframe、某些浏览器上的 XHR 等。其中一个或多个可能对您有用。请注意,不同的技术适用于不同的浏览器,每种技术都有优点和缺点。

几年后情况会好很多,那时我们可以依赖网络套接字,但目前这不是一个选择,除非您可以将您的站点/应用程序的使用限制在当前支持它们的少数浏览器中

于 2012-05-23T07:57:53.767 回答