微信小程序性能优化之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 相关文章推荐
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
Mar 09 Javascript
javascript prototype原型操作笔记
Dec 07 Javascript
js判断生效时间不得大于失效时间的思路及代码
Apr 23 Javascript
如何减少浏览器的reflow和repaint
Feb 26 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
Jun 19 Javascript
JavaScript中的this机制
Jan 30 Javascript
angularjs实现首页轮播图效果
Apr 14 Javascript
详解node-ccap模块生成captcha验证码
Jul 01 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
Jan 20 Javascript
vue实现模态框的通用写法推荐
Feb 26 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
Sep 11 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
Sep 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
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
php 冒泡排序 交换排序法
2011/05/10 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
ThinkPHP之R方法实例详解
2014/06/20 PHP
php判断GIF图片是否为动画的方法
2020/09/04 PHP
php创建session的方法实例详解
2015/01/27 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
document.documentElement && document.documentElement.scrollTop
2007/12/01 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
2018/01/26 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
python内置模块collections知识点总结
2019/12/19 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
好的自荐信包括什么内容
2013/11/07 职场文书
党员组织关系介绍信
2014/02/13 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
公安机关起诉意见书
2015/05/20 职场文书
培训计划通知
2015/07/15 职场文书