Асинхронная загрузка нескольких файлов JS от Zombie - PullRequest
2 голосов
/ 01 марта 2012

Попробуй Зомби в течение нескольких первых часов и будь очень взволнован.Единственная (удача для начинающего?) Проблема в том, что скрипты загружаются асинхронно (что здорово) и выполняются в том порядке, в котором они были загружены (а не в том порядке, в котором они упоминаются в «оригинальном» HTML-файле).Я объясню:

<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
    <script>alert($('body'))</script>
</head>

http://jsfiddle.net/viebel/GWYEj/ - следующий скрипт загружает jQuery и пытается использовать его.Для загрузки jQuery требуется время, но Zombie, похоже, переходит к следующему разделу сценария, прежде чем загрузка будет завершена.Очевидно, что $ ('body') без jQuery не имеет большого значения, поэтому мы получаем следующую ошибку:

Zombie: GET http://jsfiddle.net/viebel/GWYEj/show/
Zombie: GET http://jsfiddle.net/viebel/GWYEj/show/ => 200
Zombie: GET http://jsfiddle.net/js/lib/mootools-core-1.4.4.js
Zombie: GET http://code.jquery.com/jquery-1.7.1.js
Zombie: GET http://jsfiddle.net/js/lib/mootools-core-1.4.4.js => 200
Zombie: Unexpected token } SyntaxError: Unexpected token }
    at Object._evaluate (/home/viebel/node_modules/zombie/lib/zombie/browser.coffee:136:28)
    in http://jsfiddle.net/viebel/GWYEj/show/:undefined:undefined<script>
Zombie: GET http://code.jquery.com/jquery-1.7.1.js => 200

В "обычном" браузере код работает бегло.Да, мы знаем, что node.js на самом деле не является клиентским javascript, но Zombie.js должен быть, не так ли?

Пожалуйста, помогите, что мы делаем неправильно.

...