Re: interface web et asynchrone

Pàgina inicial

Reply to this message
Autor: Frédéric
Data:  
A: Guilde
Assumpte: Re: interface web et asynchrone
Le mercredi 21 septembre 2022, frederic a écrit :

> seulement comment faire pour que toutes ces actions,surtout la requête
> POST, ça soit asynchrone?
> Que ça ne fige pas le diagramme des courbes
> que ça ne bloque pas l'utilisateur en attendant la réponse de la requête.
> Que le retour (OK ou pas OK) s'affiche dans un bandeau en haut de
> l'interface par exemple


Avec XMLHttpRequest ? Voici ce que j'avais fait pour piloter le dôme de mon
robot BB8 :

    function setSounds(sounds)
    {
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = soundsChanged;
        xhttp.open("POST", "/sounds", true);
        xhttp.timeout = 500;
        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhttp.send("sounds=" + sounds);
    }


    function soundsChanged()
    {
        if (this.readyState == XMLHttpRequest.DONE && this.status == 200) {
            if (prevSounds != null) {
                document.getElementById("sounds_"+prevSounds).style.color = "white";
            }
            document.getElementById("sounds_"+this.responseText).style.color = "yellow";
            prevSounds = this.responseText;
        }
    }


setSounds() n'est pas bloquante, et soundsChanged() est un callback.

-- 
    Frédéric