2014-05-25 75 views
3

所以,我想要關於angularjs的社區建議接管已經服務器端呈現的頁面。angularjs接管已經服務器端呈現的頁面

angularjs很棒!但是當它涉及到首頁加載性能和SEO時,存在一個真正的缺點。顯然,angularjs與服務器端渲染不兼容。

長話短說,我想在服務器端渲染一個頁面,並儘可能快地將它返回到用戶/機器人所有的數據。然後在後臺引導角度以應用頁面行爲。當有請求加載新數據時,我只想加載數據並綁定到內容,而不刷新所有內容並往返獲取html。

目前,我使用Velocity作爲服務器端模板引擎來創建渲染頁面,然後使用angular.bootstrap異步來應用角度。

問題的解決方案:

  1. 雙視角技術 - 我渲染頁面的兩倍(儘管在第二時間沒有什麼事,但我寫的代碼兩次)

  2. 速度不屬於最簡單的寫意見方式。這是相當古老的技術,我不太喜歡它。

那麼,你的意見是什麼? 在此先感謝!

回答

1

對於搜索引擎優化,我認爲最好的方法是將預渲染的HTML快照提供給搜索引擎爬蟲。

基本上,搜索引擎抓取工具會用一些特殊的查詢字符串參數打你的頁面,以將自己標識爲抓取工具而不是真正的用戶。當您檢測到網址格式時,您可以爲網頁提供預渲染的無JavaScript快照。

退房谷歌的解釋在這:https://developers.google.com/webmasters/ajax-crawling/docs/html-snapshot

至於第一頁加載時,如果你的雙花括號顯示引導之前,應使用NG綁定指令(https://docs.angularjs.org/api/ng/directive/ngBind)。如果您不喜歡在檢索數據之前顯示您的頁面的方式,請在您的控制器上使用解決方案或顯示適當的加載指示器(微調器,「加載...」或任何您喜歡的內容)以通知用戶加載是進行中。

Resolve由默認的Angular路由器和ui路由器支持。你可以在網上找到如何使用它們的例子。

+0

你是否熟悉更多的技術用於服務器端渲染,角度良好?客戶端和服務器呈現的代碼重用如何? – alonn24