JSON-RPC - как сделать уникальный идентификатор? - PullRequest
0 голосов
/ 08 декабря 2010

При вызове службы JSON-RPC, каков наиболее распространенный способ создания уникального идентификатора из клиента JavaScript?

ПЕРЕСМОТРЕННЫЙ ВОПРОС:

Как правило, JSON-RPC-клиент JavaScript реализует параметр подсчета id (например, если последний запрос был id=1, и он не получил ответ обратно, следующий запрос id=2. с id=1 ответил, следующий запрос может быть id=1 снова). Мне интересно понять, как люди обычно реализуют это.

1 Ответ

1 голос
/ 08 декабря 2010

Вы не описываете вселенную, в которой это должно быть уникальным.

Если вы имеете в виду абсолютно уникальный, то вы говорите о UUID .

Если вам нужно что-то уникальное для конечной точки, чтобы предотвратить кэширование на стороне клиента, этого будет достаточно

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

Если вам нужно что-то другое, кроме этих двух, вам нужно быть более конкретным.

РЕДАКТИРОВАТЬ

Может быть, что-то похожее на это

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
  }
};
...