sql >> Databasteknik >  >> NoSQL >> MongoDB

Javascript-modulmönster med Ajax-återuppringning

Gör getOffers returnera jqXHR getData returnerar som nedan -

var myApp = (function () {

    var Var1 = [];

    var getData = function (sendData) {

        return $.ajax({
            type: "POST",
            url: URL,
            data: sendData,
            datatype: "json",
            success: function (results) {}
        });

    };

    var getOffers = function (sendData) {
        // return the jqXHR returned by getData
        return getData(sendData);
    };

    return {
        getOffers: getOffers
    };

})();

jqXHR objekt som returneras av $.ajax({}) är ett Promise -När du får ett framgångssvar för Ajax-förfrågan - du kan bifoga en framgångshanterare så här - utanför din ajax-förfrågan

myApp.getOffers({
    'showData': 1,
    'myLocation': "Location1",
    'clientID': "Client1"
}).done(function (data, textStatus, jqXHR) {

    // work with DOM here
});

Mer om Jquery Deferreds/Promises här -

Du har också skapat getData , getOffers global genom att sakna var framför under deklarationen.

Enligt din kommentar om att använda POST istället för GET , den allmänna tumregeln är - GET är för hämtning av data, POST för att spara - bara för att du använder POST det betyder inte att någon inte kan sniffa informationen du skickar, det är bara en del av förfrågningskroppen istället för förfrågans URL. Om du tror att data du skickar är riktigt känslig bör du undersöka att aktivera SSL(HTTPS) för din app.




  1. Redis anpassade kommandon

  2. snabba upp bearbetningen av stora resultatuppsättningar med rmongodb

  3. Spara delmängd av MongoDB-samlingen till en annan samling

  4. Top Redis användningsfall efter kärndatastrukturtyper