Qual è il modo corretto per aggiornare tutti gli elementi di una pagina visualizzata tramite AJAX?

StackOverflow https://stackoverflow.com/questions/2342930

  •  23-09-2019
  •  | 
  •  

Domanda

Ho una pagina complessa viene reso da PHP e vorrei mantenere tutti gli elementi della pagina aggiornato tramite AJAX tempo di polling.C'è qualche generale / intelligente per la progettazione di un'infrastruttura di supporto senza dover specificare manualmente ogni elemento per l'aggiornamento?Solo in cerca di idee.Grazie!

È stato utile?

Soluzione

Utilizzando jQuery, vorrei inviare un elenco separato da virgole di selettori di jQuery per aggiornare al server. Il server in ultima analisi, rispondere leggendo quei selettori e produrre il codice HTML per riempire gli elementi corrispondenti ai selettori:

$.get("/updater", { elementsToUpdate: "#someDiv,#someTable,#someOtherElement"}, function(json) {
      $.each(json, function(k, v) {

        // the key is the selector, the value is the 
        // HTML to set to that (or those) element(s):
        $(k).html(v);
      });    
}, "json"); // we are expecting the server to return JSON

Il server risponderà inviando JSON al cliente con la seguente struttura:

 {"#someDiv":"this is some HTML to fill up div with ID someDiv","#someOtherElement":"here is some more HTML","#someTable":"here is some more HTML"}

Altri suggerimenti

magari aggiungere una classe speciale a tutti gli elementi per essere aggiornati tramite la tecnologia AJAX, e inoltre è possibile codificare i dati supplementari in alcuni altri attributi per esempio

<a class="ajaxUpdate" data="{'a':'json or whatever', 'put whatever here':'ok'}">test</a>

poi con jQuery si può facilmente estrarre i dati e eval, e utilizzarlo nella vostra Ajax

È possibile prelevare una pagina che riporta la struttura JSON con codifica della pagina, come:

var page = {
    'elem1': {
        'html': '<div>... ',
        'update': True
    },
    'elen2': {
        'update': False

e così via, quindi aggiornare quanto necessario, avendo solo un sondaggio.

Mantenere le vostre pagine di elementi di struttura di dati privati e pubblica elementi di aggiornamento

var page = (function(){
    var private_data = {
    //json
    };

    return {
        workOnData : function(){//process the data}

    }
})()

Questo è un buon modo è possibile mantenere le vostre pagine di dati sicuro e regolare.

mi piacerebbe utilizzare jQuery per fare che, se fossi in te o: allora si potrebbe fare qualcosa di simile ...

$('div.updateThisClass').css('color','#fff')

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top