西安近期出現疫情,要進行全員核酸檢測,西安地區也增加了查看健康碼的次數,進出公司或者商場等地方,都要出示健康碼,只有綠碼才可以進去。
但這個關鍵時刻發生了故障,健康碼打不開了,無法展示自己的健康碼,給西安市民的生活帶來很多不便。
下面智伍應用的實習技術員從技術角度,解讀一下二維碼打不開的可能原因
出現健康碼打不開的情況,應該是沒有對健康碼做手機客戶端的緩存,展示的時候直接訪問數據庫拿數據,做了健康碼的實時更新,讓數據庫和服務器的訪問過大導致崩潰,最終打不開健康碼。
健康碼是一個二維碼,看上去像一張圖片,其實並不是一張圖片,只是一串字符,用二維碼的形態表現出來。
可以先把健康碼的這串字符用手機客戶的cookie或者localStorage緩存起來,然后設置一個過期時間,到了這個時間再重新請求服務端,如果有更新內容,就把最新的內容重新保存到cookie或者localStorage。
可能你會問,為什么不做實時更新健康碼??因為沒有必要,核酸檢測從開始到拿到結果,本身就不是實時檢測結果的,都有一個檢測時間,所以根本沒有必要每次展示健康碼的時候,都從服務器那里拿數據。
經過做合適科學的數據緩存之后,這樣無論西安老百姓打開多少次健康碼,都沒有問題!!因為都是在自己手機客戶端離線打開的,就好像自己的微信上收圖片一樣,第一次需要加載圖片,等加載完成了,后續打開圖片都是秒開的,不管打開多少次都一樣。
健康碼出現打不開的情況,智伍應用實習技術員認為,應該是沒有做好健康碼的數據緩存。