Materiel.net PC 

Auteur Sujet: Un Développeur Web de disponible ?  (Lu 2434 fois)

Hors ligne Toomms

  • Membre Junior
  • **
  • Messages: 56
  • Sexe: Homme
Un Développeur Web de disponible ?
« 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;
                }
            });
        });
    }
});