一直发现小程序好慢,尤其是第一次打开的时候,因为第一次会涉及到登录的授权,官方文档是这么说的:
通过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都去校验呢?