即時(shí)加載程序設(shè)計(jì)應(yīng)用
有一個(gè)玩家聊天的玩家氣泡模塊,這個(gè)模塊可以通過(guò)一個(gè)特定接口構(gòu)建起來(lái)。
最糟糕的情況就是把聊天數(shù)據(jù)包括玩家名字玩家頭像和頭銜存到數(shù)據(jù)庫(kù)表中,然后數(shù)據(jù)一起返回通過(guò)接口構(gòu)建起一個(gè)個(gè)氣泡
可能這是最壞的情況了
程序設(shè)計(jì)人員,設(shè)計(jì)一種封裝的思想去應(yīng)用
在一個(gè)公共作用域內(nèi)有一個(gè)json表存放的是所有玩家的頭像名字頭銜。
每個(gè)氣泡收到的信息只需要說(shuō)話內(nèi)容,和玩家特有不重復(fù)id,和一個(gè)是否查看標(biāo)記足夠了
然后氣泡自己的邏輯進(jìn)行對(duì)其余的信息頭像 名字頭銜加載
這個(gè)邏輯應(yīng)該設(shè)計(jì)為怎么樣的呢
氣泡先從公開(kāi)表中查詢是否有這個(gè)人的信息,如果有那么就加載本地,沒(méi)有就進(jìn)行發(fā)送封包獲取,獲取存表里面
這時(shí)候就分出兩種設(shè)計(jì)理念
第一種是發(fā)送封包后用循環(huán)定時(shí)器去過(guò)一段時(shí)間輪詢一下,查到信息返回給公開(kāi)表了然后讀取數(shù)據(jù)刪除輪詢。
第二種是發(fā)送封包后再加一個(gè)公開(kāi)表,這個(gè)公開(kāi)表存放沒(méi)有進(jìn)行初始化等待中的氣泡,每次服務(wù)端返回?cái)?shù)據(jù)就進(jìn)行一次查詢未初始化表,如果返回值相等那么就剔除,不相等就繼續(xù)等待初始化。
兩種后續(xù)邏輯去對(duì)比第一種雖然簡(jiǎn)單但是不夠優(yōu)美所以采用第二種。
這就是即時(shí)加載的應(yīng)用邏輯思路了