legend3---18、第一阶段代码完成

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();
  }

二、内容在总结中

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/11885062.html