我是新来的脊梁,有一个问题我不知道。我在require.js中使用主干。当我想第一次呈现某个视图时(当我在浏览器中重新加载页面时),index.html会立即显示,但是它被隐藏了大约2秒,然后使用呈现的模板再次显示。如果我然后在视图之间导航(没有点击刷新),它工作平稳,但是初始呈现做错了一些事情。这是我的代码:
查看:
define(['jquery','underscore','backbone', 'text!../../../templates/home/HomeView.tpl'],
function($, _, Backbone, HomeTemplate)
{
var HomeView = Backbone.View.extend(
{
events:{
},
render: function ()
{
var template = _.template(HomeTemplate);
this.$el.html(template);
return this;
}
});
return HomeView;
});路由器:
define(['jquery','underscore','backbone'],
function($, _, Backbone)
{
var container = $("#container");
var AppRouter = Backbone.Router.extend(
{
routes:
{
"": "home"
},
home: function()
{
require(['views/home/HomeView'],
function(HomeView)
{
var Home = new HomeView({el: container});
Home.render();
});
}
});
var initialize = function()
{
var app_router = new AppRouter();
Backbone.history.start();
};
return { initialize: initialize };
});控制台没有出错。这种行为正常吗?
发布于 2013-09-04 13:06:38
这是正常的。
RquireJ通过http请求加载依赖项,并且这些请求确实有超时。此外,在浏览器中,最大并行下载是有限制的。这些延迟在启动时可以很容易地加到2秒,再加上网络延迟。
如果您希望将此延迟降到最低,请将r.js中提到的文件最小化,如RequireJS文档中所述。
编辑:如果minify不能解决问题,浏览器分析工具可以帮助您。
https://stackoverflow.com/questions/18614377
复制相似问题