3

用Play來設計一個網絡應用程序的好方法是什麼?我正在開發一個客戶端應用程序,它使用Ajax獲取部分視圖,然後使用JQuery將它們置於DOM中。爲了支持SEO和優雅的降級,我應該製作一個重複的控制器方法,它將局部視圖呈現爲整個頁面的一部分(包括頁眉和頁腳)。所以當我使用Jquery進行調用時,它會調用「item/12345/partial」,它只會帶來部分視圖,但當用戶轉到「item/12345」時,它應該顯示整個頁面,部分已經卡住了。設計一個使用Ajax的Play框架,但也關心搜索引擎優化和優雅的退化

第二種方法是避免第二個控制器方法,並且總是返回完整的頁面內容(標題,javascripts,樣式,部分和頁腳)。當使用JQuery調用時,回調方法將僅剝離必要的HTML並將其放入DOM中。當然,這意味着服務器始終會返回相同數量的內容,所以它首先會降低使用AJAX的優勢。

你會推薦哪一個?

回答

0

第二個選項對我來說看起來不太好。我們用我們的項目是什麼,我們有一個由AJAX部件延長,這些零件有這樣的事情對Ajax請求不加載模板的其餘部分基本模板:

#{ifnot request.ajax} 
    #{extends 'search-main.html' /} 
#{/ifnot} 

search-main.html具有#{doLayout /}的地方如果要呈現整頁(非Ajax請求),則應該發生ajax部分。價值在request.ajax將由Play設置,所以你不必自己弄清楚。

關於重複控制器:如果需要,您應該能夠將一個控制器映射到多個URL。只需將它們添加到routes文件。但在我們的方法中不是必需的。