[英]Backbone.js rendering delay?
我是骨干新手,我无法解决一个问题。 我将骨干与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 };
});
我在控制台中没有错误。 这是正常现象吗?
这是正常的。
RquireJs通过http请求加载依赖项,并且这些请求确实存在超时。 此外,在浏览器中,最大并行下载是有限制的。 在启动时,这些延迟很容易加起来最多为2秒,加上网络延迟。
如果要最小化此延迟,请按照RequireJS docs中所述使用r.js最小化文件。
编辑:如果缩小无法解决问题,则浏览器分析工具可以为您提供帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.