微信小程序性能优化之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获取复选框被选中的值
Mar 22 Javascript
jquery+easeing实现仿flash的载入动画
Mar 10 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
Nov 01 Javascript
Validform+layer实现漂亮的表单验证特效
Jan 17 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
Aug 23 Javascript
jQuery为DOM动态追加事件的方法
Feb 16 Javascript
基于JavaScript实现瀑布流效果
Mar 29 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
Jun 22 Javascript
微信小程序实现顶部选项卡(swiper)
Jun 19 Javascript
Angular实现下载安装包的功能代码分享
Sep 05 Javascript
详解vue 单页应用(spa)前端路由实现原理
Apr 04 Javascript
详解Vue取消eslint语法限制
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利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
删除重复数据的算法
2006/11/23 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
JavaScript操作XML 使用百度RSS作为新闻源示例
2012/02/17 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
vue随机验证码组件的封装实现
2020/02/19 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
python处理数据,存进hive表的方法
2018/07/04 Python
关于pycharm中pip版本10.0无法使用的解决办法
2019/10/10 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
Gap工厂店:Gap Factory
2017/11/02 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
应聘护士自荐信
2013/10/21 职场文书
大四学年自我鉴定
2013/11/13 职场文书
2013年保送生自荐信格式
2013/11/20 职场文书
幼儿园小班评语
2014/04/18 职场文书
农村门前三包责任书
2014/07/25 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
同意离婚答辩状
2015/05/22 职场文书