我正在编写视频cms,希望我的所有用户在进入时立即显示新资源。 如果我是对的,Facebook会实时更新其版面。因此,当我向朋友发布信息时,它会立即显示在他的墙上。他们说,实时网络。 我想知道你是怎么做到的?不是客户端 - 服务器通信技术,而是服务器上发生的事情。 我理解观察者模式的原理。 但是,隔离墙实际上是对消息表的查询。 观察者如何知道用户感兴趣的查询? 它是否包含所有连接用户的所有查询,并在新内容出现时重新运行。 我相信Google-realtime的工作方式也是如此。 谢谢你帮助我。
答案 0 :(得分:1)
当您打开Facebook时,请在浏览器中打开脚本时间线,以查看页面上正在执行的脚本。您会注意到每秒都会执行几次轮询脚本。因此,页面每秒查看缓存几次,以查看是否有可显示的新信息。
http://www.ajaxwith.com/Poll-vs-Push-Technology.html - 这应该会为您提供有关该主题的背景信息。
答案 1 :(得分:1)
Facebook使用AJAX和JavaScript计时器,在后台轮询以查找任何已更改的内容。其他网站使用相同类型的功能来更新页面中嵌入的股票报价等。它不会立即真正更新,它会随着JavaScript计时器点击其服务器而频繁更新。这是因为Web浏览器使用HTTP,这是一种请求/响应协议。浏览器不会显示任何不是对浏览器发起的请求的直接响应的内容;没有办法只通过网络服务器将内容直接发送到浏览器。