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();
}
二、内容在总结中
legend3---18、第一阶段代码完成的更多相关文章
- UBoot启动代码第一阶段流程
http://blog.csdn.net/xautfengzi/article/details/7470134 前段时间了看了UBoot的源码,放了一段时间之后忘得差不多了.现做一些注释,方便以后温习 ...
- uboot 2013.01 代码简析(2)第一阶段初始化
uboot执行"make smdk2410_config"之后就可以进行编译了,可以执行make命令进行编译, 因为整个输出太长,我仅仅列出部分最关键的输出(部分我不关心的内容直接 ...
- [原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇)
原文:[原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇) .NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇) 前言:接着上篇来. 系列文章链接: [ ...
- 用kotlin方式打开《第一行代码:Android》之开发酷欧天气(1)
参考:<第一行代码:Android>第2版--郭霖 注1:本文为原创,例子可参考郭前辈著作:<第一行代码:Android>第2版 注2:本文不赘述android开发的基本理论, ...
- 王译潇20162314 实验报告三plus结对编程四则运算第一阶段
北京电子科技学院BESTI实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 王译潇 学号:20162314 指导教师:娄佳鹏老师.王志强老师 实验日期:2017年5月12号 实验密级: 非 ...
- 回味经典——uboot1.1.6 之 第一阶段
转自:http://blog.csdn.net/lizuobin2/article/details/52054293 最近打算移植一个比较新的 uboot 到开发板,回想起来上一次移植 uboot1. ...
- 用 Flask 来写个轻博客 (37) — 在 Github 上为第一阶段的版本打 Tag
Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 第一阶段结语 打 Tag 前文列表 用 Flask 来写个轻博客 (1 ...
- JAVA学习第一阶段(1)
java入门第一阶段 1.在java中接受并保存用户输入的值: (1)import java.util.Scanner//引入包 (2)Scanner input=new Scanner (Syste ...
- HTML5 & CSS3初学者指南(1) – 编写第一行代码
介绍 网络时代已经到来.现在对人们来说,每天上网冲浪已经成为一种最为常见的行为. 在网页浏览器中输入一段文本地址,就像http://www.codeproject.com,等待一下,网页就加载到浏览器 ...
随机推荐
- hive四种排序
order by order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间. set h ...
- Spring Boot 揭秘与实战之RabbitMQ
Spring Boot 整合 RabbitMQ Spring Boot 整合 RabbitMQ 是非常容易,只需要两个步骤. 首先,在 pom.xml 中增加 RabbitMQ 依赖. <dep ...
- Android笔记(十八) 下拉列表(Spinner)
App中常用的控件——下拉列表(Spinner),提供特定选择供用户选择 Spinner每次只能选择一个部件,它的选项来自于与之相关联的适配器(apater)中. MainActivity.java ...
- null和空的区别
python中None和Null的区别 首先了解python对象的概念 python中,万物皆对象,所有的操作都是针对对象的. 那什么是对象?5是一个int对象,‘oblong’是一个str对象,异常 ...
- 二叉树遍历(非递归版)——python
二叉树的遍历分为广度优先遍历和深度优先遍历 广度优先遍历(breadth first traversal):又称层次遍历,从树的根节点(root)开始,从上到下从从左到右遍历整个树的节点. 深度优先遍 ...
- Usages for IntelliJ & Eclipse
IntelliJ ⌘E Select a recently opened file from the list. ⌘/ (left command + /)⌥⌘/ (right command + / ...
- MyBatis 3.0_[tp-24-25]_映射文件_参数处理_#与$取值区别_#{}更丰富的用法
笔记要点出错分析与总结 /**================Mybatis参数值的获取:#和$符号的区别=============== * #{}:可以获得map中的值或者pojo对象属性的值; * ...
- LightOJ-1008-Fibsieve`s Fantabulous Birthday(推公式)
链接: https://vjudge.net/problem/LightOJ-1008 题意: Fibsieve had a fantabulous (yes, it's an actual word ...
- Codeforces Round #555 (Div. 3) C1,C2【补题】
D1:思路:L,R指针移动,每次选最小的即可. #include<bits/stdc++.h> using namespace std; #define int long long #de ...
- 把hdfs数据写入到hbase表
功能:把hdfs上的数据写入到hbase表. hadoop的mapreduce输出要导入到hbase表,最好先输出HFile格式,再导入hbase,因为HFile是hbase的内部存储格式,所以导入效 ...