【问题标题】:How to prevent my browser from showing "waiting for MyHostName" message during ajax Post/Get operation?如何防止我的浏览器在 ajax Post/Get 操作期间显示“等待 MyHostName”消息?
【发布时间】:2011-07-08 19:06:07
【问题描述】:

当您使用 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 push 模块)。它不会立即接收数据,而是等待数据发布到通道。在这段时间内(可能需要长达 15 分钟),Chrome 会在窗口的左下方显示“等待我的主机名”,并且还会显示 Ajax Loader 圆圈。我不希望它们不在 Chrome 中显示,但也不在任何其他浏览器中显示,我不知道该怎么做...

附言

顺便说一句,我知道谷歌文档使用相同的方案,但他们的网站如何导致浏览器不显示消息。有什么建议吗?

【问题讨论】:

  • 恕我直言,这是个坏主意。如果一个网页可以控制,我的浏览器给出的状态信息,我可以在不让他知道的情况下将大量数据下载到用户的 PC 上。 My Operas 默认设置甚至不允许更改状态栏内容。也没有任何其他“奇怪”的脚本操作,例如替换上下文菜单或更改窗口大小……我是用户 - 并且它是我的浏览器,所以让他告诉我发生了什么!
  • 浏览器显示页面上有一些活动,当没有活动时......

标签: javascript html ajax browser google-chrome


【解决方案1】:

你试过设置window.status吗?虽然我不确定我会推荐它,但它可能会做你想要的。请务必在适当的时候重置状态。

【讨论】:

    【解决方案2】:

    与以下帖子相比,我找到了解决问题的方法

    How do I implement basic "Long Polling"? Sending messages to server with Comet long-polling Browers entering "busy" state on Ajax request

    我的问题是我在我的页面实际加载之前开始了长轮询 ajax 请求,这一事实阻止了浏览器“等待”状态...

    在页面完全加载后开始您的长轮询过程...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-11
      • 2011-02-10
      相关资源
      最近更新 更多