微信小程序性能优化之checkSession的使用


Posted in Javascript onMarch 06, 2019

一直发现小程序好慢,尤其是第一次打开的时候。因为第一次会涉及到登录的授权,官方文档是这么说的:

通过 wx.login() 获取到用户登录态之后,需要维护登录态。开发者要注意不应该直接把 session_key、openid 等字段作为用户的标识或者 session 的标识,而应该自己派发一个 session 登录态(请参考登录时序图)。

所以后台存储了一个session标识,和微信的session_key 是独立的。而且业务自身的session也有设置有效期,和微信的session_key 是一致的。

我们的业务处理流程是:

1、前端检测有无session,没有的话wx.login(),获取session_key 。
2、通过session_key 调用后台接口,换取session。
3、前端缓存session。
4、如果前端检测有session,调用wx.checkSession(),判断session_key 有效期,然后请求业务CGI。

上面有个问题,只要成功获取session_key后,后续的请求都会先调用wx.checkSession()来判断它的有效期。但是wx.checkSession()是一个耗时的过程,有没有必要每次请求CGI都去校验呢?

微信小程序性能优化之checkSession的使用

因为session也存在有效,一旦我们请求业务的CGI后台判断登录态失效了,那么前端可以根据后台返回的错误码来判断是否重新登录。

所以就没有必要每次wx.checkSession,而且wx.checkSession几乎是没有用的到必要,因为登录态可以由我们业务维护,一旦失效,wx.login()重新换回一个session_key 就ok了嘛。

结论是:wx.checkSession几乎没有必要调用,而且他本身耗时,长达300+ms。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用YUI做了个标签浏览效果
Feb 20 Javascript
延时重复执行函数 lLoopRun.js
May 08 Javascript
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
Aug 19 Javascript
对采用动态原型方式无法展示继承机制得思考
Dec 04 Javascript
js 实现css风格选择器(压缩后2KB)
Jan 12 Javascript
js选取多个或单个元素的实现代码(用class)
Aug 22 Javascript
14个有用的Jquery技巧分享
Jan 08 Javascript
Bootstrap每天必学之前端开发框架
Nov 19 Javascript
微信小程序 两种为对象属性赋值的方式详解
Feb 23 Javascript
react系列从零开始_简单谈谈react
Jul 06 Javascript
JavaScript中严格判断NaN的方法
Feb 16 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
Aug 04 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
Mar 06 #Javascript
移动端(微信等使用vConsole调试console的方法
Mar 05 #Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
Mar 05 #Javascript
深入理解Puppeteer的入门教程和实践
Mar 05 #Javascript
[jQuery] 事件和动画详解
Mar 05 #jQuery
Vue 事件处理操作实例详解
Mar 05 #Javascript
Vue插槽原理与用法详解
Mar 05 #Javascript
You might like
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
php编程每天必学之验证码
2016/03/03 PHP
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
vue-cli 使用vue-bus来全局控制的实例讲解
2018/09/15 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
2016/08/30 Python
Python 判断奇数偶数的方法
2018/12/20 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
利用Python产生加密表和解密表的实现方法
2019/10/15 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
jupyter 导入csv文件方式
2020/04/21 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
物业管理员岗位职责范文
2013/11/25 职场文书
《在山的那边》教学反思
2014/02/23 职场文书
品质口号大全
2014/06/17 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
离婚协议书范本2014
2014/10/27 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
西安兵马俑导游词
2015/02/02 职场文书
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS