現在社區維基!在服務器端級別呈現JavaScript。好的或壞的想法?
我想先說清楚:這不是關於服務器端JavaScript或運行Javascript服務器端的問題。這是一個關於從服務器端代碼呈現Javascript代碼(將在客戶端執行)的問題。
說了這麼多,看看下面ASP.net的代碼,例如:
hlRemoveCategory.Attributes.Add("onclick", "return confirm('Are you sure you want to delete this?');")
這是處方在服務器端的客戶端onclick
事件。
至於反對在客戶端編寫JavaScript:
$('a[rel=remove]').bind('click', function(event) {
return confirm('Are you sure you want to delete this?');
}
現在我要問的問題是:什麼是從服務器端代碼的JavaScript渲染的好處?或者反之亦然?
我個人比較喜歡客戶端UI /行爲掛鉤到HTML元素,原因如下的第二種方式:
- 服務器端做什麼都需要將已經包括DATA-驗證,事件委託等;和
- 服務器端將哪些事件視爲事件不一定是客戶端上的相同進程。即在客戶端有更多的事件(只要看看自定義事件);和
- 在客戶端和服務器端發生了什麼,在事件中,可能是完全不相關和解耦;和
- 客戶端發生的事情發生在客戶端,沒有需要供服務器知道。服務器應該處理和運行給予他們的東西,如果發生客戶端事件,服務器如何實現它們並不是真正由他們決定的;等等等等。
這些是我的想法明顯。我想知道別人的想法,以及是否有任何關於這個話題的討論。
主題從這個論點分支可以達到:
- 代碼管理:是更容易使一切從服務器端?
- 分離問題:如果客戶端邏輯與服務器端邏輯分離,是否更容易?
- 效率:在編碼和運行方面效率更高?
在一天結束時,我正試圖讓我的團隊走向第二種方法。這支隊伍中有很多老隊員都害怕這種變化。我只是想說服他們說正確的事實和數據。
讓我知道你的想法。
UPDATE1:看來我們所有參與這篇文章的人都有共同的想法;很高興知道有其他人也會這麼想。現在去說服這些傢伙;)謝謝大家。
這應該是社區維基,因爲人們顯然根據他們的意見對答案投票,而不是基於信息的正確性。 – Guffa 2010-05-17 08:29:58
正如你可以看到我的新手徽章,我不知道。我會查找如何將其轉變爲社區維基。感謝您的信息=) – hongymagic 2010-05-17 23:50:02