如果我将数据保存在 global 中,可能会出现什么潜在问题var cache = {}
?
它会被垃圾收集器收集吗?我可以确保它一直持续到观看结束吗?
是否有我可以使用的浏览器内置功能,以便下次打开页面时我已经准备好缓存数据?
谢谢。
如果我将数据保存在 global 中,可能会出现什么潜在问题var cache = {}
?
它会被垃圾收集器收集吗?我可以确保它一直持续到观看结束吗?
是否有我可以使用的浏览器内置功能,以便下次打开页面时我已经准备好缓存数据?
谢谢。
听起来您需要了解javascript中全局数据的生命周期:
在给定页面的生命周期中,全局变量会一直持续到您清除它的值为止。它永远不会被垃圾收集。因为它是全球性的,所以它永远不会超出范围。
当查看器转到该窗口中的新页面或关闭该浏览器窗口时,该先前页面的所有 javsacript 数据都将被释放并且不再可用。
有三种方法可以保存数据,以便在该页面或其他页面的未来视图中使用它:1)Cookie,2)本地存储,3)服务器存储。在所有这些情况下,都必须从其存储位置检索数据并将其放回 javascript。
只要页面保持打开状态,该变量就会存在。在它关闭(或导航离开)后,它将被垃圾收集。
如果缓存中的数据很少,可以将其序列化并存储为 cookie。对于大量数据,DOM 存储可能很有用,但浏览器并不普遍支持它。