【发布时间】:2015-10-25 20:22:59
【问题描述】:
在尝试模仿 Youtube 等网站并在链接点击时仅加载页面的特定片段的过程中,我尝试制作一个加载/卸载当前页面所需的特定 JS 文件和 CSS 文件的函数。
我注意到,当 CSS 文件从 DOM 中删除时,该文件的样式不再有效,并且只有在我再次添加特定的 link 标记时才会再次有效。但是,似乎 JS 文件在加载时会存储在内存中,并且简单地删除 DOM 中的引用并不会阻止与该文件关联的函数仍然有效。 Youtube 是如何解决这个问题的,或者你对我应该走哪条路径来实现“完全”卸载/加载 JS 文件有自己的建议?
我的一个想法是让我的代码(包括 HTML 和 JS)中的所有变量、元素 ID 等都是唯一的,并有一个数组来检查哪些 JS 文件已加载 - 所以内存中的每个 JS 文件不会超过一个。但我想这不是一个安全的解决方案,因为如果那个“页面”长时间没有使用,GC 可以从内存中删除一个 JS 文件?
【问题讨论】:
-
你研究过 webpack 吗?
标签: javascript html memory memory-management loading