document.ready()에서 jQuery Deferred를 받을 수 있습니까?
스크립트가 로드된 직후에 번역을 받기 위해 Ajax에 요청합니다.페이지 하단에 스크립트를 로드하기 때문에 문서가 준비된 후에는 항상 이 메시지가 반환되지만, 문서 준비 상태에서 지연된 개체를 가져올 수 있는지는 여전히 궁금합니다.
이렇게 하면 다음과 같은 다른 작업을 수행하기 전에 문서가 준비되고 Ajax 호출이 성공적으로 반환되는지 확인할 수 있습니다.
$.when( $.ajax('translations'), document.ready())
.then(function(){
// Start doing stuff here
});
데이터()를 사용하여 지연된 개체를 문서와 연결하고 다음에서 해결()할 수 있습니다.ready
핸들러이렇게 하면 저장된 지연 개체를 $.when()과 함께 사용할 수 있습니다.
$(document).data("readyDeferred", $.Deferred()).ready(function() {
$(document).data("readyDeferred").resolve();
});
$.when($.ajax("translations"), $(document).data("readyDeferred"))
.then(function() {
// Start doing stuff here.
});
다음은 ircmaxell의 코멘트를 정리한 버전입니다.
(function() {
var doc_ready = $.Deferred();
$(doc_ready.resolve);
$.when(doc_ready, $.ajax('translations')).then(function() {
console.log("done");
});
})();
편집을
잘못된 편집을 중지하기 위한 몇 가지 설명:
jquery 개체에 함수 전달(예:$(some_func)
)와 같습니다.$(document).ready(some_func)
.
그러므로,$(doc_ready.resolve);
라인은 다음과 같은 것의 단축형일 뿐입니다.
$(document).ready(function() {
doc_ready.resolve()
});
사용해 보십시오.
$.when($.ajax('translations'), $.ready).then(function() {
// Start doing stuff here
});
내 버전은:
$.when(
$.Deferred(function() { $(this.resolve); }),
$.ajax('translations')).
then(function() { console.log("done"); });
참조용 업데이트(2015):
이것은 현재 버전의 jQuery에서 사용할 수 있습니다.
$.when($.ready).then(...);
highlandjs를 사용하여 스트림으로 변환하는 것도 간단합니다.
_($.when($.ready)).map(transform).pipe(output) // etc.
jQuery'swhen
그것은 적절한 약속이 아닙니다.다음과 같이 강제로 설정할 수 있습니다.
function documentReady() {
return Promise.resolve($.when($.ready));
}
용도:
documentReady().then(function($) { ... });
로 해결됩니다.$
그래서 그것도 좀 편리합니다.
대체 구현:
function documentReady() {
return new Promise(r => $(r));
}
언급URL : https://stackoverflow.com/questions/6177187/can-i-get-a-jquery-deferred-on-document-ready
'source' 카테고리의 다른 글
탐지된 예외 자체가 null입니다! (0) | 2023.08.22 |
---|---|
스키마에 대한 MariaBD 대안 (0) | 2023.08.22 |
INNODB -> 기본 열이 0이어야 합니까 아니면 null이어야 합니까? (0) | 2023.08.22 |
판다 데이터 프레임에서 NaN을 사용하여 행의 정수 인덱스 찾기 (0) | 2023.08.22 |
"R을 변수로 확인할 수 없음"? (0) | 2023.08.22 |