微信小程序性能优化之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 相关文章推荐
css3元素简单的闪烁效果实现(html5 jquery)
Dec 28 Javascript
jQuery中:selected选择器用法实例
Jan 04 Javascript
文字垂直滚动之javascript代码
Jul 29 Javascript
如何判断Javascript对象是否存在的简单实例
May 18 Javascript
判断数组是否包含某个元素的js函数实现方法
May 19 Javascript
AngularJS轻松实现双击排序的功能
Aug 30 Javascript
再谈javascript常见错误及解决方法
Sep 16 Javascript
学习vue.js计算属性
Dec 03 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
Dec 24 Javascript
Js利用Canvas实现图片压缩功能
Sep 13 Javascript
Vue中$refs的用法详解
Jun 24 Javascript
vue穿梭框实现上下移动
Jan 29 Vue.js
详解在微信小程序的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中显示格式化的用户输入
2006/10/09 PHP
PHP调用三种数据库的方法(1)
2006/10/09 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
php服务器的系统详解
2019/10/12 PHP
Javascript 复制数组实现代码
2009/11/26 Javascript
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
JS中图片压缩的方法小结
2017/11/14 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
2020/10/02 Javascript
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python计算程序运行时间的方法
2014/12/13 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
python方法生成txt标签文件的实例代码
2018/05/10 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
sealed修饰符是干什么的
2012/10/23 面试题
冬季安全检查方案
2014/05/23 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
2015年档案室工作总结
2015/05/23 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
分享python函数常见关键字
2022/04/26 Python
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers