分帧加载
2017-02-09 19:14:29 0 举报
分帧加载是一种优化网页性能的技术,它将页面的内容分成若干个较小的部分(帧),然后逐个加载这些帧。这样,即使网络连接较慢,用户也能在较短的时间内看到页面的部分内容,从而提高用户体验。同时,分帧加载还可以减轻服务器的负担,因为它允许服务器在发送完一个帧后,立即开始发送下一个帧,而不是等待整个页面的所有内容都准备好后再发送。此外,分帧加载还可以提高页面的可访问性,因为它允许搜索引擎和辅助技术(如屏幕阅读器)更快地解析和处理页面内容。总之,分帧加载是一种有效的网页优化策略,它可以提高页面的性能、可访问性和用户体验。
作者其他创作
大纲/内容
Y
客户端
Msg Agent
提醒后台
4.收到0xcf9请求NotifyReqappid 10002user_id 1-提醒项idtimer_key 1-提醒项id
SSO
N
Web全部提醒页
手Q用户
任务模块
任务id+uin列表+业务pb数据
获取上次设置日期day = get day_key
请求一次推送
tRPC服务
提醒Push模块1.组装PAElem结构体重的系统通知消息SystemNotify结构体(用于Apple Push)2.组装0x118业务消息结构体,携带任务id,业务json数据3. 调用0x2d0_280下发push消息
业务后台
同步订阅结果
返回错误,超过今日上限
redismsg_id
管理页面1. 业务注册2. 任务发布3. 任务审核
下发提醒
NoticeSubscribeServer用户订阅提醒消息接口,供业务调用
推送
10002为qq提醒的业务iduser_id 设置定时请求的用户idtimer_key 定时器的唯一标识
b. 先用提醒id获取发布数据GetPublishDataFromCkv获取业务账号数据GetAccountDataFromCkv做域名校验检查客户端产生订阅的域名是否符合业务注册的域名
获取业务对uin的推送够次数hget count_key uin
发布服务
检查是否订阅
NoticeTaskServer进行该发布提醒项的所有订阅用户的PUSH 通知处理
日期是否是当天day == curr_day?
2.2检查是否是合法账号Get检查是否是业务管理员GetManager添加操作员AddOperator
定时服务
Subs_logic
uin1uin2uin3...
循环提醒
业安串行接口
6.查询提醒的发布数据PubPublishData查询设置提醒的push状态PubPushStat CKV+DB
Node CGI
123平台管理下的容器集群
NoticeOidbServer封装使用到的Oidb v2服务接口
2.3增删查改PublishDataToDb t_publish
CDB
c. 订阅提醒Add删除提醒DelAck提醒Ack
大于等于限定值?
d. 先用提醒id获取发布数据GetPublishDataFromCkv Wallet::kPubNoticeInfo + id获取用户历史订阅GetSubItemListFromCkv修改用户订阅数据SetSubItemListFromCkv Wallet::kSubItemList + uin
业务订阅页面通过客户端提供的js api
NoticeTimerServer接收分布式定时器回调通知,接收到通知后根据配置转发给srf服务进行处理
终端接入服务
提醒任务模块1.从ckv获取任务数据2.检查任务是否已过审3. 从ckv获取用户订阅任务列表 检查是否包含该任务id4. 检查用户提醒开关5. 校验业务pb数据,转为json
柔性忽略
NoticeAccessServer终端接入模块
业务推送uin列表
提醒服务
定时提醒
9. 下发提醒PushSend
REDIS
CKV
NoticePublishServer业务发布提醒消息服务
1.业务运营2.审核人员
3
Push服务
管理页面http://tixing.oa.com/
推送模块
北极星寻址
数据存储
8.0x5eb 802获取用户是否关闭提醒标志位uint32_notice_flag如果提醒没有关闭 才下发通知
e. 将订阅该提醒的uin列表写入redisAddSubUinToRedis
返回结果,允许推送
频率限制
NoticePushServer提醒消息PUSH下发
推送数+1hincrby count_key uin 1
3.SetNoticeTask创建定时器CreateTimer appid = 1删除定时器DelTimer
删除推送计数del count_key重置日期set day_key curr_day
新旧版本控制
a. 用户进行订阅
write
订阅拉取
2.3增删查改PublishDataToCkv Wallet::kPubNoticeInfo + id
7.从Redis中取出业务的订阅用户uin一次10000个
Redis
2.1检查是否是审核人员GetAuditor
超时忽略+柔性开关
Notice_logic
mysql
提醒数据层
2
1
不存在或者获取失败,均拒绝下发
CKV+REDIS订阅数据
NoticeAccountServer 业务账号管理
Get
订阅服务
NoticeScanServer任务调度服务,循环查询待处理提醒任务,下发漏发的任务,0.5秒检查一次
Oidb
1.发布提醒审核提醒
SSO Proxy织云包MQQ_AsyncSrfProxyServer
10. 0xd20 280msgtype0x210::submsgtype0x118批量S2C系统消息下发
标记为失败
NoticeAdminServer 审核账号管理
提醒逻辑层
接入层
终端
read
是否取到值?
客户端1. 根据任务id获得任务相关数据2. 解析业务json串获得当次提醒业务数据3. 展示提醒
5.定时器到期通知Notifyappid 1user_id 提醒项idtimer_key 提醒项id
NoticeOidbv3Server封装使用到的Oidb v3服务接口0xcb8appid 10002user_id 1-提醒项idtimer_key 1-提醒项id
推送0x210系统消息
0 条评论
回复 删除
下一页