当您使用Chrome打开网站时,它会在状态栏中显示一条消息,告诉“等待MyHost名称”,并在选项卡的标题中显示Ajax Loader圈。现在我有以下javascript函数:
function listen_backend_client_requests() {
$.get('/listen?cid=backend_client_requests', // an url to nginx http push channel, http connection stays opened for a long time until the actual data starts to arrive
{},
function(r) {
alert('check');
if (r == 'report_request') {
report_request();
}
listen_backend_client_requests();
}
, 'json');
}
“$ .get(...)”操作是“长轮询”(通过nginx http推送模块)。它不会立即接收数据,而是等待数据发布到通道。在这段时间内(最多可能需要15分钟),Chrome会在窗口的左下角显示“等待我的主机名”,并显示Ajax Loader圈。我不希望它们在Chrome中显示,但在任何其他浏览器中都不显示,我不知道该怎么做...
P.S。
顺便说一下,我知道谷歌文档正在使用相同的方案,但有些网站会导致浏览器不显示该消息。有什么建议吗?
答案 0 :(得分:2)
您是否尝试过设置window.status
?虽然我不确定我会推荐它,但它可能会做你想要的。请务必在适当的时候重置状态。
答案 1 :(得分:0)
与以下帖子相比,我找到了解决问题的方法
How do I implement basic "Long Polling"? Sending messages to server with Comet long-polling Browers entering "busy" state on Ajax request
我的问题是我在实际加载页面之前启动了长轮询ajax请求,这阻止了浏览器“等待”状态......
完全加载页面后,只需启动漫长的投票过程......