2010-07-13 2 views
3

Google의 GWT 부트 스트랩 페이지를 읽는 중 몇 가지 질문이 있습니다. (http://code.google.com/p/google-web-toolkit-doc-1-5/wiki/FAQ_WhenDoModulesLoad)GWT BOOTSTRAP - 질문

가정 : 대부분의 브라우저는 리소스를 가져 오는 데 최대 두 개의 동시 연결을 허용합니다.

HTML 페이지 :

<html> <body onload='alert("w00t!")'> <img src='bigImageZero.jpg'></img> <script source='externalScriptZero.js'></script> <img src='bigImageOne.jpg'></img> <img src='reallyBigImageTwo.jpg'></img> <script src='com.example.app.App.nocache.js'></script> <script src='externalScriptOne.js'></script> </body> </html>

그래서, 부트 스트랩이 구성되어

  1. HTML 문서를 가져올이며, 구문 분석이 시작됩니다.
  2. bigImageZero.jpg 가져 오기를 시작하십시오.
  3. externalScriptZero.js를 가져 오기 시작하십시오.
  4. bigImageZero.jpg 완료 (가정 해 봅시다). externalScriptZero.js가 페칭 및 평가를 마칠 때까지 구문 분석이 차단됩니다.
  5. externalScriptZero.js가 완료됩니다.
  6. bigImageOne.jpg와 reallyBigImageTwo.jpg를 동시에 가져 오기 시작하십시오.
  7. bigImageOne.jpg 완료 (다시 가정 해 봅시다). com.example.app.App.nocache.js는 페칭 및 평가를 시작합니다.
  8. ... nocache.js가 완료되고 컴파일 된 스크립트 (... cache.js)가 페칭을 시작합니다 (이것은 비 블로킹 임).
  9. ... cache.js가 완료됩니다. onModuleLoad()는 아직 호출되지 않았습니다. 문서가 '준비 됨'으로 간주되기 전에 externalScriptOne.js가 완료되기를 기다리는 중입니다.
  10. externalScriptOne.js가 완료됩니다. 문서가 준비되었으므로 onModuleLoad()가 실행됩니다.
  11. reallyBigImageTwo.jpg가 완료되었습니다.
  12. body.onload()가 발생합니다.이 경우 경고() 상자가 표시됩니다.

    질문 :

    어떻게 자바 스크립트가 문서 기능 (10 단계)는 onModuleLoad 시작할 준비가되어 있음을 알고있다? 같은 페이지에서

+0

귀하의 질문은 문법적으로 명확하지 않습니다. 정확히 알고 싶습니까? – tgdavies

+0

onModuleLoad 함수 (javascript)가 문서가 "준비"될 때까지 기다릴 수있는 방법 – CHAPa

답변

2

은 :

  • <img> 태그는 onModuleLoad()가 호출 될 때로드 할 수 보장 할 수 없습니다.
  • <script> 태그 onModuleLoad()이 호출 될 때로드 완료가 보장되는입니다.

따라서 onModuleLoad()이 실행되면 externalScriptOne.js가로드되고 모든 스크립트 태그가로드되기 전에 시작되지 않습니다.

+0

따라서 파서가 externalScriptOne.js를 가져 오기 때문에 OnModuleLoad가 시작되지 않았습니다. 권리 ? 미리 감사드립니다 – CHAPa

+0

네 맞습니다. externalStricptOne.js가로드 될 때까지 해고되지 않습니다. 이 스크립트 태그의 기능 또는 GWT가 body.onload에 등록되어 있는지 확실하지 않습니다. 그러나 위에서 언급했듯이 모든 스크립트는 onModuleLoad가 호출 될 때로드됩니다. –

+1

GWT가 Body.OnLoad 이벤트에 아무 것도 등록하지 않았을 수 있습니다. 당신이 GWT 컴파일 된 스크립트에서 이것을 찾고 있습니다. 하지만 google의 페이지에서 " 태그는 onModuleLoad()가 호출 될 때로드 완료를 보장하지 않습니다." body.onLoad 이벤트에 대한 이론을 어기십시오. – CHAPa

0

nocache.js 또는 cache.js는 마지막 <script> 태그 바로 뒤에 <script> 태그를 추가 할 수 있습니다. 이 여분의 <script> 태그는 이전의 모든 <script> 태그가 페치되고 구문 분석되고 평가 될 때까지 반입되지 않습니다. 이 <script> 태그는 이미지를 기다리지 않고 가져 와서 실행하고 평가합니다.이 <script> 태그의 평가는 onModuleLoad()을 호출 할 수 있으며 어떤 이미지도 기다리지 않으므로 body.onload보다 빨리 발생합니다.

이것은 단지 제 이론입니다. 내 개발 서버에서 확인할 수 없으며 appengine에서 확인하려고 시도하지 않았습니다.