legend3---18、第一阶段代码完成
一、总结
一句话总结:
看起来麻烦或者自己因为厌烦不想做的,其实硬着头皮来做,一下子就做完了
1、layer_mobile的loading层和关闭loading层?
layer.open({type: 2});//loading层
layer.closeAll('loading'); //关闭加载层
2、页面绕过缓存强制刷新?
location.reload(true)
3、js中判断一个变量是否定义?
typeof(var1) == "undefined"
4、用户未读的消息部分该如何做?
要创建一个用户未读消息表(用于放具体的未读消息的情况),用户具体统计各种未读消息的数量
用户表里面只需要有总的未读消息数量,个人板块未读消息数量
5、系统推送消息如何实现?
系统消息表:有一个系统推送消息表(里面是记录系统的所有推送消息)
系统发一条消息,就给所有人的未读系统消息字段增加一条,这样方便统计总的未读消息
系统消息表:有一个系统推送消息表(里面是记录系统的所有推送消息)
系统消息表的id存缓存:消息推送表的最大id可以存在缓存中,这样可以避免频繁去查数据库就知道是否有更新了
用户记录已读到的系统消息的id:用户表里面用户加上 已读到的系统消息的id字段(未读的消息就是id比这个大的)
用户检测是否有系统消息:每次用户登录或者进入主页,就 来看用户是否有未读的系统推送的消息
----
也可以系统发一条消息,就给所有人的未读系统消息字段增加一条,这样方便统计总的未读消息
6、打开个人中心,个人中心的消息 已读怎么解决?
先取数据然后更新为已读,这样下次取数据的时候就是已读状态
比如视频评论数据,就是在取数据之后,就设置为已读
7、(页面顶端的)用户的未读消息数量怎么做(session里的用户信息总是在控制器操作之后)?
用延迟更新算法
//如果不是访客,就更新未读消息数量 if(!$is_visit){ //这里是延迟延迟更新算法 //1、如果上一次有数据,就减去上一次的数据 if($user1->unread_2_my_num_minus){ $user1->unread_2_num-=$user1->unread_2_my_num_minus; $user1->unread_2_my_num-=$user1->unread_2_my_num_minus; if($user1->unread_2_num<0) $user1->unread_2_num=0; if($user1->unread_2_my_num<0) $user1->unread_2_my_num=0; $user1->unread_2_my_num_minus=0; } //2、如果这一次有数据,就把这一次的数据放到上一次的变量里面 if($user1->unread_2_my_num){ $user1->unread_2_my_num_minus=$user1->unread_2_my_num; } $user1->save(); }