2010-11-09 60 views
0

我有一個Rails應用程序,我加載了一個基本的HTML佈局,並使用JSON中的行填充主要內容。這個工作在2個步驟:優化動態頁面加載時間的最佳實踐(JSON生成的HTML)

  1. 渲染HTML
  2. Ajax調用來獲取JSON

這具有能夠緩存的HTML佈局不發生大的變化的好處,但它似乎有更多的缺點:

  1. 2 HTTP請求
  2. HTML不是那麼複雜,生成的HTML是所有的工作已經完成,所以我可能沒有按時節省那麼多。
  3. 在我的特定情況下,每個請求都要求我們檢查當前用戶,他們的角色以及與該用戶相關的一些事情,因此這兩個調用有些涉及。

當然,memcached可能會解決很多問題,我想知道這裏是否有一些最佳實踐。我在想我可以這樣做:

  • 將內聯JSON的第一頁和HTML一起在script塊中呈現。這將切斷那些需要用戶認證的2個服務器呼叫。而且,假設80%的時間你不需要進行第二次Ajax調用(在這種情況下是分頁/排序),這似乎是一個相當不錯的解決方案。

您對如何解決這個問題有什麼想法?

回答

0

做這樣的事情有好處和壞處。總的來說,我認爲這只是一個好主意,如果你通過ajax調用拖延的話會延遲頁面加載,導致最終用戶煩惱頁面上的大部分用例。

一個很好的例子就是在github上瀏覽一個倉庫。 90%的時間都是瀏覽這些文件,因此它們在頁面加載後使用ajax加載來填充每個文件的提交消息。

聽起來好像你正在嘗試這樣做來加速或爲你的用戶做些事情,但我認爲你應該考慮一下,什麼部分是慢的,頁面加載的速度(也許是什麼信息在您的用戶期望的頁面上)。正如你所說,使用memcached或片段緩存可能會給你提供你正在尋找的改進。

0

您是否在使用某種監控工具?我在Heroku上使用了New Relic RPM的免費版本。它爲每個控制器的操作提供了很多關於請求時間的數據。這樣的數據可以幫助您專注於優化過程。