当前位置: 首页>前端>正文

MYSQL 监听 锁表 日志 mysql 监听表字段值变化

我正在寻找一种创建简单的HTML表的方法,该表可以在数据库更改事件发生时进行实时更新。特别是添加了新记录。

换句话说,将其视为执行人员仪表板。如果进行了销售并且在数据库中添加了新行(在本例中为MySQL),则网页应使用新行“刷新”表。

我已经看到了有关新EVENT

GATEWAY用法的一些信息,但是所有示例都将Coldfusion用作“推动者”,而不是“消费者”。我想让Coldfusion既将事件更新/推送到网关,又消耗响应。

如果可以结合使用AJAX和CF来完成此操作,请告诉我!

我真的只是想了解从哪里开始实时更新。

先感谢您!!

编辑/所选答案的说明:

我最后给出了@ bpeterson76的答案,因为目前最容易在小规模实现。我非常喜欢他的Datatables建议,这就是我用来实时更新的内容。

但是,随着我的站点变大(希望如此),我不确定这是否是可扩展的解决方案,因为每个用户都将访问“侦听器”页面,然后查询我的数据库。我的查询相对简单,但是我仍然担心将来的性能。

但是我认为,随着HTML5开始成为Web标准,@

iKnowKungFoo建议的Web套接字方法很可能是最好的方法。长时间轮询的彗星也是一个好主意,但是实现起来有点麻烦/似乎还存在一些缩放问题。

因此,让我们希望网络用户开始采用支持HTML5的更现代的浏览器,因为Web套接字是一种相对容易且可扩展的方式来接近实时。

如果您觉得我做错了决定,请发表评论。

最后,这是全部的一些源代码:

Javascript:

注意,这是一个非常简单的实现。

它只是在查看当前数据表中的记录数是否已更改,如果已更改,则更新表并引发警报。生产代码更长,涉及更多。这只是显示了一种接近实时更新的简单方法。

var originalNumberOfRecsInDatatable = 0;
var oTable;
var setChecker = setInterval(checkIfNewRecordHasBeenAdded,5000); //5 second intervals
function checkIfNewRecordHasBeenAdded() {
//json object to post to CFM page
var postData = {
numberOfRecords: originalNumberOfRecsInDatatable
};
var ajaxResponse = $.ajax({
type: "post",
url: "./tabs/checkIfNewItemIsAvailable.cfm",
contentType: "application/json",
data: JSON.stringify( postData )
})
// When the response comes back, if update is available
//then re-draw the datatable and throw an alert to the user
ajaxResponse.then(
function( apiResponse ){
var obj = jQuery.parseJSON(apiResponse);
if (obj.isUpdateAvail == "Yes")
{
oTable = $('#MY_DATATABLE_ID').dataTable();
oTable.fnDraw(false);
originalNumberOfRecsInDatatable = obj.recordcount;
alert('A new line has been added!');
}
}
);
}
Coldfusion:
SELECT COUNT(ID) as total
FROM myTable
{"isUpdateAvail": "Yes", "recordcount": #qCount.total#}
{"isUpdateAvail": "No"}

https://www.xamrdz.com/web/2qd1925108.html

相关文章: