AngularJS這個大殺器使得實現SPA(Single Page App)變得異常的簡單,其雙向綁定讓頁面內容的從新渲染無需編寫大量JS代碼,無需構造DOM字符串醜陋的,做爲須要快速迭代,提升用戶體現的下一代互聯網應用,AngularJS能夠說已經成爲必選技術之一。 javascript
然而,AngularJS一樣存在Javascript的一個通病,其標籤佔位符須要在DOM加載完和javascript加載完後纔會觸發綁定和渲染工做,這致使在頁面加載時會出現閃爍(先顯示標籤,再被渲染掉),尤爲在網速不理想的狀況下,嚴重影響用戶體驗。 java
AngularJS提供了兩種方案來解決這個問題:
一、使用ng-bind或ng-bing-template屬性而不是{{field}}佔位符,因爲DOM屬性不可視,初始化時顯示默認空白。
二、使用ng-cloak屬性或設置ng-cloak樣式。其原理是AngularJS在初始化時在head裏增長了一個ng-cloak的樣式,該樣式設置DOM的display:none,即默認不顯示。 瀏覽器
然而這兩個方案都不理想ng-bind或ng-bing-template沒法實現複雜的內容表示,而現代瀏覽器仍然可能在ng-cloak樣式被插入head以前顯示頁面了。 雙向綁定
最終方案:樣式表中增長一個ng-cloak,內容同AngularJS動態建立的一致,在head中靜態加載 ip