微信小程序性能优化之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 相关文章推荐
30个最好的jQuery 灯箱插件分享
Apr 25 Javascript
网页右侧悬浮滚动在线qq客服代码示例
Apr 28 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
Mar 03 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
Sep 04 Javascript
深入理解Java线程编程中的阻塞队列容器
Dec 07 Javascript
浅谈js中的延迟执行和定时执行
May 31 Javascript
微信小程序 开发之快递查询功能的实现
Jan 09 Javascript
使用vue2.0创建的项目的步骤方法
Sep 25 Javascript
详解使用WebPack搭建React开发环境
Aug 06 Javascript
Node.js系列之安装配置与基本使用(1)
Aug 30 Javascript
jQuery Raty星级评分插件使用方法实例分析
Nov 25 jQuery
Vue 修改网站图标的方法
Dec 31 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无限分类的类
2007/01/02 PHP
PHP nl2br函数 将换行字符转成 <br>
2009/08/21 PHP
详解YII关联查询
2016/01/10 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
Symfony查询方法实例小结
2017/06/28 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
dess中一个简单的多路委托的实现
2010/07/20 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python 实现兔子生兔子示例
2019/11/21 Python
Python time库基本使用方法分析
2019/12/13 Python
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
党员违纪检讨书
2014/02/18 职场文书
现金出纳岗位职责
2014/03/15 职场文书
节能环保口号
2014/06/12 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
电影建党伟业观后感
2015/06/01 职场文书
孕妇病假条怎么写
2015/08/17 职场文书
2015团员个人年度总结
2015/11/24 职场文书
用Python爬取某乎手机APP数据
2021/06/15 Python
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang