2010-08-24 4 views
1

Plus j'utilise JavaScript, plus j'essaie de trouver des moyens efficaces de charger et d'exécuter mes scripts. Une méthode que j'ai trouvée très utile est le chargement de javascript sans blocage.Utilisation de scripts non bloquants

function include_js(url) { 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = url; 
    document.getElementsByTagName("head")[0].appendChild(script); 
} 

include_js('script.js'); 

JavaScript a aussi une méthode de fenêtre qui est exécutée lorsque la page est chargée.

window.onload = function() { 
alert('Script executed onload'); 
}; 

Ce que je veux savoir est, comment le script de traitement du navigateur exécuté par la méthode window.onload, est-il bloque ou un script non-blocage?

Répondre

1

Ce que je veux savoir est, comment le script traitement du navigateur exécuté par la méthode window.onload, est-il bloque ou d'un script non bloquant?

Faites-vous référence à la façon dont le code dans le gestionnaire d'événements est exécuté? Il fonctionne de manière asynchrone, mais comme JavaScript n'a qu'un seul thread, ce sont des blocs, et seront bloqués jusqu'à ce que le thread soit disponible.

Voir this article about how timers work pour avoir une meilleure idée de la manière dont les méthodes asynchrones se comportent dans un environnement à un seul thread. La seule façon d'avoir du code JavaScript qui s'exécute en parallèle à un autre code JavaScript est d'utiliser webworkers, qui utilise en fait un thread séparé.

+0

Merci pour les liens, c'est la réponse que je cherchais. –

1

Il est non-bloquant. Vous assignez simplement une variable à une fonction et l'exécution de l'autre script continue. Une fois le DOM chargé, le rappel affecté est appelé.

Questions connexes