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
如果没有看到它,就很难进行调试。如果你使用chrome运行perf工具,你可以追踪昂贵的代码路径。最有可能的候选人是ajax响应,或者您正在页面上放置大量的绑定数据。你可以包含带有示例json响应和模型定义的模板吗? – Kingpin2k 2014-10-06 19:07:59
一般情况下,只有当模型响应需要很长时间才能解析时调用加载钩子(ajax响应) – Kingpin2k 2014-10-06 19:09:25
当我查看承诺窗口时,我看到'DS:RestAdapter#ajax GET to http:// ... /文件夹在完成之前保持等待9秒钟。任何想法如何调试这将是受欢迎的。 – Kiffin 2014-10-07 09:42:18