【问题标题】:Refresh html page sections *only* upon database table change (row addition)*仅*在数据库表更改时刷新 html 页面部分(添加行)
【发布时间】:2018-09-21 18:01:08
【问题描述】:

我有一个网站供用户下注。

每次用户下注时,都会在 mysql 表中插入一个新行。 我想找到一种方法来仅在用户下注时(在插入行时)刷新 html 页面部分(不是整个页面)。

例如,如果用户 A 添加了一个赌注,则在其浏览器中打开页面的每个其他用户(用户 B、用户 C、... 用户 N)都将刷新他们的页面部分。

每秒运行一次 ajax 调用会给服务器增加过多的开销,最终导致服务器挂起(我们已经尝试过)。

Ajax 中是否有我缺少的技术?我们正在使用 PHP、MySQL、jQuery。

angularJS、nodeJS 等框架呢,有没有更好的实现我想做的事情?

提前感谢您的建设性积极意见。

【问题讨论】:

标签: php jquery mysql angularjs node.js


【解决方案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 希望刷新页面的各个部分,而不是整个页面。
猜你喜欢
  • 1970-01-01
  • 2014-06-24
  • 1970-01-01
  • 1970-01-01
  • 2014-07-14
  • 2011-06-05
  • 2019-09-19
  • 2020-11-16
  • 2011-04-08
相关资源
最近更新 更多