首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有可能在Javascript中不需要模块?

有没有可能在Javascript中不需要模块?
EN

Stack Overflow用户
提问于 2018-07-19 04:55:37
回答 3查看 1K关注 0票数 2

我使用Browserify需要一个JS文件,比如这个require('./typescript/build/crossing-puzzle-setup'。然而,考虑到将会有许多不同类型的难题,我想知道,如果我不再需要一个模块,是否有可能“不需要”它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-19 04:58:28

卸载一个模块没有什么意义,因为代码只需要很少的内存,而且不可能卸载它,因为引擎无法预测require("some module")不会再次被调用,所以它不能卸载该模块的存储数据。

票数 3
EN

Stack Overflow用户

发布于 2018-07-19 05:18:53

如果您确实要加载如此多的代码,以至于需要强制浏览器将其卸载,则可以强制页面刷新,然后加载页面的以前状态。但是,在刷新期间,用户将看到浏览器的“页面加载”指示符。

代码语言:javascript
复制
function startReload() {
  // Save all the state you need into a string. An example object:
  const importantAppState = {currentPuzzle: 'level1', username: 'roy'};
  localStorage.setItem('stateBeforeReload', JSON.stringify(importantAppState));

  window.location.reload();
}

// Run this function whenever your page loads:
function onLoad() {
  const previousState = localStorage.setItem('stateBeforeReload');
  if (previousState !== null) {
    // you should re-initialize your app from the state here,
    // dynamically calling `require` on only the files you need

    localStorage.removeItem('stateBeforeReload');
  }
}
票数 1
EN

Stack Overflow用户

发布于 2019-08-16 01:19:15

对于那些正在寻找nodeJS解决方案的人:

代码语言:javascript
复制
require('../myLib');
delete require.cache[require.resolve('../myLib')];

不确定上面是否清除了链接到模块的100%内存。为此,一种安全的方式似乎是使用这个节点模块:node-disrequire

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51410843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档