當我有動態和靜態內容顯示時,我在控制器中使用getOrElse。高速緩存中的靜態,然後用動態部分一起使它:
try {
Html staticHtml = Cache.getOrElse("static-content",() -> staticView.render(), 60 * 60);
Html rendered = dynamicPage.render(arg1, arg2, staticHtml);
return ok(rendered);
} catch (Exception e) {
e.printStackTrace();
return internalServerError();
}
staticView.render()
從視圖返回一些HTML。這個視圖不應該調用任何其他動態的頁面,或者隱藏你不想隱藏的東西。
60*60
意味着我想將它保存一小時(60秒Times全球60分鐘... ...好吧,你可以寫3600
如果你想)
我要補充一點,getOrElse
得到Object
從緩存中與指定鍵(在這個例子中鍵是static-content
),但是如果它找不到它,則它調用函數,該函數返回一個對象,然後該對象將被存儲在具有該鍵的緩存中指定的時間量。很簡約。
然後,您可以調用其他(動態)頁面並將html傳遞給它。
動態的東西將保持動態:)