2012-08-01 64 views
0

Dojo的加載 - 你需要它的結構實際上是一個性能改進?對我而言,至少?Dojo的瀏覽器性能,在加載模塊文件方面

我公司的網站將切換到IBM Websphere,它主要使用Dojo。我的公司非常關注頁面性能,主要是「頁面加載秒數」。因此,我們給出的指示是「儘量減少對服務器的命中率」,因此在我們當前的網站中,我們將所有.js文件彙總到生產之前。

但是這條指令現在基本上變成了法律,所以如果我反駁它,我需要一個非常好的理由。除了「這是一個好主意」和「只在需要時才加載」,我一直無法找到任何有利於現在使用的方法的東西(後者實際上僅基於前者,儘可能我可以告訴)。

然後,如果我要將所有東西都拼合成單個文件,我根本無法使用dojo.require()語句,對嗎? (這個想法是,如果我可以通過模塊將開發方分割出來以使組織更加理性,但是然後將生產版本作爲單個文件,但是dojo.require()將不再有意義,然後我有越來越複雜的情況下,我需要構建做一些侵入性的東西到javascript生產打包。)

請抵制「它取決於」的答案。我見過的最佳實踐文檔(雅虎,谷歌等)幾乎只是說「減少頁面加載量」,並沒有太多「依賴」它。但Dojo的框架似乎對它的方法非常明確,我想知道是否有一個更有說服力的理由。

回答

1

Dojo實際上結合了這兩種方法。在開發模式下,許多文件使用definedojo.require已過時)來動態加載其他模塊。這對於抽象和開發非常有用。

然後有「生產模式」,在那裏你用dojo生成系統將所有這些小文件編譯成一個或多個(aka。layers)縮小的Javascript文件。這樣可以減少對服務器的命中率,同時保持所有的模塊性。通過圖層方法,稍後需要的應用程序數據將自動從單獨的文件中加載。

參見: http://dojotoolkit.org/blog/learn-more-about-amd

http://dojotoolkit.org/reference-guide/1.7/build/

+0

嗯,是的,我們正在使用的Dojo 1.5(是的,我知道,新的網站,我公司享有其計劃的淘汰),但我看到頁面有鏈接到1.7之前的構建過程。好的,我必須開始研究這一點,謝謝。 – spinn 2012-08-01 17:48:05