大型JavaScript模块化应用程序根据需要加载和卸载库?

时间:2017-02-17 02:11:34

标签: javascript

我正在使用PHP Backend Media Manger Library创建一个JavaScript。

与WordPress媒体管理器类似,但会有大约20个模块/插件用于创建/添加新媒体。

例如一些模块:

  • 从动画GIF图像中提取帧,并将任何帧上传为媒体库中的新图像。
  • 抓取网页上的图片,并将任何图片上传到媒体库。\
  • 基于Canvas的图像注释编辑器
  • Markdown文件创建者和读者
  • 使用多个图像创建动画GIF图像。
  • CSS Sprite Image Generator
  • QRCode Generator
  • PDF文件查看器
  • PSD文件查看器
  • 从网址上传
  • 拖动& Drop Uploader
  • 粘贴文件上传器
  • 从Base64字符串上传
  • ......还有几个....

问题

现在很明显,其中一些模块将依赖于使用现有的库。

在他们使用我的Media Manger库的用户应用程序中,我不想通过加载大量所有模块同时依赖的第三方JS库来阻塞用户计算机。

如何解决?

有没有办法在需要时加载和卸载库?

我的媒体管理器库将作为弹出模式在应用程序中打开。如果我打开媒体管理器模式作为Iframe,当模态关闭时,我可以从DOM中删除Iframe,这会释放以前加载的JS库在浏览器中消耗的所有资源吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您执行delete window.myLibrary之类的操作,那么它将删除myLibrary对象下的任何代码或数据(因为函数也是对象!),这将被垃圾收集和删除。当然,这假设您可以通过这种方式访问​​要卸载的库。