宝哥软件园

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

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

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

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

因此,一个会话标识符存储在后台,它独立于微信的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都要检查吗?

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

所以不需要每次都有wx.checkSession,wx.checkSession几乎没有用也没有必要,因为登录状态是可以由我们业务维护的。一旦失败,如果用session_key替换,wx.login()就可以了。

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

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

更多资讯
游戏推荐
更多+