Domanda

Quando si chiama un servizio di JSON-RPC qual è il modo più comune per generare un ID univoco da un client JavaScript?

DOMANDA REVISIONE:

In genere, un JSON-RPC client implementa un parametro di conteggio id JavaScript (ad esempio, se l'ultima richiesta era id=1, e non ha ricevuto una risposta indietro, la richiesta successiva è id=2. Se la richiesta con id=1 ha risposto, il richiesta successiva può essere id=1 di nuovo). Sono interessato a capire come la gente di solito implementano questa.

È stato utile?

Soluzione

non descrivono l'universo in cui questo deve essere unico.

Se vuoi dire assolutamente unico, allora si sta parlando di un UUID .

Se avete bisogno di qualcosa di unico per l'endpoint per impedire la memorizzazione nella cache sul lato client, quindi questo sarà sufficiente

var unique = new Date().getTime();

Se avete bisogno di qualcosa di diverso da questi due allora avrete bisogno di essere più specifico.

Modifica

Forse qualcosa che sembra un po 'come questo

jsonRpcClient = function()
{
  var requestStack = [null];

  this.makeRequest = function()
  {
    var id = this.getAvailableSlot();
    requestStack[id] = new this.request( id, arguments );
  }

  this.getAvailableSlot: function ()
  {
    for ( var i = 0; i < requestStack.length: i++ )
    {
      if ( null == this.requestStack[i] )
      {
        return i;
      }
    }
    return i;
  }

  this.request: function( id, args )
  {
    // request stuff here
    // pass id and whatever else to jsonRpcClient.handleResponse()
  }

  this.handleResponse: function( id )
  {
    var request = requestStack[id];
    requestStack[id] = null;

    // Do whatever with request
  }
};
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top