微信小程序性能优化之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 相关文章推荐
htm调用JS代码
Mar 15 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
Oct 20 Javascript
深入探寻javascript定时器
Jan 02 Javascript
javascript判断网页是关闭还是刷新
Sep 12 Javascript
利用node.js爬取指定排名网站的JS引用库详解
Jul 25 Javascript
在nginx上部署vue项目(history模式)的方法
Dec 28 Javascript
CSS3 动画卡顿性能优化的完美解决方案
Sep 20 Javascript
vue ssr 实现方式(学习笔记)
Jan 18 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 jQuery
微信小程序 WXML节点信息查询详解
Jul 29 Javascript
layui异步加载table表中某一列数据的例子
Sep 16 Javascript
如何利用js在两个html窗口间通信
Apr 27 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中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
jQuery 学习 几种常用方法
2009/06/11 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
Python虚拟环境项目实例
2017/11/20 Python
详解python分布式进程
2018/10/08 Python
详解Python用三种方式统计词频的方法
2019/07/29 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
Pycharm安装python库的方法
2020/11/24 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
浅谈html5 响应式布局
2014/12/24 HTML / CSS
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
如何开启linux的ssh服务
2015/02/14 面试题
酒店前厅员工辞职信
2014/01/08 职场文书
学生会主席竞聘书
2014/03/31 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
2015年幼儿园学期工作总结
2015/05/22 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书