2012-05-28 85 views
2

我正在開發一個社交網絡應用程序,用戶可以相互關注。帶動態內容的Rails碎片緩存

爲了加快速度,我在用戶的預覽和完整頁面視圖上添加了片段緩存。

好消息是應用程序變得非常快。 糟糕的是我開始遇到跟隨按鈕相關的錯誤。

事實上,所有用戶預覽和完整頁面瀏覽都有一個跟隨塊,可以有不同的4個狀態,無論用戶是否已登錄,看到他的個人資料,看到其他人已經跟隨或已經看到其他人未遵循。

爲了解決這個問題,我結束了每個用戶的預覽和全頁面視圖在4個不同狀態(= 8個不同的緩存片段,每個用戶)的不同緩存版本。問題現在已經消失,但我不禁想到這遠離最佳狀態。

然後我聽說Ryan Bates' Railscast on dynamic fragment caching並開始思考。

也許我可以通過ajax加載按鈕。但後來...

  • 我應該爲每個按鈕提出一個請求嗎?
  • 我應該把他們全部收集起來,以防止有很多請求?怎麼樣 ?
  • 有沒有更好的方法?

您怎麼看? :)

+0

答案2年後被接受...... – StaticVoid

+0

遲到比從未好過吧? :d –

回答

1

我應該爲每個按鈕提出一個請求嗎?

不,你應該捆綁在一起,因爲這將是比每個按鈕都有一個請求快得多

我應該集合他們,以防止有很多的請求?怎麼樣 ?

是的,你知道所有的對象顯示在一個頁面上,所以你應該能夠收集所有用戶的id被跟隨,並要求他們遵循的狀態。

有沒有更好的方法?

沒什麼我能想到的,但這並不意味着沒有更好的方法。