2011-11-16 9 views
5

Capisco che JS esegua una pre-compilazione di funzioni prima di eseguire il codice. Quindi l'ordine di funzione non ha importanza. Ma, l'ordine delle funzioni diventa in qualche modo un problema quando si collegano i file * .js.Quando l'ordine di funzione è importante?

Ad esempio,

<script src="@Url.Content("~/Scripts/Personal/MyJScript.js")" type="text/javascript"></script> 


<script type="text/javascript"> 
    $(document).ready(function() { 
     hello(); 
     afterCall(); 
     hello2(); //fails, defined in MyJScript2.js 

    }); 

    function afterCall() { 
     alert('inline function defined after call'); 
    } 
</script> 

<script src="@Url.Content("~/Scripts/Personal/MyJScript2.js")" type="text/javascript"></script> 

Nel codice precedente, la funzione hello2() è definita in un file che viene collegato dopo che la chiamata è definito. La chiamata fallisce. Quindi, intuitivamente, suppongo che ora l'ordine di funzione contenga il numero in questo caso.

Considerando mi esibisco $(document).ready, il documento dovrebbe essere pronto, come si arriva. Quindi, perché succede?


Come richiesto, ecco il codice HTML lato client sarà probabilmente eseguiti

<body> 
    <script src="/Scripts/Personal/MyJScript.js" type="text/javascript"></script> 


<script type="text/javascript"> 
    $(document).ready(function() { 
     hello(); 
     afterCall(); 
     hello2(); //fails 

    }); 

    function afterCall() { 
     alert('inline function defined after call'); 
    } 
</script> 

<script src="/Scripts/Personal/MyJScript2.js" type="text/javascript"></script> 

</body> 
+0

Dove nel codice HTML complessiva appaiono quelle

0

I tag script nel corpo (o cercano di essere) prima che le richieste supplementari per i file JS esterni hanno completato.

È meno un problema di ordine di dichiarazione funzione di ordine di caricamento e tempi.

0

Invece di utilizzare un tag script per importare MyJscript2, si potrebbe usare getScript per afferrare lo script ed eseguire alcune funzionalità di callback successo.

Problemi correlati