2011-03-06 69 views
3

我正在撰寫一篇文章,介紹在企業環境中使用JavaScript時的技巧/技巧/最佳實踐。 「企業」可能有點模棱兩可,因此,爲了本文的目的,我們將其定義爲:支持不必連接到Internet的網絡中的多個基於Web的應用程序。企業JavaScript技巧

這裏只是少數人的想法我有,讓你的創意源源不斷:

  • 確保所有圖書館都保持在一箇中心,網絡訪問的位置,和所有的應用程序引用這些庫(而不是保持獨立的副本)。
  • 按版本引用的庫,保證新版本不會破壞你的應用程序(沒有jquery-latest,使用jquery - #。#。#代替)。
  • 的應用程序代碼正確的命名空間

你能提供什麼樣的提示,以幫助我嗎?

+0

看起來更像是一個公告而不是問題;) – Maxym 2011-03-06 19:22:57

+0

@Maxym:對不起,我已經添加了一個問題到最後讓意圖更清楚一點。 – 2011-03-06 19:42:48

回答

1

測試您的JavaScript上可能的最大的DOM大小。 IE6/7/8將根據執行的VM語句的數量掛起,而不是實際的運行時間。正則表達式和正則表達式jQuery選擇器特別糟糕。

寫少。特別是Javascript變得非常難以管理和調試超過一定大小的設置。將功能分解爲不同的外部源文件可能會有所幫助,但始終考慮一種更好的方法來執行您的操作(例如:jquery插件。)

如果您要反覆寫入常規模式,請停止。要麼創建一個全局方法,要麼該方法作用於一個jQuery選擇器,而是考慮編寫自己的jQuery插件。

請勿使方法使用DOM對象或ID。傳入jQuery對象本身,並對其進行操作。通過這種方式,您不會強制在您的方法上使用任何DOM約束(傳入的對象可能甚至不在DOM上,或者它可能沒有ID)。

不要修改原型。這打破了庫/ jQuery。如果必須寫一個插件或新的數據類型。

不要修改庫;這打破了可升級性。通常你可以通過用自己的插件包裝jQuery庫並轉發/攔截調用來實現類似的效果,類似於AOP。

當DOM仍在加載時,沒有執行代碼。這會導致競爭條件,只有在機器發生破損時纔會發生,即使這樣也不一致。

請勿使用jQuery設置頁面的樣式。這很誘人,但隨着DOM的增長,FOUC變得更糟。在您的服務器頁面中構建.first-child,.last-child等,而不是使用jQuery對其進行攻擊。

+0

不錯的硬編碼jQuery到你的建議。請確保方法將dom對象放在適用的地方。在dom仍在加載時執行代碼很好。儘管如此,在DOM仍在加載時操作DOM仍然很糟糕。 – Raynos 2011-03-06 19:48:50

+0

而不是一個jQuery對象傳遞給一個函數,爲什麼不把函數本身是一個jQuery插件? – Pointy 2011-03-06 19:58:35

1

也許我會回來,並添加更多...但現在我剛纔在我的腦海幾個:

1)緩存策略。企業服務器負載很重,爲了處理http請求,知道如何處理它非常重要。例如。 JS可以緩存在客戶端,但你應該知道如何「告訴」客戶端新版本可用。

2)有不同的庫,它將請求的計數減少到僅僅附加它們的JS文件(基於配置)。例如。對於Java,它是Jawr(只是其中之一)。這是更好地加載1,2,3腳本(讀「文件」),而不是100(並且這個數字今天變爲正常,在RIA的時代)。還有一個好的技巧Jawr呢,它創建壓縮包,所以當客戶端請求腳本服務器並不需要壓縮它。 3)你的業務邏輯可以由應用服務器處理(當我們談論Java時,可以是JBoss,GlassFish等),但JavaScript是靜態的,所以它可以通過http服務器(比如Apache,或者更好的lighttd,nginx )。同樣這樣您壓縮服務器負載(企業關鍵)

4)庫如jQuery可以從谷歌CDN(或任何其他可靠的來源下載)。

5)使用YslowPageSpeedAjax DynaTrace檢查性能,獲取有關如何改進等

6)儘量mod_pagespeed,它可以 '消滅' jawr,或讓有實力的公司爲它

7)今天使用一個以上的問題是JavaScript-on-demand裝載

8)offline storage

好吧,雖然您指定的主題你是間這個區域看起來還是無限的......