怎么往list里累加对象啊
{
list:[
{
id:'11',
name:'a'
},
{
id:'22',
name:'b'
},
{
id:'33',
name:'c'
}
]
}
怎么往list里累加对象啊
{
list:[
{
id:'11',
name:'a'
},
{
id:'22',
name:'b'
},
{
id:'33',
name:'c'
}
]
}
单窗口操作: js单线程,所以没有数据覆盖的情况。
多窗口操作: 多窗口之间按Id从小到大轮询执行 读写localstorage。
每次打开新窗口设置窗口Id,Id递增。
active指示当前激活的Id。如active:3。 代表3号窗口可以写localstorage
json={
arr:[1,2,3,4,5]
active:3
}
本窗口要写数据,直接push 到事件队列Arr,等待storage对active监听事件里才执行。
storageEvent监听事件里判断active是否等于本窗口的Id
如果等于那么就执行本窗口挂起的事件队列Arr。 执行完后(写完了localstorage)。设置 active++ 。
类似于轮播图。轮到谁,谁就有权限读写localstorage。
如楼上(好热闹的样子)。
顺序的事情不用担心, localStorage
是同步的,你按顺序写,它就按顺序存,不会乱。
担心频繁存取的话,有两个方法:
localStorage
,并对写入进行节流(push
完了别慌写到 localStorage
, 先定个延时器等个几秒钟再写,如果这中间发生了其他的push
操作,就销毁定时器,执行新的push
,完事了再开一个延时器等几秒……周而复始);push
和写入分开写,另外写一个专门用来写入的函数,就命名为 commit
吧,你什么时候想写到 localStorage
了,再调用 commit
写入;storage
写入是可以跨页面监听的,这把锁不难实现;10 回答11.5k 阅读
2 回答3k 阅读✓ 已解决
3 回答5.4k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
同楼上一样的,重复取存的操作。每次调用方法即可