posts - 82, comments - 269, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          公告

          收藏夾

          搜索

          •  

          積分與排名

          • 積分 - 270141
          • 排名 - 211

          最新評論

          JS實現include功能(提供完整的示例下載)

          Posted on 2007-03-21 09:07 itspy 閱讀(8985) 評論(3)  編輯  收藏 所屬分類: JAVA技術

          JS沒有直接提供import這個功能,我想肯定有人遇到過這類問題。用baidu搜索了一下,找到了一些但都比較亂,看不太明白,郁悶了2天,后來想一想用google搜索一下。結果找到了幾個網頁講的蠻清楚的。

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

          然后做了一個簡單的實驗。發(fā)現效果不錯。


          順便介紹一下應用場景,就好像設計模式一樣,一個東西總要有他的應用場景,平常我們開發(fā)時,直接在網頁里面通過“<SCRIPT src="include.js"></SCRIPT>”這種方式添加JS好的很嘛,干嘛要費力引入這種新的方式呢。

          在開發(fā)JS框架時肯定是要用到這種方法,開發(fā)框架時你要求開發(fā)者使用你的庫,但要同時引入好幾個文件,這樣會給人帶來很不好的體驗。

          另外一種就是我現在遇到的:我寫了幾個頁面,針對這些頁面引入的所有JS函數我全部在一個JS文件中了。但我出于調試的需要,我要引入一個JS庫(firebuglite),這個庫專門用來打印log,如果不引入的話,我寫的這些JS就會出錯,也就是我要找出哪些頁面引用了我的這個JS文件。然后在所有的頁面通過<SCRIPT src="include.js"></SCRIPT> 的方式來添加這個打印log的庫。

          我當時就想,既然只有我的這個JS文件要用,我干嘛不通過include直接把它包含進來,這樣就只要添加一處就行了,不要在每個頁面都去添加,一不小心就忘記加錯了,或者是將來不要了,又忘記刪除,留下一推垃圾。這就是我之所以使用include的原因。或者是別人引用了我的包,而我不知道,這樣也會形成錯誤,如果使用這種include就不會這樣了。

          ?

          ?

          示例下載地址:http://www.aygfsteel.com/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 發(fā)生在 file2.js 之后
          主站蜘蛛池模板: 获嘉县| 巴彦县| 视频| 施甸县| 安陆市| 乌苏市| 乐平市| 涿鹿县| 九江县| 聂拉木县| 建瓯市| 化州市| 高淳县| 元朗区| 瑞安市| 静安区| 沁源县| 郎溪县| 奉新县| 二连浩特市| 资阳市| 资源县| 获嘉县| 抚州市| 陵川县| 黎平县| 邵阳市| 永丰县| 平舆县| 绥滨县| 绥德县| 广昌县| 昭苏县| 潢川县| 红桥区| 兴业县| 霍林郭勒市| 阿图什市| 腾冲县| 甘泉县| 江源县|