11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Lors d'une requête avec l'objet XMLHttpRequest, il est possible que le chargement d'un contenu se fasse en mode synchrone (les instructions suivantes sont exécutées uniquement si le chargement est terminé) ou en mode asynchrone (les instructions suivantes sont exécutées en parallèle du chargement).

Je voulais savoir s'il était possible de reproduire ce comportement pour un script JS classique (sans "AJAX"). Cela me fait penser au "multi-thread".

function methodeAsynchrone() {}
function autresInstructions() {}

methodeAsynchrone();
autresInstructions();


Dans cet exemple, methodeAsynchrone() serait réalisé en parallèle des autresInstructions().
Est-ce possible ? Si oui, comment ?
Modifié par yep (08 Nov 2011 - 11:24)
Merci pour vos retours et pour le lien, je vais regarder cela en détail.

Si j'ai bien compris, on externalise le script via une "pseudo" requête asynchrone.

Cela semble la solution adéquate... mais je voulais justement rendre asynchrone l'insertion de l'information dans la page.

De ce que j'ai compris, celle-ci est réalisée à la réception du message envoyé par le worker externalisé.

monWorker.addEventListener("message", function (event) {
            document.getElementById("output").textContent = event.data;
        }, false);


Une solution peut-être ? (faire l'insertion des données depuis le worker, mais comment ?)

Pour info, mon script principal, ne devant pas être lié ou bloqué par l'insertion de données dans la page, est un crawler en JS. La priorité est donc cette fonction de crawl avant la fonction d'insertion de données dans la page.
Modifié par yep (08 Nov 2011 - 11:36)