2010-02-02 2 views
1

다른 페이지의 번호를 삽입하고 싶습니다. 원격 호출은 작지만 (숫자 만 반환 함) 요청이 처리되는 동안 페이지가 계속로드되기를 원합니다. 어떻게해야합니까? 현재 진행 중입니다.페이지 렌더링을 중단하지 않는 자바 스크립트 코드

<span id="target">Loading ...</span> 
<script> 
var cb = function(data) { 
    document.getElementById("target").innerHTML = data; 
} 
</script> 
<script src="http://webnumbr.com/webnumbrs.latest.json(callback=cb)"></script> 

클라이언트 측 또는 서버 측 변경이 가능합니다. 그냥 클라이언트에 대한 최소한의 코드를 포함 난 당신이, 당신의 AJAX 호출이 비동기 있는지 확인하고 "webNumbr_webnumbrs"을 업데이트 현재 페이지를로드하는 다른 페이지에서 내용을로드 AJAX를 사용하고 믿고 더 나은

답변

1

"공식적인"권장 사항 (rules 참조)은 모든 JavaScript를 HTML 파일 맨 아래에 배치하는 것입니다. 스크립트의 결과가 추가 렌더링에 영향을 줄 수 있으므로 모든 태그의 내용은 렌더링이 계속되기 전에 평가됩니다 (document.write() 생각하기). 솔직히

+0

음, 나는 사용자에게 embed 코드를 제공하고 있습니다. 따라서 embed을 원할 때 한 장을 넣고 바닥에 다른 것을 넣으면 아주 좋아 보이지 않습니다 ... –

0

성공적으로 완료된 후에 만 ​​제어하십시오.

+0

어떻게 비동기인지 확인해야합니까? 나는 XMLHTTPRequest 객체를 인스턴스화하고 싶지 않다. 클라이언트 코드를 꽤 크게 만들 것이기 ​​때문이다. –

1

나는 가장 좋은 방법은 문서가 완전히 렌더링 될 때까지이로드되지 않도록 단순히 onLoad() 명령에 넣어 될 수있다 생각합니다. Tom의 답변과 유사하지만이 경우에는 발생한 DOM 문제의 대부분을 제거합니다.

+0

지원됩니까? 'onLoad' 함수를 사용합니까? 나는 그 태그에서 벗어났다는 느낌이 들었 기 때문에 항상 그 태그에서 벗어났다. ... –

+0

어떤 것들에는 완벽하게 지원되고 추천된다. 페이지 렌더링을 방해하거나 시작하기 전에 페이지를 완전히 렌더링해야하는 경우에는 onLoad 문을 사용하는 것이 좋습니다. http://www.w3schools.com/jsref/event_onload.asp – jerebear

+0

'onLoad()'를 지원하는 요소는 거의 없습니다. 'window.onLoad = function() {// stuff}'할 수 있을까요? –

관련 문제