Assembler son PC avec les meilleurs composants

Catégorie Générale => Discussions Générales => Discussion démarrée par: Toomms le 19 février 2019 à 10:16:19

Titre: Un Développeur Web de disponible ?
Posté par: Toomms le 19 février 2019 à 10:16:19
Bonjour !

Je débute en développement et je cherche à comprendre le code ci-dessous, si quelqu'un puisse me l'expliquer en détail je vous en serrais grandement reconnaissant par exemple qu'est ce que : (verb, url) dans "req.open(verb, url);".

Je pense avoir compris que l'on créer une fonction que l'on appel "Request" et qu'elle est appeler par le second morceau de code ce qui fait apparaître des marqueurs sur une carte, mais j’aimerai de plus amples détails.

Merci d'avance. o:)

P.S : je ne sais pas si j'ai poster au bon endroit désolé.



function Request(verb, url) {

    this.verb = verb;
    this.url = url;

    var stations = [];

    this.call = function(callback) {
        var req = new XMLHttpRequest();
        req.open(verb, url);

        req.addEventListener('load', function() {
            if (req.status >= 200 && req.status < 400) {
                stations = JSON.parse(req.responseText);
                callback(req.responseText);
            } else {
                callback(req.status);
            }
        });

        req.addEventListener('error', function() {
            console.log("erreur avec l'url " + url);
        });

        req.send(null);
    };

    this.form = function(callback) {
        callback(stations);
    };

}


var requestApiJcDecaux = new Request("GET", "https://api.jcdecaux.com/vls/v1/stations?contract=Lyon&apiKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

requestApiJcDecaux.call(function (response) {

    response = JSON.parse(response);
    response.forEach(function (info) {
        var latitude = info.position.lat;
        var longitude = info.position.lng;
        L.marker([latitude, longitude]).on('click', onMarkerClick).addTo(mymap);
    });

    function onMarkerClick(e) {
        var addressElt = document.getElementById("address");
        var bikeStandsElt = document.getElementById("bikeStands");
        var availableBikesElt = document.getElementById("availableBikes");
        requestApiJcDecaux.form(function (infos) {
            infos.forEach(function (info) {
                if ((e.latlng.lat === info.position.lat) && (e.latlng.lng === info.position.lng)) {
                    addressElt.innerText = info.address;
                    bikeStandsElt.innerText = info.bike_stands;
                    availableBikesElt.innerText = info.available_bikes;
                    return;
                }
            });
        });
    }
});