【问题标题】:how to update the page without refresh如何在不刷新的情况下更新页面
【发布时间】:2011-06-15 17:39:30
【问题描述】:

Gmail中收到新邮件时,页面自动显示邮件而不刷新,怎么办?

【问题讨论】:

    标签: ajax


    【解决方案1】:

    您可以使用window.setInterval 函数定期向服务器发送 AJAX 请求,检查是否有更新:

    window.setInterval(function() {
        // this code will execute on every 5s
        // so we could send an AJAX request to verify if we
        // have new data. Example with jQuery:
        $.getJSON('/foo', { }, function(result) {
            if (result.newItems) {
                // TODO: update the DOM with the items
            }
        });
    }, 5000);
    

    另一种可能性是使用HTLM5 WebSocket API,它允许服务器将更新推送到客户端,而不是客户端轮询更新。

    【讨论】:

    • 嗨,但是为什么我看不到使用 firebug 的请求记录,如果 gmail 使用 setInteral 每秒执行一个请求?而且,如果我们想做一个 ajax 请求,就必须有一个触发器,对吧?
    • 你能在Net标签中看到它吗?
    【解决方案2】:

    这是通过使用 ajax 完成的。巧合的是,这个问题被标记为“ajax”。

    来自维基百科:http://en.wikipedia.org/wiki/Ajax_(programming)

    “Ajax(发音为 /ˈeɪdʒæks/;异步 JavaScript 和 XML 的简写)[1] 是一组相互关联的 Web 开发方法,用于在客户端创建交互式 Web 应用程序。使用 Ajax,Web 应用程序可以从服务器在后台异步,不干扰现有页面的显示和行为。通常使用 XMLHttpRequest 对象检索数据。尽管名称如此,但不需要使用 XML,请求也不必是异步的。[2] "

    【讨论】:

    • 你好,如果gmail使用ajax,firebug中肯定有一些请求记录,但没有。
    【解决方案3】:
    【解决方案4】:

    你说的是 AJAX XMLHTTPRequest 在 wiki 上搜索 jQuery 和 ajax,现在它不像 4-5 年前那么难播种东西,那时我们使用隐藏的 iframe 来在线模拟桌面应用程序行为。

    这是一个开始点: http://api.jquery.com/jQuery.ajax/

    这是主要思想: http://www.w3.org/TR/XMLHttpRequest/

    【讨论】:

      猜你喜欢
      • 2017-03-24
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      • 2019-11-25
      • 2017-12-21
      • 2021-09-14
      • 1970-01-01
      • 2011-09-01
      相关资源
      最近更新 更多