每次请求可以多次向浏览器发送数据吗?例如我的CMS将安装一些模块,我想发送信息到浏览器(下载模块,解包模块,安装模块,...)并更新一些div或东西以获得更好的UI感觉。 也许用flash?
答案 0 :(得分:3)
我在我的网络应用程序中做过类似的事情。 getstatus.php
是一个返回downloading module...
,unpacking module...
之类的文件,由运行所有这些内容的php脚本更新,run.php
。
我在另一个页面load.php
上使用以下javascript代码(使用jQuery)来显示进度:
<script type="text/javascript">
var flag = false;
$(function() {
startProcess();
getStatus();
});
function startProcess() {
$.get('run.php', function() {
flag = true;
window.location = 'example.com/finish.html'; // redirect when finished
});
}
function getStatus() {
$.ajax({
url: 'getstatus.php',
success: function(data) {
// do something with the output of getstatus.php here
}
});
setTimeout("getStatus()",500);
}
</script>
答案 1 :(得分:0)
如果您的操作(下载,安装等)阻止了脚本的执行,您可以简单地在每个脚本之间放置一条消息。 否则,您可以尝试使用Web套接字。
答案 2 :(得分:0)
使用Ajax CORS:
How can I communicate over TCP sockets from JavaScript?
http://remysharp.com/2011/04/21/getting-cors-working/
这是模拟实时通信的技巧。
祝你好运