2015-02-12 50 views
0

this article從製作的Airbnb全棧JavaScript框架是否在客戶端或服務器上創建HTML?

它說

一種混合的方法

在一天結束的時候,我們真的希望新老 方法的混合體:我們要服務從服務器完全形成HTML爲 的性能和SEO,但我們希望客戶端應用程序邏輯的速度和靈活性爲 。

爲此,我們一直在Airbnb上嘗試使用「Isomorphic JavaScript」應用程序,它們是可在客戶端和服務器端運行 的JavaScript應用程序。

因此,我對整堆JavaScript框架是否在服務器或客戶端上呈現HTML文件感到困惑。我目前受過教育的猜測是,有些框架在客戶端獨佔地創建HTML文件,有些僅在服務器上創建,有些則混合使用。但哪些是哪些?

+2

也許有用的信息給你:http://garann.github.io/template-chooser/ – jdphenix 2015-02-12 07:06:14

回答

1

說實話,它可能會有點混亂。特別是如果你只是閱讀它並不實際嘗試。

我嘗試很快澄清,但如果有不清楚的地方,讓我知道:)

第一件事,第一:什麼是同構的JavaScript?簡化它意味着你在前端和後端使用相同的代碼,這通常可以感謝Node.js(或新的fork iojs)。現在

,直到最近,這是正常的,提供或多或少的靜態HTML頁面到客戶端。如果html在服務器上實際上是靜態的,或者服務器動態地創建它,那麼無關緊要 - 客戶端只是呈現它所獲得的HTML。

有了這樣的角或作出反應的方法,新的框架是不同的:基本上,你在客戶端動態生成HTML和要求服務器只爲數據。這意味着你的服務器通常只是一個(json)API!

但是,一些框架有一個「預渲染」html服務器端的選項,它基本上只是意味着初始請求返回正確的html,因爲我們已經知道它,並從那裏客戶端接管操縱DOM再次。

通常你做,因爲你想有多個頁面「單頁」應用程序。單頁只是意味着你不需要重新加載。 而你想要的主要原因是你的webapp在智能手機/平板電腦上看起來更好。 目標是獲得「本土」的感覺,即使它只是一個網站。

它有幾個優勢,顯然也有不少缺點,但如果你有興趣在他們努力學習這些框架之一,並從那裏。 Angular.js是目前大多數人使用的「標準」框架 - 所以在這裏不會出錯。

我個人很喜歡React.js相當多,但它並不像流行的角(沒有?)。

一些人甚至合併他們倆,但你真的需要知道你做了什麼,使這項工作在某種程度上是有道理的所以纔去與一個 - >它們都提供了你需要的一切。

你也可以看看灰燼或主幹但概念是非常相似的角度,可能有點不太複雜,但沒有被廣泛使用。

希望這是更清晰一點,現在我沒有讓事情變得更糟:)

+0

好了,所以它的聲音就像你肯定我暗示我的問題一樣。你能澄清一下你的迴應,哪些框架在HTML渲染服務器/客戶端方面有哪些選項?如果你還沒有閱讀我最初發布的文章! – 2015-02-13 09:22:17

+1

他們通常都使客戶端,因爲如果你這樣做服務器端,你可以回退到一個經典的方法。 然而,反應DEF有一個可選的服務器端預渲染選項(同構 - 讓您使用相同的代碼的服務器/客戶端)。 有最有可能的一些模塊,提供相同的角或類似的框架,但據我所知它不會用它來開箱... – 2015-02-13 09:27:24

+0

該文章的Airbnb似乎影射流星是爲數不多的同構框架,是一個採用文章所指的「混合方法」。 – 2015-02-13 09:29:28

相關問題