posts - 82, comments - 269, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

JS实现include功能(提供完整的示例下载)

Posted on 2007-03-21 09:07 itspy 阅读(8961) 评论(3)  编辑  收藏 所属分类: JAVA技术

JS没有直接提供import这个功能,我想肯定有人遇到过这类问题。用baidu搜索了一下,找到了一些但都比较乱,看不太明白,郁闷了2天,后来想一想用google搜索一下。结果找到了几个网页讲的蛮清楚的。

http://www.cryer.co.uk/resources/javascript/script17_include_js_from_js.htm

然后做了一个简单的实验。发现效果不错。


顺便介绍一下应用场景,就好像设计模式一样,一个东西总要有他的应用场景,平常我们开发时,直接在网页里面通过“<SCRIPT src="include.js"></SCRIPT>”这种方式添加JS好的很嘛,干嘛要费力引入这种新的方式呢。

在开发JS框架时肯定是要用到这种方法,开发框架时你要求开发者使用你的库,但要同时引入好几个文件,这样会给人带来很不好的体验。

另外一种就是我现在遇到的:我写了几个页面,针对这些页面引入的所有JS函数我全部在一个JS文件中了。但我出于调试的需要,我要引入一个JS库(firebuglite),这个库专门用来打印log,如果不引入的话,我写的这些JS就会出错,也就是我要找出哪些页面引用了我的这个JS文件。然后在所有的页面通过<SCRIPT src="include.js"></SCRIPT> 的方式来添加这个打印log的库。

我当时就想,既然只有我的这个JS文件要用,我干嘛不通过include直接把它包含进来,这样就只要添加一处就行了,不要在每个页面都去添加,一不小心就忘记加错了,或者是将来不要了,又忘记删除,留下一推垃圾。这就是我之所以使用include的原因。或者是别人引用了我的包,而我不知道,这样也会形成错误,如果使用这种include就不会这样了。

 

 

示例下载地址:http://www.blogjava.net/Files/itspy/AJAX.rar

firebuglite:http://www.getfirebug.com/docs.html

因为使用了相对目录来include,最好全部解压缩之后才能运行,不能直接在压缩包中运行。


核心代码:
function IncludeJavaScript(jsFile)
{
  document.write('<script type="text/javascript" src="'
    + jsFile + '"></script>');
}


评论

# re: JS实现include功能(提供完整的示例下载)  回复  更多评论   

2007-03-21 13:23 by boolean
prototype effect早就这么用了,建议看一眼

另外我一般把要用的js写到一个模版里(取名commonjs.htm),具体内容如下:
#set($arr = "prototype,effect,system")
#set($split = ",")
#set($split = $split.ToCharArray())
#set($arr = $arr.Split($split))
#foreach($script in $arr)
<script src="/js/${script}.js"></script>
#end
然后把这个文件加入到通用部件(如footer.htm)中
$vh.Include($ctx, "/include/commonjs.htm")

# re: JS实现include功能(提供完整的示例下载)  回复  更多评论   

2007-03-21 18:05 by itspy
@boolean


prototype effect早就这么用了,建议看一眼

不好意思,能不能告诉我在哪?我没找到prototype里面有effect,能给个URL吗?

# re: JS实现include功能(提供完整的示例下载)  回复  更多评论   

2007-09-10 14:31 by leonzhu
还是同样的问题。
file2.js 通过 document.write 引用 file1.js 时,并不能立即调用 file1.js 中的函数。file1.js 的 parse 发生在 file2.js 之后

只有注册用户登录后才能发表评论。


网站导航: