今天我在Facebook上注意到当你进入一个有新功能的页面时他们会如何向你显示通知,但是当你点击关闭后,通知会永远消失。如果您什么都不做,通知将始终存在,如果您单击关闭,则可以清除缓存,更改计算机,注销并再次登录,并且通知将不在那里。
我的问题是,存储该信息的最佳方式是什么?如何存储用户已经看过该通知,以便我不必再显示它?
缓存? 会议? 数据库? 的Javascript?
如何?
答案 0 :(得分:4)
没有自由的想法。
无论您是否检查过通知,他们都可能会保存在数据库中。
答案 1 :(得分:4)
通知队列应保存在数据库中。会话或cookie对此不可靠。
然而,这只是一个假设, I 实现通知界面的方式,但我猜Facebook的实现非常相似。
答案 2 :(得分:1)
您没有太多地看到标签间的通信,但如果使用得当它很棒,并为您的Web应用程序提供了一些很大的优势(例如节省带宽)。
我曾经有一个很好的例子,但我找不到它,所以我会在这里展示一个快速的原型。
我假设你在整个代码中都有jQuery和jQuery Cookie插件。
<script type="text/javascript">
var cookie = document.cookie;
var timer = setTimeout(function(){
if(document.cookie!=cookie){
cookie = document.cookie;
jQuery('#notes').text(jQuery.cookie('notes'));
}
}, 500);
function send(msg){
// update server
/* you usually would do an ajax call here */
// update client tabs
jQuery.cookie('notes', msg);
}
</script>
<div id="notes"></div>
<button onclick="send('Hi');" value="Hi"/>
<button onclick="send('Bye');" value="Bye"/>
在服务器上,他们可能并不真正需要这些通知数据,所以我会猜测内存表(易失性存储) - 它快速有效。如果需要,您也可以将PHP会话设置为使用这些表。无论哪种情况,这里都没有任何神秘或超出这个世界,这是完全正常的技术。