2015-07-09 90 views
11

的所有內容,我們有一個角+離子的應用程序,我們計劃通過科爾多瓦運行,但與我們試圖追查性能問題。角+離子加載通過XHR

我們正在運行在本地或內置應用程序時,看到在Chrome瀏覽器開發工具網絡選項卡,如下:

  • CSS的重複裝載
  • XHR請求獲得每一個模板文件我們角UI路由器鏈接,而不必訪問路線尚未

舉個例子:

enter image description here

和線路3167(帶星號表示)從angular.js來源:

append: function(element, node) { 
    var nodeType = element.nodeType; 
    if (nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT) return; 

    node = new JQLite(node); 

    for (var i = 0, ii = node.length; i < ii; i++) { 
     var child = node[i]; 
     element.appendChild(child); * 
    } 
}, 

我從來沒有見過這樣的事情 - 我們已經檢查了所有的基本知識(重複的腳本/ CSS包括,等等),禁用離子緩存等。

我正在剝離東西到螺柱,看看是什麼可能導致這種情況,但希望別人看到了這一點,並可以提供一些建議,從哪裏開始尋找。

UPDATE

重複的CSS似乎是由於其自舉我們的角應用程序被錯誤地指出,作爲UI路由器配置的狀態我們的index.html文件。

所以根本的問題是虛假/意外XHR拉到所有的應用程序中的靜態文件(角UI模板,模板指令)的。

+0

爲什麼您的index.html會被XHR請求重新加載? –

+0

@AndrewMcGivery - 更新的問題 - 用戶界面路由器被錯誤地指向index.html文件,一切都在路由器是通過XHR –

+1

獲得「預加載」沒有足夠的信息來診斷問題。你可以在Plunker中複製這個問題嗎? – Phil

回答

4

那麼,當一個狀態被激活時,模板自動插入到其父狀態的模板的用戶界面視圖。

你應該檢查你是如何定義你的狀態的。和/或與我們分享你的狀態定義:)

5

我處理HTML模板的方法是使用一飲而盡-NG-模板或呼嚕聲,角模板緩存它們全部在編譯時(根據任務管理器的哪種香味你像現在一樣)。

由於我們正在處理應用程序,因此內容應該更好地加載而不是延遲加載(只要您以MB爲單位計算其總大小),從而節省一些帶寬並改善整體用戶體驗。另外它可能只是解決你的問題。

在編譯時緩存模板的美妙之處在於你的實現並不需要知道他們是從(服務器或緩存層)來了,這樣的話你不需要更改任何代碼。

P.S.我明白我的答案不會解決您的實際問題,但它可能同時解決2個問題。