微信小程序性能优化之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 autocomplete自动完成插件的的使用方法
Aug 07 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 Javascript
使用jquery实现图文切换效果另加特效
Jan 20 Javascript
jquery 多行文本框(textarea)高度变化
Jul 03 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
Jul 18 Javascript
jquery.ui.draggable中文文档(原文翻译)
Nov 15 Javascript
javascript实现判断鼠标的状态
Jul 10 Javascript
浅谈js里面的InttoStr和StrtoInt
Jun 14 Javascript
JS+CSS3实现超炫的散列画廊特效
Jul 16 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
Aug 27 Javascript
layui前端框架之table表数据的刷新方法
Aug 17 Javascript
彻底揭秘keep-alive原理(小结)
May 05 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
收音机术语解释
2021/03/01 无线电
用PHP实现验证码功能
2006/10/09 PHP
php IP及IP段进行访问限制的代码
2008/12/17 PHP
smarty中post用法实例
2014/11/28 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
Yii2 queue的队列使用详解
2019/07/19 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
js跳转页面方法总结
2014/01/29 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
javascript实现简单的全选和反选功能
2016/01/05 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
在Django的session中使用User对象的方法
2015/07/23 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
python实现一个简单的并查集的示例代码
2018/03/19 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
幸福家庭事迹材料
2014/02/03 职场文书
员工晚婚的请假条
2014/02/08 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
抗震救灾标语
2014/06/26 职场文书
合作协议书范文
2014/08/20 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
Python实现双向链表基本操作
2022/05/25 Python