2010-12-28 3 views
0

Предположим, у меня есть этот код:Когда выполняется код javascript?

<head> 
    <script type="text/javascript"> 
    func1(); 
    </script> 

    <script type="text/javascript" src="jquery.js"></script> 

    <script type="text/javascript"> 
    func2(); 
    </script> 

    <script type="text/javascript" src="tabber.js"></script> 
</head> 

Would func2() вызывается только после того, как jquery.js полностью загружен? В основном я пытаюсь сделать индикатор выполнения на странице с тяжелым javascript кодом. Поэтому я хочу знать, сколько страницы загружено. Теперь я могу показать этот прогресс в виде количества полностью загруженных js-файлов. Поэтому, если func2() вызывается только после полной загрузки jquery, я могу использовать эту функцию, чтобы скопировать индикатор выполнения на некоторый процент.

+3

У вас не может быть Javascript-код непосредственно в ... исправить свой пример. – MattJ

+0

Вы можете использовать что-то вроде этого: http://www.dynamicdrive.com/dynamicindex11/xpprogressbar.htm – RDL

+0

Кроме того, лучше не загружать JQuery локально, а получать его из стороннего источника (например, с помощью API библиотек Google http: //code.google.com/apis/libraries/devguide.html). – nico

ответ

2

JavaScripts на странице будет выполняться немедленно, пока страница загружается в браузер. Исключением является, когда он сказал, чтобы стрелять по событию (например: нажмите, после загрузки страницы, и т.д.)

Если вы хотите, чтобы код выполняется только после загрузки страницы вы можете использовать:

<head> 
<script type="text/javascript" 
    src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"> 
</script> 
<script> 
    $(document).ready(function(){ 
    [code to run once page loaded here] 
    } 
</script> 
</head> 

Примечание: добавьте свой Javascript в теги.

+0

Вы что-то не забываете? Как загружать jQuery, прежде чем пытаться использовать его для своей 'готовой' функции? – Powerlord

+0

действительно. Nice catch. JQuery load added – RDL

2

Ни один из них никогда не будет вызван, потому что их нет в <script> тегах.

Возможно, вы захотите загрузить все необходимые вам сценарии, а затем использовать событие window.onload или jQuery ready, чтобы вызвать функции, которые вы хотите вызвать.

<head> 
    <script type="text/javascript" src="jquery.js"></script> 
    <script type="text/javascript" src="tabber.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      func1(); 
      func2(); 
     }); 
    </script> 
</head> 
+2

Ваш код в тегах скрипта либо ... –

+0

haha ​​- исправлено – zsalzbank

+0

Упс, я думаю, у нас было состояние гонки там. Я ниспровернулся, пока на моем экране не было тегов скриптов, но, видимо, вы уже отредактировали ответ ... Теперь я не могу отменить нижний предел. :( –