임베디드를 처음 접했을 때 알아낼 수없는 한 가지 문제가 있습니다. require.js와 함께 백본을 사용합니다. 처음으로 (브라우저에서 페이지를 다시로드 할 때) 일부보기를 렌더링하려는 경우 index.html이 즉시 표시되지만 약 2 초 동안 숨겨진 다음 렌더링 된 템플릿으로 다시 표시됩니다. 그런 다음보기간에 이동할 때 (새로 고침없이) 부드럽게 작동하지만 초기 렌더링은 잘못된 결과를 초래합니다. 여기 내 코드입니다 :Backbone.js 렌더링 지연?
보기 :
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 };
});
내가 콘솔에 오류를 얻을 수 없습니다. 이 행동이 정상입니까?
답해 주셔서 감사합니다. 그것의 이상한 모든 localhost, 그리고 당신이 사용자에게 뭔가를 보여준 후 공백으로 돌아갈 때부터 사용하기 위해 다소 anoying ... 어떻게 첫 번째 깜박을 피하기 위해? – gorgi93
이것은 4 개의 요청으로 localhost에서 2 초 지연이 발생할 것이라고 확신하지 않습니다. 나는 똑같은 설정을 사용하고 그것은 거의 즉각적이다. 유일한 차이점은 원시 텍스트를 입력하는 대신 내 백본 템플릿을 JS 함수로 사전 컴파일하는 것입니다. 이것은 당신의 비 효율성이 초기 템플릿 렌더링에 있다고 믿게합니다. 내가 미리 컴파일을 시도해 볼께. –
크롬 개발자 도구를 사용하여 어떤 일이 벌어 졌는지 더 자세히 보았습니까? –