localStorage是同步还是异步?
首先localstorage是一个同步api
1、localstorage有几个特性
localStorage是一个同步 API,因此在处理大量数据时可能会影响性能。localStorage的数据在浏览器关闭后不会自动清除,除非用户手动清除或通过代码清除。localStorage的数据是跨会话的,即用户关闭浏览器后重新打开,数据仍然存在。localStorage的数据是跨窗口的,即在一个窗口中设置的数据,在另一个窗口中也可以访问。localStorage限制容量
同步
在同步的 localStorage 操作期间,由于 js 的单线程性质,整个线程会阻塞,即不会执行其他任何js代码,也不会进行任何渲染操作,直到 localStorage 调用返回
跨窗口
跨窗口可以这么理解:只要这些窗口或标签页属于同一个源(即协议、域名和端口相同),它们就可以共享相同的localStorage数据。(就可以通过localstorage.getItem获取到数据)
跨窗口能访问好处就在于,共享一些公用的信息。
localstorage通常是存储在c盘C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default\Local Storage 目录下下面的,同时也取决于用户的设置。
限制容量
防止滥用:如果没有存储限制,网站可能会滥用 localStorage,存储大量数据在用户的设备上,这可能导致设备存储空间迅速耗尽
性能限制:localStorage 的操作是阻塞的。如果网站能够存储大量数据,就会加剧读写操作对页面性能的影响。
存储效率:localStorage 存储的是字符串形式的数据,不是为存储大量或结构化数据设计的。当尝试存储过多数据时,效率会降低
IndexedDB
是一种在浏览器中存储大量结构化数据(如JSON对象)的低级数据库的异步API。