2014-10-06 87 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代替时,一切正常。