目前我找到了两种方式来做这个工作,即在JavaScript中模拟出import指令的功能。
- XMLHTTPRequest对象 + eval();
- 创建<script>标签以及src属性
- 模拟import的dojo.require();
- 模拟package的dojo.provide();
前一阵把神奇一刻的JavaScript都规整了一下,建了个DisneyBox类和众多的子类,脚本的导入使用了创建<script>的方法。那么现在就分别介绍一下两中方法吧,其实都是很简单的一些技巧。
XMLHTTPRequest对象 + eval()函数
这种方法的原理如下:
- 利用XMLHTTPRequest对象把*.js文件以文本方式加载进来,并保存在responseText中
- 使用eval()函数将responseText中的文本转换成JavaScript脚本
创建<script>标签
原理如下:
- 用document.createElement(’script’)方法创建一个script元素
- 设置script元素的type和src属性
- 将此script元素用appendChild()方法添加到HTML文档中
这里还有一篇很值得看的文章:Qomolangma实现篇(一):内核载入模块system.js的实现。对这两种方法做了更详细的叙述。
在JavaScript 2.0的提案中引入了package的概念,而且提供了package和import指令,拭目以待它的实现吧。




文章来自:设计学院
收藏到网摘:
Tags:
