對象在 indexedDB 中的存儲方式是否發生了變化,至少在 Firefox 中是這樣?我現在注意到在開發人員工具存儲選項卡中出現了“_proto_”。直到我在我的程序中觀察到我無法弄清楚的奇怪行為之前,我并沒有多想它。我認為對象在被寫入數據庫之前被克隆,這樣,無論它們是如何創建的,它們都是獨立的。例如,在第一次創建數據庫時,添加了一些映射對象;并且,由于多個對象具有完全相同的布局/結構,因此將重復使用對單個對象的引用,如下所示。加載頁面時,映射數據被讀入 RAM 并用于管理數據庫鍵的分配。除非我真的很困惑,否則 prop_3 到 prop_7 似乎在稍后重新加載頁面時從數據庫中提取時保留了公共引用,這樣如果 prop_3 中的一個屬性被更新,相同的屬性也會在 prop_3 到 prop_7 中更新。這是它應該工作的方式嗎?我希望 prop_3 到 prop_7 在寫入數據庫和從數據庫讀取之后不再共享公共引用。如果這是準確的,對象可以以不保留這些類型的共享引用的方式寫入數據庫嗎?當然,我意識到可以不使用對 repeated_object 的引用來對它們進行不同的分配;事實上,這為我解決了具體問題。謝謝你。repeated_object = { ...property : value... };os.add( { 'prop_1' : 1, 'prop_2' : 2, 'prop_3' : repeated_object, 'prop_4' : repeated_object, 'prop_5' : repeated_object, 'prop_6' : repeated_object, 'prop_7' : repeated_object } );
indexedDB:“_proto_”在數據庫對象中做什么?
慕雪6442864
2022-12-22 14:33:12