2013-10-03 212 views
0

我正在創建一個Ember應用程序,該應用程序內置了一個搜索引擎,用於表示房屋。當房屋被找到/添加或移除/出售時,我的結果變化很大。因此,我的搜索結果一直在變化。Ember搜索引擎

我也有每個房子有一個類似的房屋部分的頁面,顯示總是在改變這個類似的房屋。

我正試圖找到讓這個應用可抓取到搜索引擎的最佳方式。

我可以像每個頁面的話語使用noscript tages,但因爲我所有的房屋頁面可以擁有不同的信息和結構,這取決於代理商/銷售商,這將是更多的工作,基本上重複客戶正在做的事情!

我可以沿着phantomjs路線緩存我的所有頁面並通過escapedfragment_方法進行服務,但我認爲這將是一個資源密集型方法,內容變化如此之多。此外,我的房屋頁面上有類似的房屋,可以根據用戶/位置等進行更改,但我不確定如何緩存這些部分。

另一種方法是將我的頁面/部分模板轉換爲服務器端模板,以便我可以在服務器上呈現它。例如,當客戶通過我的應用程序應用程序以他們需要的格式創建房屋頁面時,他們需要單擊發布,然後將呈現的HTML轉換爲帶有佔位符等數據的服務器端模板。

任何人都可以幫忙嗎?任何想法/建議/意見都會很棒!

回答

0

我想你已經回答了你自己的問題。這是所有關於權衡和找到最適合您的特定情況的解決方案。沒有銀彈。就我個人而言,我會選擇接近noscript的路線,但不是將內容放入noscript標記中,而是將其放在常規div中,默認情況下它們是no-ember。然後,當文檔準備就緒時,我測試以查看客戶端是否支持推送狀態。如果是這樣,我初始化我的Ember應用程序,並隱藏no-ember股利。如果不是,則所有no-ember div都可見,以便客戶端可以像正常一樣查看/使用內容。