在编写JavaScript时候,无论项目大小,都应该对所有*.js文件就行管理,尤其是面向对象的项目中。应该如Java一样,将每个类独立出来。但有个问题是JavaScript不支持脚本导入,这使得这个工作变得非常麻烦。
目前我找到了两种方式来做这个工作,即在JavaScript中模拟出import指令的功能。
XMLHTTPRequest对象 + eval();
创建<script>标签以及src属性
两种方式各有千秋。dojo中实现了两个方法:
模拟import的dojo.require();
模拟package的dojo.provide();
研究了一下代码,不过还是没弄明白它是怎么来实现这个dojo.require()的,不过应该可以肯定的是它没有使用创建<script>的方法,因为在生成的页面中没有额外的<script>。
前一阵把神奇一刻的JavaScript都规整了一下,建了个DisneyBox类和众多的子类,脚本的导入使用了创建<script>的方法。那么现在就分别介绍一下两中方法吧,其实都是很简单的一些技巧。
XMLHTTPRequest对象 + eval()函数
这种方法的原理如下:
利用XMLHTTPRequest对象把*.js文件以文本方式加载进来,并保存在responseText中
使用eval()函数将responseText中的文本转换成JavaScript脚本
这样做的好处是载入的脚本立即可以执行,但有可能会遇到很多eval()函数的问题。
创建<script>标签
原理如下:
用document.createElement(’script’)方法创建一个script元素
设置script元素的type和src属性
将此script元素用appendChild()方法添加到HTML文档中
这种方法的好处是能够比较安全的导入脚本,不需要再利用eval()来解析,但这样会在HTML中引入过多的文件,而且会有其他一些问题。
这里还有一篇很值得看的文章:Qomolangma实现篇(一):内核载入模块system.js的实现。对这两种方法做了更详细的叙述。
在JavaScript 2.0的提案中引入了package的概念,而且提供了package和import指令,拭目以待它的实现吧。
JavaScript中提供获取HTML元素位置的属性: HTMLElement.offsetLeft HTMLElement.offsetTop 但 是需要注意的是,这两个属
现在越来越多的网页出于各种各样的原因会将页面上的一些区域(通常是div)隐藏,CSS隐藏元素的方法也有很多种,最常用也是
在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式。掌握 Ajax 的这一期讨论另一种有用的数据格式
表单是网页中一个不可缺少的部分,如何使表单更具有亲和力了?这是一个遵照 WCAG 指导原则设计的表单,许多地方都努力去做
表格一直是网页设计制作过程中一个重要的组成部分,在没学习CSS布局前,大多是用来布局的,但到目前位置发现居然还没真正
现在国内绝大多数的站点都用CSS把字体大小设定为12px,像素虽然也是相对尺寸单位,但只是相对于屏幕的分辨率 ,当屏幕的分
Access key 是什么?~估计除了做 Web 开发的没多少人知道,Access key 是网页提供的快捷键。先回到软件界面,看下我的 Ope
Window.Open详解 一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二、基本语法: window.op