宝哥软件园

微信小程序性能优化——检查会话

编辑:宝哥软件园 来源:互联网 时间:2021-12-13

总是发现小程序太慢了,尤其是第一次打开的时候。因为第一次会涉及到登录的授权,官方文件是这样说的:

通过wx.login()获取用户登录状态后,需要维护登录状态。开发者需要注意的是,session_key、openid等字段不应该直接作为用户的标识或会话标识,而应该自己发送一个会话登录状态(请参考登录时序图)。

因此,一个会话标识符存储在后台,它独立于微信的session_key。而且业务本身的会话也有设定的有效期,和微信的session_key是一致的。

我们的业务流程是:

1.前端检测是否有会话。如果没有,wx.login()将获得session_key。2.通过session_key调用后台接口来交换会话。3.前端缓存会话。4.如果前端检测到会话,调用wx.checkSession(),判断session_key的有效期,然后请求服务CGI。

上面有一个问题。只要成功获取了session_key,后续的请求就会调用wx.checkSession()来确定其有效期。但是wx.checkSession()是一个耗时的过程。有必要每次都查CGI吗?

微信小程序性能优化——checkSession(图1)

因为会话也是有效的,一旦我们请求业务的CGI后台判断登录状态无效,前端就可以根据后台返回的错误码判断是否再次登录。

所以每次都不需要wx.checkSession,而且wx.checkSession几乎没有必要,因为登录状态可以由我们业务维护。一旦失败,wx.login()将切换回session_key,这样就可以了。

结论:wx.checkSession几乎不需要调用,最多需要300 ms。

更多资讯
游戏推荐
更多+