像软件安装那种进度条 jQuery有这类插件,但如何对应程序的执行进度?
相关技术就是所谓的 ”Comet“ 或者 ”Server Push“,实现方式有 ”Streaming“ 和 ”Long Polling“,HTML5 下有 ”WebSocket / Server-Sent Eents”。
“Long Polling” 方式下,服务端可以提供一个 URL,然后浏览器通过 JS 访问该地址,保持连接开启直到有新的数据发送或者超时结束,然后浏览器再次发出一个请求。这里面会同时受到浏览器和服务器的限制,所以需要进行一定的适配。如果是 “XHR Streaming” 方式,则一般是服务器保持连接不断然后不停 flush 数据,浏览器依靠 readystate 的值来判断是否有新的数据,这在 IE 下有兼容性问题。Gmail 采用过一个叫做 “Hidden frame/iframe Streaming” 的技术,通过 iframe 接受 <script> 脚本,好处是可以跨域。
readystate
iframe
<script>
网上有很多相关资料,具体 Google 吧,下面列出一些我收集整理的资料。
还有很多,就不一一列举了。我没法告诉你如何具体去做,每个业务需求也不同,但原理都是一样的。
欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。 温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。