鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全  HTML/ localstorage容量超過(guò)了怎么辦? --某次面試的問(wèn)題

localstorage容量超過(guò)了怎么辦? --某次面試的問(wèn)題

大半年前的三大廠(chǎng)其中一家的面試題,面試官問(wèn)的這個(gè)問(wèn)題,如果寫(xiě)入localstorage的時(shí)候發(fā)現(xiàn)容量超出了怎么辦(也就是一般標(biāo)準(zhǔn)的5m),當(dāng)時(shí)比較緊張蒙了,現(xiàn)在想來(lái)在不借助其他存儲(chǔ)情況下,如果要強(qiáng)行寫(xiě)入己方的數(shù)據(jù),是不是在檢測(cè)到報(bào)錯(cuò)后,可以調(diào)用一個(gè)localstorage.clear()把用戶(hù)其他localstorage清掉,然后寫(xiě)入自己的數(shù)據(jù)(當(dāng)然這么做感覺(jué)就非常的暴力和qj用戶(hù)),求大神指點(diǎn)一二,google和百度了一圈幾乎沒(méi)什么人提到這個(gè)需求。

回答
編輯回答
雅痞

localstorage存儲(chǔ)不是5m 是每個(gè)域5m 超了申請(qǐng)其他的域/修改ng配置 postmessge通信往其他域上存取
感覺(jué)刪別人的數(shù)據(jù)不好吧 超了就不存了貌似可以理解為可以不存 那就直接不存了唄

2017年3月2日 13:18
編輯回答
浪蕩不羈

我是題主,感謝樓上大佬的指點(diǎn),因?yàn)榇饲皼](méi)有找到合適的關(guān)鍵詞,所以一直找不到好的答案,經(jīng)過(guò)大佬提點(diǎn)發(fā)現(xiàn)localstorage存在著跨域?qū)懭胱x取的操作,下面找到一個(gè)靠譜的實(shí)踐教程localstorage實(shí)現(xiàn)跨域讀取和寫(xiě)入

2018年3月26日 09:39
編輯回答
陪她鬧

這里有兩個(gè)鏈接值得看看:

https://www.raymondcamden.com...

https://stackoverflow.com/que...

如果沒(méi)時(shí)間看,那簡(jiǎn)單說(shuō)一下結(jié)論:

當(dāng)空間不夠時(shí),
瀏覽器會(huì)怎么辦:

  • 不存儲(chǔ)數(shù)據(jù), 也不會(huì)覆蓋現(xiàn)有數(shù)據(jù)。
  • 引發(fā) QUOTA_EXCEEDED_ERR 異常。

作為開(kāi)發(fā)人員的我們?cè)趺崔k:

  • 幾乎所有客戶(hù)端存儲(chǔ)選項(xiàng)在配額方面都非常糟糕。值得引起關(guān)注。
  • 需要跟蹤客戶(hù)端存儲(chǔ)使用情況。例如, 如果您保存了最后10個(gè)搜索, 以便之后顯示給用戶(hù), 請(qǐng)知道并在某處記下它, 以便在將來(lái)使用客戶(hù)端存儲(chǔ)時(shí) ( "嘿, 我們可以緩存一些字體嗎? ") 您可以檢查并查看已存儲(chǔ)的內(nèi)容, 并查看是否可能已達(dá)到極限。
  • 把一切都try/catch好嗎?嗯-也許吧;) "超級(jí)嚴(yán)格讓做一切完美" --是的, 但"我生活在現(xiàn)實(shí)世界" --可能是過(guò)度了。再?gòu)?qiáng)調(diào)一下, 只要你跟蹤你在做什么, 我想你會(huì)沒(méi)事的。
2017年6月3日 00:23