簡體   English   中英

為什么javascript沒有更好的方法來包含文件?

[英]Why doesn't javascript have a better way to include files?

我已經看到了一些方法,你可以使javascript文件包含其他javascript文件,但它們都看起來很hacky - 主要是他們涉及將javascript文件添加到當前文檔的末尾,然后以某種方式加載它。

為什么javascript只包含一個簡單的“加載此文件並在其中執行腳本”include指令? 這不是一個新概念。 我知道每個人都對使用javascript等在HTML5中做所有事情感到很興奮,但是如果你不得不在這些基本功能的遺漏中亂七八糟,那會不會很難?

我無法看到它將如何成為一個安全問題,因為一個網頁可以包含盡可能多的javascript文件,無論如何它們都會被執行。

當前包含系統的主要問題(即,添加額外的腳本標簽)涉及延遲。 由於腳本標記可以在包含時插入代碼,因此只要遇到腳本標記,進一步解析就必須或多或少地停止,直到JS下載並執行(盡管瀏覽器可以繼續並行獲取資源) )。 如果JS決定運行包含,那么你剛剛添加了更多的延遲 - 現在你甚至無法並行獲取腳本。

基本上,它正試圖解決一個不存在的問題(因為JS已經可以在其他腳本標簽上進行包含),同時使延遲問題變得更糟。 有javascript minifiers可以合並JS文件; 你應該考慮使用它們,因為它們也有助於改善延遲問題。

實際上,YUI 3很好地解決了這個問題。 請隨時查看文檔: http//developer.yahoo.com/yui/3/yui/#use (這是具有這種魔力的特定使用功能)。 基本上它的工作原理如下:

  • 您定義模塊
  • 使用YUI()創建核心YUI對象時,可以指定代碼所需的模塊
  • 在幕后,YUI檢查是否加載了這些模塊。 如果沒有,它會在頁面上異步加載它們。

我還讀到jQuery團隊正在研究類似的東西(有人支持我)。

至於哲學論點,如果內置它會很好,我認為這可能是一個很好的特征。 另一方面,javascript的簡單性也很好。 它允許初級程序員完成他們的工作的低得多的入口點。 對於我們這些需要它的人來說,像YUI這樣的大型圖書館每天都在變得越來越好。

requirejs項目嘗試解決此問題,請參閱示例

http://requirejs.org/docs/why.html

(不過我還沒用過)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM