下面這一段簡(jiǎn)單的代碼,我希望只有一個(gè)線程去修改。var key = 'key';if(localstorage.getItem(key) == null) {
localstorage.setItem(key, 'page a');
}類似java里的加鎖。舉個(gè)更詳細(xì)的例子。頁(yè)面輪詢ajax獲取通知,打開(kāi)多個(gè)頁(yè)面的時(shí)候只需要讓其中一個(gè)頁(yè)面去執(zhí)行,將結(jié)果寫(xiě)入到localStorage,其他頁(yè)面從localStorage讀取。關(guān)鍵在于要保證只要一個(gè)頁(yè)面去輪詢,所以在localStorage里的某個(gè)字段做標(biāo)記。讀取標(biāo)記和修改標(biāo)記時(shí)一個(gè)完整的操作,并且一個(gè)線程沒(méi)操作完的時(shí)候,另一個(gè)線程不能去操作。
多頁(yè)面同時(shí)讀寫(xiě)localStorage,如何實(shí)現(xiàn)加鎖?
蝴蝶不菲
2018-09-05 13:33:26