2009-09-11 79 views
1

這似乎是一個有點常見的問題,我想知道什麼常見的陷阱,最佳做法,最佳途徑,安全問題等,當在服務器上創建JavaScript以後裝載客戶端。從服務器生成客戶端JavaScript時,主要關注什麼?

FWIW,我在Ruby中這樣做,我也使用JQuery。它基本上是一個表單構建器。這是我在做什麼:

我有一個管理表單生成器,動態創建靜態表單輸入(例如選擇,收音機,複選框,以及一些更復雜的輸入以及)我需要創建相應的JavaScript事件處理程序(使用jquery)。我基本上有html builder lambda和lambdas映射到每個預定義的輸入類型:即選擇有像{'select'=>[select_builder_lamb, select_js_handler_lamb]}這樣的東西,所以我可以查找html類型,然後生成所需的代碼,允許管理員創建一個窗體「,以他們的喜好」。這很好。

現在我必須找出是否序列化這一點,然後將其重新請求註冊頁面時,JavaScript會寫出一個「不顯眼」的文件,或原始的HTML和JavaScript存儲在數據庫中,等等。沒有代碼本身的問題 - 所以如果高層次是:1)使HTML htmljavascript 2)堅持以備後用3)用於http請求 - 我的問題是針對步驟2和3.

如果您有經驗做這樣的事情,可以提供一些警告和智慧,這將深受讚賞!

+0

我必須承認,我很驚訝這沒有得到更多的答案,因爲我認爲它是一個很好的問題。我一直有興趣閱讀其他意見 – 2009-09-11 09:47:40

回答

2

涌現在腦海有幾件事情:

代碼分離

雖然HTML頁面中嵌入的JavaScript很普遍,許多人認爲代碼分離的做法是好的。在這方面,我指的是將JavaScript放置在單獨的文件中。這是更廣泛概念的一部分,被稱爲Unobtrusive JavaScript

作爲網絡開發者,我們需要知道許多不同的技術,例如,一些:

  • 服務器腳本(PHP,ASP,紅寶石等)
  • 的JavaScript(和框架)
  • XML
  • HTML
  • XSLT,XPATH
  • CSS
  • SQL

將包含的代碼文件所有這些!這將是混亂的!

從服務器輸出JavaScript排除了將JavaScript分離爲單獨的文件。如果我們分開這些了,然後我們的代碼變得更加模塊化,可重複使用的,可讀和可測試性,這使我...

單元測試

您可能沒有親自使用一個單元測試框架,但是JavaScript的模塊化對創建獨立可測試(和可重用測試)模塊至關重要。

在服務器上輸出的腳本沒有模塊化,但更重要的是不是靜態的,所以難以適應任何單元測試框架。

Tag Soup

雖然可以編寫針對這一點,客戶端和服務器腳本的混合有能力生產tag soup的傾向,使其難以閱讀和維護。

調試

我不知道你使用的IDE,但我可以讓我步,我已經寫JavaScript的。從服務器意味着輸出它我不能這樣做。

+0

您好,感謝您的回覆。我也很驚訝這個問題沒有引起更多的反應。我感謝您的考慮並普遍認同。但是,如果沒有一些服務器生成的JavaScript,我無法看到如何實現我的最終目標。我還沒有實現這一點,所以我會嘗試使may JS文件足夠動態來處理1 .. *表單字段的未知類型(同樣,我的應用程序基本上是一個「表單生成器」)。我們會看到我能做到多少「不顯眼」;) – Rob 2009-09-15 01:21:53

相關問題