GWT BOOTSTRAP - Вопрос - PullRequest
       6

GWT BOOTSTRAP - Вопрос

3 голосов
/ 13 июля 2010

Читая GWT Bootstrap на странице Googles, у меня есть вопрос. (http://code.google.com/p/google-web-toolkit-doc-1-5/wiki/FAQ_WhenDoModulesLoad)

Предположения: Большинство браузеров допускают максимум два одновременных соединения для извлечения ресурсов.

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 и ДействительноBigImageTwo.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. Закончено. BigImageTwo.jpg завершено.
  12. body.onload () срабатывает, в этом случае отображается окно оповещения ().

    Вопрос:

    откуда JAVASCRIPT знает, что документ готов начать с помощью функции onModuleLoad (шаг 10)?

Ответы [ 2 ]

2 голосов
/ 14 июля 2010

С той же страницы:

  • <img> теги не гарантируются при загрузке при вызове onModuleLoad().
  • <script> теги являются гарантированно завершит загрузку при вызове onModuleLoad().

Так что при выполнении onModuleLoad() загружается externalScriptOne.js, он не запускается до загрузки всех тегов скрипта.

0 голосов
/ 25 февраля 2011

nocache.js или cache.js могут добавить дополнительный тег <script> сразу после последнего тега <script>. этот дополнительный тег <script> не будет выбран до тех пор, пока все предыдущие теги <script> не будут выбраны, проанализированы и оценены. тогда этот тег <script> будет выбран, выполнен и оценен без ожидания каких-либо изображений. оценка этого тега <script> может вызвать onModuleLoad(), и он не будет ждать никаких изображений, поэтому это произойдет раньше, чем body.onload

это всего лишь моя теория; я не смог проверить это на своем сервере разработки, и я не пытался проверить это на appengine.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...