如何在php中创建同步网页,以便数据库更改立即反映在浏览器中?
如何在php中创建同步网页,以便如果数据库发生更改,它会立即反映给在浏览器中查看该页面的用户。数据库是mysql,我使用的是没有框架的普通php 我有一个数据库表来显示旅游包,包可以与多个人共享,现在如果其中任何一个人更改包中的任何内容,如机票预订,这应该立即反映给查看该包的另一个人。我知道这可以通过node和react来实现,但是通过vanilla js和php可以实现吗?如果是这样的话,如果我遗漏了任何明显的东西,请道歉。您可以使用SSE(服务器发送的事件),例如,这里是如何实现它的如何在php中创建同步网页,以便数据库更改立即反映在浏览器中?,php,mysql,Php,Mysql,如何在php中创建同步网页,以便如果数据库发生更改,它会立即反映给在浏览器中查看该页面的用户。数据库是mysql,我使用的是没有框架的普通php 我有一个数据库表来显示旅游包,包可以与多个人共享,现在如果其中任何一个人更改包中的任何内容,如机票预订,这应该立即反映给查看该包的另一个人。我知道这可以通过node和react来实现,但是通过vanilla js和php可以实现吗?如果是这样的话,如果我遗漏了任何明显的东西,请道歉。您可以使用SSE(服务器发送的事件),例如,这里是如何实现它的 是的,
是的,您可以通过AJAX调用使用香草Javascript实现这一点。我会使用jQuery,但您也可以使用香草Javascript,只需研究这些AJAX函数即可 在Javascript中需要3个函数:
json\u encode()
,以便您可以在Javascript端轻松地用$.parseJSON
进行解析如果我这样做的话,我希望使用WebSocket,在WebSocket中,PHP/服务器端向前端(所有客户端)发送一个通知,告知它/它们需要更新其数据。(我假设有一些PHP代码负责更新数据库。)不过,可能有更好的方法可以做到这一点。是的,如果您可以将浏览器与标识符唯一关联,例如让您的用户登录并使用他们的用户ID,则可以针对特定用户。例如,当包更改时发送此信息:
{“uid”:9000,“uName”:“agiHammerTheep”,“cmd”:“updateData”,“data”:“bookingUpdated”,pid:125}
/*通知Agi HammerTheep预订信息已更改;任何不是Agi HammerTheep的客户都将忽略此消息*/您可以使用“长拉”或“每隔30秒拉一次”,但更优雅的方法是使用socket.io传播事件。我建议您看看这两本书,了解一些想法:如果您想走这条路,请参阅。(我并不是说你应该放弃PHP,转而使用Node,[尽管这可能是更容易的途径],而是Node可能会给你一些PHP代码的想法。)“我使用的是没有框架的普通PHP。”这不是你想要做的事情。框架是PHP实用性和功能的基础。如果没有一大堆的工作,核心语言不可能做你想做的事情,我指的是多年的开发人员承诺。不要认为你忽视这些有价值的社区项目是在为自己服务RSSILE,“SSE在一些新的、更性感的通信协议,如WebSoSAPI”中占据了次要地位,所以我应该考虑使用WebSoCube,或者SSE更适合我的目的,谢谢……这是在这里打开的。