10

我們正在研究一個相當大且廣泛的應用程序。 該網站將有很多不同的部分,有一些非常不同的用戶界面要求和行爲。展望未來,Rails 4將資產管道劃分爲獨立的寶石,因此我們可以選擇是否包含它。 turbolinks可能會發生同樣的情況。來自Rails 4的Asset-Pipeline/Turbolinks對於大型應用程序有什麼優點和缺點?

這些天我一直問自己的問題,無法找到答案是:我應該在我們的項目中使用這些庫嗎?

我反思的主要問題是,一體化文件策略可能無法正常工作,我們必須在應用程序的不同部分使用文件包。 turbolinks會如何對此做出反應,因爲它必須假設所有的js/css已經被加載了?這種配置的優點是否克服了管道和渦輪鏈路所隱含的代碼複雜性?

我不期待是/否的答案,只是對此事的一些意見。

+0

Turbolinks已經是一個寶石。 https://github.com/rails/turbolinks – emrahbasman

+0

嗡嗡聲真實,但他們仍然可以決定默認不包含它。 –

回答

11

這兩者都是不一定相互抵消的有效工具。

Turbolinks:使您只能加載頁面的主體,從而使其作爲AJAX請求(這種行爲將是Facebook的一個示例)。

優點:

  • 跳過的完全呈現一個新的頁面,從而消除「空白頁」時在瀏覽器無響應的瀏覽器的任務。
  • 與以前相關:如果您的行爲可能會因加載新頁面而受到影響,例如播放歌曲,turbolinks不會影響它(請參閱下一節的soundcloud)。
  • 不重新加載文檔頭,因此不加載相同的標籤/內容兩次(如果它是相同的)。
  • 使您仍可以在服務器端緩存視圖內容。

缺點:

  • 一拖,如果標題標籤真的需要更新(新的js文件,新的css文件,元標籤更新中...)
  • 如果要使用客戶端查看渲染,它只是不是它的工具。
  • 禁用行爲的默認行爲只是很痛苦(使用css類來禁用一個節內的錨標籤?)。

這實際上是一個什麼樣的應用程序體系結構的問題,它的目標是什麼。

關於資產流水線,我對它有不同的結果,儘管我認爲它有更多的優點而不是缺點。總體而言,預處理工具增強了跨瀏覽器開發的生產力,但不要依賴於生產。但在資產流水線的情況下,它必須與你想要的一樣好。您可以預處理SASS,Coffeescript,您擁有像羅盤或波本威士忌這樣的優秀圖書館,但這也會增加您的性能開銷。因此,請對其進行基準測試,看看它們是否適合您。

2

讓我們先從一個關於缺點後:http://eviltrout.com/2013/01/06/turbolinks-and-the-prague-effect.html

如果這不是你一個問題:http://geekmonkey.org/2012/09/introducing-turbolinks-for-rails-4-0/

爲了總結的東西了:Turbolinks將提高你的頁面加載 顯著如果您頁面共享JavaScript和CSS樣式。當服務器端性能出現問題時,PJAX 就派上用場了。

  • 希望這有助於:)
+0

關於這些缺點的博客文章非常清楚不使用turbolinks的原因(我認爲我肯定在其中),所以是的,它幫助:) –

相關問題