*仅*在数据库表更改时刷新 html 页面部分(添加行)
Posted
技术标签:
【中文标题】*仅*在数据库表更改时刷新 html 页面部分(添加行)【英文标题】:Refresh html page sections *only* upon database table change (row addition) 【发布时间】:2018-09-21 18:01:08 【问题描述】:我有一个网站供用户下注。
每次用户下注时,都会在 mysql 表中插入一个新行。 我想找到一种方法来仅在用户下注时(在插入行时)刷新 html 页面部分(不是整个页面)。
例如,如果用户 A 添加了一个赌注,则在其浏览器中打开页面的每个其他用户(用户 B、用户 C、... 用户 N)都将刷新他们的页面部分。
每秒运行一次 ajax 调用会给服务器增加过多的开销,最终导致服务器挂起(我们已经尝试过)。
Ajax 中是否有我缺少的技术?我们正在使用 php、MySQL、jQuery。
angularJS、nodeJS 等框架呢,有没有更好的实现我想做的事情?
提前感谢您的建设性积极意见。
【问题讨论】:
你要查找WebSockets 【参考方案1】:是的,您可以使用 nodejs 和 socket.io 来实现您的目标...
当一个新的赌注插入您的数据库时,创建一个套接字连接并触发一个事件给客户端,这是我为您创建的一个示例https://github.com/atikassam/mysql-express-socket-example
【讨论】:
例如,如果用户 A 添加投注,则在其浏览器中打开页面的所有其他用户(用户 B、用户 C、...用户 N)都将刷新其页面部分。它会像这样工作吗? 是的,您必须为每个用户创建一个套接字连接,然后在添加新投注后,向所有套接字发出事件以通知您的投注已更新并且现在在客户端-一边,当触发相同的事件时更新您的数据表...【参考方案2】:<input type="button" value="Refresh Page" onClick="window.location.reload()">
你可以试试这个。
【讨论】:
OP 希望刷新页面的各个部分,而不是整个页面。以上是关于*仅*在数据库表更改时刷新 html 页面部分(添加行)的主要内容,如果未能解决你的问题,请参考以下文章