2011-08-24 41 views
58

對於如此主觀的問題表示歉意。爲asp.net mvc開發人員提供的javascript最佳實踐

我正在尋找一些如何在asp.net mvc應用程序中更好地管理javascript的實際示例。

在jQuery之前,我儘量避免使用javascript。現在我使用它很多,但感覺我可能錯過了一些最佳實踐/建議,用於在大型Web應用程序中構建我的JavaScript代碼。

有些事情我是有罪的,並希望移動遠離:在我的意見

  1. 內嵌的JavaScript。我並不是在談論大量的代碼,但我在每個視圖上都有一些初始化代碼並不罕見。
  2. 一個大的「網站」JavaScript文件。由於我的應用程序中使用的插件列表增長(例如jquery ui),我的「啓動」功能也正在初始化每個插件。通常這是爲了避免問題1(內嵌JavaScript)。也許每個視圖的JavaScript文件是更好的解決方案?
  3. 一切似乎都非常程序化。我習慣在.net中以面向對象的方式工作,但是當涉及到javascript時,這似乎已經消失了。現在我知道OOP是肯定可能的,並且受到javascript的鼓勵,但我可以通過看到一些實際的例子來說明我應該如何在真正的Web應用程序中實現它。
  4. 命名空間/項目結構 - 我已經看到了一些JavaScript命名空間的例子(憑藉對象),並且喜歡這個方法,但是可以用更多的背景知識來做。

任何網站,書籍等,人們可以推薦將不勝感激。

+16

@jfar - 不知道爲什麼這可以保證一個downvote,特別是當我要求更多信息的替代品。 –

+3

+1。我認爲這個問題可能與許多開發者有關,尤其是,有人剛剛開始使用MVC,比如I。 –

+7

@jfar - Upvote對downvote的困擾是爲什麼寫,儘管我不同意這個原因。當人們不願意匿名時,我討厭它。 –

回答

2
+0

我喜歡這個。唯一的一點是,如果使用自定義路線,戰略將會失敗。一種解決方法是使用文本模板生成路由以及將引導控制器連接到策略的JavaScript引導程序。這個想法是不要重複自己。 –

0

對於我類似的問題,像KnockoutJS圖書館已經幫助了很多來組織我的JS代碼,它真的很強大,我已經用了多個項目,它有工作得很好。 (我也是一個asp.net mvc開發者,但是這也適用於其他技術,除此之外,發明它的人有很多aspnet mvc的經驗)

9

我以爲我會投入我的2美分。

  1. Best practice建議不要在視圖中使用JScript和這我發現可以通過使用包含JScript或JScript的推入JS文件,並在你的HTML輔助初始化HTML助手是可以避免的。這是第三方MVC控制開發人員(如Telerik)使用的。如果您決定將JScript推入控制器,您會發現它很快就會變得混亂。

  2. 我經常發現自己處於同一個場景中,每個視圖都有一個JS文件,但是這可以合併爲每個模塊有一個JS。這又取決於代碼的複雜程度。如果您發現許多視圖具有相同的初始化,那麼您可以沿着基本視圖方法。這也被認爲是最佳實踐。

  3. 你會發現JScript is quite OO這與JScript如何使用JSON有關。我發現JScript的靈活性使它看起來偏離了OOP。我對JScript的有限經驗是保持簡潔,這將重新實施可重用的JScript。

  4. 我認爲這可以在JScript中練習。我在這裏找到的最大問題不是使用name-spacing,而是如何避免重複/雙重加載JScripts。如果視圖是「自包含的」,理論上應該加載他們自己的JScript,但這會導致JScripts被加載多次,甚至造成衝突。再次,一個好的HTML幫手可以將您保存在這裏(aplogies,我沒有一個很好的例子,但Google它,你不會出錯)。

總體而言,JScript功能非常強大,可以將網絡編程提升到一個全新的水平。 JScript將越來越多地成爲Web平臺的一部分,特別是當每個人都轉向HTML 5時。使用MVC和JSript,有100種不同的方法可以完成同樣的事情,最佳實踐只能帶你到目前爲止。剩下的由您決定,取決於您想要實現的目標,您的目標受衆是誰以及您支持哪些瀏覽器。