微信小程序性能优化之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 相关文章推荐
jQuery 可以拖动的div实现代码 脚本之家修正版
Jun 26 Javascript
JQuery解析HTML、JSON和XML实例详解
Mar 29 Javascript
jquery搜索框效果实现方法
Jan 16 Javascript
浅谈javascript原型链与继承
Jul 13 Javascript
跟我学习javascript的定时器
Nov 19 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
Mar 14 Javascript
原生JS实现层叠轮播图
May 17 Javascript
基于Vue的ajax公共方法(详解)
Jan 20 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
Jun 07 Javascript
layui实现数据表格隐藏列的示例
Oct 25 Javascript
EXTJS7实现点击拖拉选择文本
Dec 17 Javascript
分享几个JavaScript运算符的使用技巧
Apr 24 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 和 XML: 使用expat函数(二)
2006/10/09 PHP
15种PHP Encoder的比较
2007/03/06 PHP
PHP strtotime函数详解
2009/12/18 PHP
PHP如何利用P3P实现跨域
2013/08/24 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
RequireJs的使用详解
2017/02/19 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
js实现3D旋转相册
2020/08/02 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
[04:42]2015国际邀请赛CDEC战队晋级之路
2015/08/13 DOTA
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
初步探究Python程序的执行原理
2015/04/11 Python
Python中内建函数的简单用法说明
2016/05/05 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
浅析NumPy 切片和索引
2020/09/02 Python
python获取linux系统信息的三种方法
2020/10/14 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
标准化管理实施方案
2014/02/25 职场文书
高三励志标语
2014/06/05 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2015年元旦标语大全
2014/12/09 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书
JavaScript 反射学习技巧
2021/10/16 Javascript
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL