2014-10-06 111 views
0

我有一個非常基本的路由器定義如下:加載路徑很慢

App.Router.map(function() { 
    this.resource('folders', {path: "/"}, function() { 
     this.resource('folder', {path: "/folder/:folder_id"}); 
    }); 
}); 

和簡單FoldersRoute與一些記錄掛鉤故障排除的:

App.FoldersRoute = Ember.Route.extend({ 
    model: function() { 
     return this.store.find('folder'); 
    }, 
    actions: { 
     loading: function() { 
      console.log("FoldersRoute: action(loading)"); 
     }, 
     didTransition: function() { 
      console.log("FoldersRoute: action(didTransition)"); 
     }, 
     willTransition: function() { 
      console.log("FoldersRoute: action(willTransition)"); 
     }, 
     error: function(error, transition) { 
      console.log("FoldersRoute: action(error)"); 
     } 
    } 
}); 

而且我使用DS.RESTAdapter連接到遠程服務器。

我的問題是,頁面加載速度正在達到10+秒,我看到FoldersRoute阻止:

FoldersRoute: action(loading)

如果我登錄服務器端,我看到沒有請求正在被只有在will/didTransision通過後纔會收到。

對於使用谷歌devtools的網絡同樣同樣。

如果我運行curl "http:/.../folders,則立即發送/接收請求/響應。

真的很奇怪的是,有時當我第一次啓動瀏覽器時,它工作的很好,只有在刷新之後它纔會變慢。

是否有一些已知的問題與鉻瀏覽器上的REST或別的什麼我做錯了?

DEBUG: Ember  : 1.7.0 
DEBUG: Ember Data : 1.0.0-beta.10 
DEBUG: Handlebars : 1.1.2 
DEBUG: jQuery  : 1.10.2 
+0

如果沒有看到它,就很難進行調試。如果你使用chrome運行perf工具,你可以追蹤昂貴的代碼路徑。最有可能的候選人是ajax響應,或者您正在頁面上放置大量的綁定數據。你可以包含帶有示例json響應和模型定義的模板嗎? – Kingpin2k 2014-10-06 19:07:59

+0

一般情況下,只有當模型響應需要很長時間才能解析時調用加載鉤子(ajax響應) – Kingpin2k 2014-10-06 19:09:25

+0

當我查看承諾窗口時,我看到'DS:RestAdapter#ajax GET to http:// ... /文件夾在完成之前保持等待9秒鐘。任何想法如何調試這將是受歡迎的。 – Kiffin 2014-10-07 09:42:18

回答

0

原來,性能問題是由python -m SimpleHTTPServer(哎呀)引起的。

當我直接從瀏覽器加載index.html作爲文件或使用adsf代替時,一切正常。