微信小程序性能优化之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 相关文章推荐
ajax 文件上传应用简单实现
Mar 03 Javascript
JavaScript 精粹读书笔记(1,2)
Feb 07 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
Jul 03 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
May 11 Javascript
js中浮点型运算BUG的解决方法说明
Jan 06 Javascript
input点击后placeholder中的提示消息消失
Jan 15 Javascript
Vue-router 类似Vuex实现组件化开发的示例
Sep 15 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
Mar 06 Javascript
JavaScript闭包原理与用法实例分析
Aug 10 Javascript
nuxt中使用路由守卫的方法步骤
Jan 27 Javascript
详解在网页上通过JS实现文本的语音朗读
Mar 28 Javascript
JS+css3实现幻灯片轮播图
Aug 14 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计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
js定时器实例分享
2016/12/20 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
vue如何使用rem适配
2021/02/06 Vue.js
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
python中kmeans聚类实现代码
2018/02/23 Python
python with (as)语句实例详解
2020/02/04 Python
在python中求分布函数相关的包实例
2020/04/15 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
python计算auc的方法
2020/09/09 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
《我的信念》教学反思
2014/02/15 职场文书
运动与健康自我评价
2015/03/09 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
pytorch显存一直变大的解决方案
2021/04/08 Python