내가 알고있는 바로는 브라우저가 따라 가지 못할 수도있는 빠른 속도에 대해 DOM $("#loadingMessage").html()
을 업데이트하려고합니다. 페이지가 변경되거나 크기가 조정될 때마다 브라우저가 수행하는 리플 로우라는 것이 있습니다. 변경 사항을 렌더링하여 말하십시오.
함수가 완료 될 때마다 리플 로우를 생성하려면 주석에 명시된대로 $.Deferred
객체 또는 웹 작업자로이 함수를 래핑하거나 고유 한 사용자 정의 콜백을 만들어야합니다. 작업이 완료되면이 함수는 콜백을 생성하여 사용자가 작업을 선택하여 진행 상황을 표시합니다.
$ .Deferred 개체의 멋진 래퍼는 jQuery .animate()
또는 $.ajax()
에서 찾을 수 있습니다. 각 단계에서 loadingProgress를 확인하는 방법을 모르겠으므로 .animate()
과 .progressbar()
위젯 및 맞춤 콜백을 결합하여 나중에 수정할 수 있습니다.
jQuery의 $ .Deferred 래퍼 (예 : 페이지로드 용). document.ready 및 window.load는 완벽합니다. 이 시간대에 진행 막대를로드하고 .animate()
으로 리플 로우를 생성 할 수 있습니다. 여기에 기초를 보여줄 것이며 jsfiddle을 만들어 실제 상황을 볼 것입니다. 예를 들어 ajax를 사용하여 외부 스크립트를로드하는 URL로 채워진 배열을 생각해 볼 수 있습니다. 다음 실행 한마디로
:
진행 막대가
.animate()
으로 진행되면서 당신의 양을 통해 작업을 intialized있다
// once the dom is ready
$(function() {
bar = $(".progressbar");
buildMyProgressbar.init();
buildMyPage.init();
});
// once the page is loaded
$(window).load(function() {
buildMyProgressbar.stop();
});
. pageload
을 전달할 것입니다.이 값은 하나의 진행 단계의 숫자 ID이거나 "작업"과 "작업"의 양입니다.
animation: function (pageload) {
$({
job: pageload.fakeJob // starts at 1
}).animate({
job: pageload.fakeJobs // end at jobs.length
}, {
duration: 1000,
step: function() {
var percent = Math.round((this.job/pageload.fakeJobs) * 100),
percentString = percent + "%";
// verify your job is loaded
if (buildMyPage.isJobLoaded(this.job)){
bar.children().eq(0).css({ width: percent + "%" }).text("loading: " + percent);
}
},
complete: function(){
bar.children().eq(0).text("complete");
}
});
}
jQuery를 UI의 ProgressBar : http://jqueryui.com/progressbar/
DEMO :http://jsfiddle.net/tive/b2Utn/
은 디버거없이 콘솔에 오류가 있습니까, 아니면 그냥 아무것도 전혀 발생하지 않습니다? – Nomad101
부분 코드를 제공했는데 buildMyPage는 무엇을합니까? –
아마도 JavaScript에서 루핑과 루핑을하고있어 브라우저가 뷰를 업데이트 할 기회가 없을 수도 있습니다. – Haocheng