我正在使用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;
}
}
我不想将我的脚本分成多个脚本。
请建议如何执行此操作。
答案 0 :(得分:3)
有各种技术可以保持与服务器的连接打开并从该连接获得临时更新,这些技术采用集体术语“彗星”which is described here。长轮询,带有分块的隐藏iframe,某些浏览器上的XHR等。其中一个或多个可能对您有用。请注意,不同的技术适用于不同的浏览器,每种技术都有好处和缺点。
我们可以依赖web sockets几年后情况会好转,但是现在除非您可以限制使用您的网站/应用程序the few browsers that currently support them,否则这不是一个选择。< / p>