我正在运行php / mysql,并且有一个非常复杂的html表,每个单元都可以编辑。其中一些只是文本,而点击其他单元格会显示选择菜单,单选按钮等。
当用户在表格中进行更改时,所有其他用户都需要刷新浏览器以查看更改。
1) 是否有一种简单的方法可以让我的桌子可以推动#34; pushable"所以当编辑单元格时,新内容会显示给其他用户吗?
或
2) 我可以每隔一分钟运行一次javascript,以便在后台获取最新内容并将其与当前页面进行比较,如果有任何更改,请执行更新吗?
感谢你的想法
答案 0 :(得分:0)
您描述的第一种方法称为WebSockets。 WebSocket允许客户端和服务器之间的双向通信。它们使用消息进行通信,有效负载通常作为JSON传递。客户端(进行更新)将向服务器发出一条消息,说明该表已随更新一起更新。然后,更新将被广播到所有其他客户端,然后他们将重新呈现该表。
您描述的第二种方法称为轮询,其中在setInterval
/ setTimeout
内定期发出Ajax请求。
我现在总是尝试使用WebSockets。与使用轮询技术相比,开销要小得多。但是,当您使用PHP时,我认为由于PHP会话的锁定性质,第二种选择会更有利。对于WebSockets的支持在PHP中并不出色,您必须使用第三方库,例如Ratchet。