如果我的 mysql 数据库中的数据发生更改,我如何触发我的 AJAX
Posted
技术标签:
【中文标题】如果我的 mysql 数据库中的数据发生更改,我如何触发我的 AJAX【英文标题】:how can i trigger my AJAX if my data in my mysql database change 【发布时间】:2020-02-09 03:57:29 【问题描述】:我在刷新 span 标签中的数据时遇到问题。我需要每 5 秒刷新一次 span 标签,因为我的数据库中的数据是动态的,它总是在变化。
现在我在我的 AJAX 中使用 setInterval
。
setInterval(get_value, 5000);
function get_value()
$.ajax(
url: base_url + ""
type: "GET",
dataType: "json",
success: function(data)
//refresh the span tag
,
error: function(jqXHR, textStatus, errorThrown)
alert(errorThrown.message);
);
但我认为这不是正确的方法,因为反应非常不好。有什么方法可以让我使用 Codeigniter 做得更好吗?目前我的想法是这样的,它正在发挥作用,我只是担心我的想法。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:您最好的选择是 Nodejs 和 Socket.Io
好吧,尽管你想用 php 和 AJAX 构建它, 如果你真的这样做的话,我会高度并且会一直高度地使用 Node.js 和 socket.Io 关心更具可扩展性和性能的应用程序。
Node.js 是为类似这样的东西而设计的,不像
AJAX 使用与 Node.js 相关的昂贵的 HTTP 请求。 Nodejs 的另一个优点是它的速度非常快 做多种 I/O 并且是异步的。因此,Node.js 进程是非阻塞的,这有助于使其更快。
Node.js 允许以低内存使用和延迟缓解处理许多持久连接 非常适合处理所有聊天和实时客户消息和呼叫。
有一个用于处理 Nodejs 的库,名为 Socket.Io。这 socket.io 是对 websockets 的抽象,它允许在节点服务器之间传递消息 和网络浏览器
看看吧。他们很有趣。以下是他们的源链接
https://nodejs.org/en/
http://socket.io/
【讨论】:
【参考方案2】:使用 Pusher 将您的数据从服务器端广播到客户端。它使用 websocket 技术。如果更新了特定页面,则数据将发送到推送服务器,并且可以使用 javascript 从您的客户端(显示图表的位置)捕获该数据。
如果你使用 ajax,它会比使用 pusher 消耗更多的带宽。
不喜欢 pusher 的可以选择 Redis、firebase、pubnub。
【讨论】:
以上是关于如果我的 mysql 数据库中的数据发生更改,我如何触发我的 AJAX的主要内容,如果未能解决你的问题,请参考以下文章