一直發(fā)現(xiàn)小程序好慢,尤其是第一次打開的時(shí)候。因?yàn)榈谝淮螘?huì)涉及到登錄的授權(quán),官方文檔是這么說的:
所以后臺(tái)存儲(chǔ)了一個(gè)session標(biāo)識(shí),和微信的session_key 是獨(dú)立的。而且業(yè)務(wù)自身的session也有設(shè)置有效期,和微信的session_key 是一致的。 我們的業(yè)務(wù)處理流程是:
1、前端檢測(cè)有無session,沒有的話wx.login(),獲取session_key 。 上面有個(gè)問題,只要成功獲取session_key后,后續(xù)的請(qǐng)求都會(huì)先調(diào)用wx.checkSession()來判斷它的有效期。但是wx.checkSession()是一個(gè)耗時(shí)的過程,有沒有必要每次請(qǐng)求CGI都去校驗(yàn)?zāi)兀?/p> 因?yàn)閟ession也存在有效,一旦我們請(qǐng)求業(yè)務(wù)的CGI后臺(tái)判斷登錄態(tài)失效了,那么前端可以根據(jù)后臺(tái)返回的錯(cuò)誤碼來判斷是否重新登錄。 所以就沒有必要每次wx.checkSession,而且wx.checkSession幾乎是沒有用的到必要,因?yàn)榈卿洃B(tài)可以由我們業(yè)務(wù)維護(hù),一旦失效,wx.login()重新?lián)Q回一個(gè)session_key 就ok了嘛。 結(jié)論是:wx.checkSession幾乎沒有必要調(diào)用,而且他本身耗時(shí),長(zhǎng)達(dá)300+ms。 |