无论如何,jQuery会向用户弹出一条消息,告知他们所在的数据库记录是否已更改,是否需要刷新以获取更改?
所以基本上,如果他们正在查看记录,请离开然后回来,向用户显示您当前正在查看的记录已更改的消息 - 请刷新。
感谢。
答案 0 :(得分:3)
当然,这个网站就是这样做的。
大致如何运作:
一些警告:
或者,您可以查看Comet,这在技术上更加困难,需要大量的服务器设置/系统管理员类型知识才能正常工作。
答案 1 :(得分:0)
是的,这是可能的,但你需要很多部分:
首先,一些服务器端代码可以检查记录是否已更新。如果没有关于您正在工作的环境的更多信息,我真的无法向您提供有关此步骤的任何信息。
其次,您需要使用jQuery's ajax features每隔一段时间从页面发送一个ajax请求。在该ajax请求的回调函数中,您可以检查ajax响应是否表示记录已更新。
第三,您只需要决定如何让用户知道记录已更改。你可以简单地在页面的某个地方插入一些文字,或者你可以想象并创建某种对话来让他们知道。或者,如果您愿意,您甚至可以为它们刷新页面,而不是告诉它们已经更新了。
这样的事情:
function checkForUpdates() {
$.getJSON('/theUrlForUpdateChecker', { record_id: 23 }, function(json) {
if (json.isRecordUpdated) {
var message = 'The record has been updated, please refresh the page';
$('#notificationArea').text(message);
}
});
}
//execute it every 60 seconds (60000 milliseconds):
setInterval(checkForUpdates, 60000);
为了简单起见,我使用了setInterval,但为了节省资源的利益,你可能想要反复使用setTimeout,并在知道记录更新后停止检查更新。