就像在 SO 中回答问题一样,如果有人回答了所述问题,则会出现通知(通过 AJAX?)。我在某种程度上复制这一点的唯一方法是在我的脚本中包含一个超时,如果每 n 秒有一次更新,该超时就会获取。有没有办法在 PHP + Javascript(w/jQuery)上使用观察者模式来做到这一点?
问问题
1703 次
2 回答
2
您必须查看ReverseAJAX或COMET方法。
根据维基百科
反向 Ajax 是指一种 Ajax 设计模式,它使用长寿命 HTTP 连接来实现 Web 服务器和浏览器之间的低延迟通信。基本上,它是一种从客户端向服务器发送数据的方式,也是一种将服务器数据推送回浏览器的机制。
编辑:
我建议您实施以下方法,这很容易实施。我以stackoverflow的回答为例。
- 回答页面加载完成后。发起一个 AJAX 请求(异步,所以它不会阻塞 UI)
- 它会在服务器端寻找任何新的更新(轮询数据库以检查是否添加了任何新答案)
- 如果有更新,则仅将数据返回给浏览器。否则保持冷静。
- 将数据返回给客户端后,客户端应该调用另一个 AJAX 请求并等待更新。
- 在页面生命周期的剩余时间内重复步骤 2 到 4。
希望这可以帮助。
于 2009-10-27T07:55:31.793 回答
0
如果你使用超时来查询服务器的更新,它可能仍然被认为是观察者模式的一种特殊实现。不幸的是,反过来是不可能的。如果服务器完成对主 HTTP 请求的响应,客户端就完成“监听”它。这样做的唯一方法是从客户端发出异步请求。
于 2009-10-27T07:12:02.317 回答