【问题标题】:Retrieve Database Value Without Page Load AJAX/PHP/Facebook Style在没有页面加载 AJAX/PHP/Facebook 样式的情况下检索数据库值
【发布时间】:2009-12-19 23:27:11
【问题描述】:

我想知道是否有人可以展示或举例说明 facebook 如何检查其数据库中的新消息?它似乎会定期执行此操作,而无需加载页面。在 PHP/MySQL/Jquery 脚本中实现这一目标的最佳方法是什么?

我们总是感谢任何帮助! 干杯,莉亚

【问题讨论】:

    标签: php jquery mysql ajax facebook


    【解决方案1】:

    你可以这样做:使用periodical updater

    <span id="inbox-title"></span>
    
    
    <script>
    
    $.PeriodicalUpdater('/path/to/service', {
      method: 'get',          // method; get or post
      minTimeout: 1000,       // starting value for the timeout in milliseconds
      maxTimeout: 8000,       // maximum length of time between requests
    
    }, function(data) {
       $('#inbox-title').html('you have ' + data + 'new messages');
    
    });
    
    
    </script>
    

    另一种选择是绑定 onmousemove 事件并在不发生时进行 ajax 调用

    【讨论】:

    • onmousemove 真的不适合那些设计为定期、定时更新的东西。
    【解决方案2】:

    实际上有一个“页面加载”,但它是一个隐藏的请求,不会重新加载显示的页面。查看 jQuery Ajax command documentation,了解有关完成此任务的最简单方法之一的更多详细信息(特别是因为您已经提到使用 jQuery)。

    【讨论】:

      【解决方案3】:

      看看使用 COMET 技术的反向 ajax,这是一个完美的用途。

      它背后的想法是启动一个 ajax 请求并让它超时,可能是 60 秒,当它超时时,再次启动它,这里浏览器与服务器有一个(几乎)持久连接,如果(对于简单示例)为用户创建一条消息。服务器可以回复已发出的挂起 ajax 请求之一(在这种情况下由消息的接收者发出)。

      在 xmlhttprequest 和服务器等待时不会传输任何数据,但关闭和重新打开连接可能会给您的服务器带来负担。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-04
        • 1970-01-01
        • 2015-09-24
        • 1970-01-01
        • 1970-01-01
        • 2015-12-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多