JSON-RPC - 如何制作一个唯一的ID?

时间:2010-12-08 17:26:11

标签: javascript json api json-rpc

调用JSON-RPC服务时,从JavaScript客户端生成唯一ID的最常用方法是什么?

已修订的问题:

通常,JavaScript JSON-RPC客户端实现计数id参数(例如,如果最后一个请求是id=1,并且它没有收到回复,则下一个请求是{{1如果id=2的请求已响应,则下一个请求可能再次为id=1。我有兴趣了解人们通常如何实现这一点。

1 个答案:

答案 0 :(得分:1)

您没有描述需要唯一的Universe。

如果你的意思是绝对独特,那么你所说的是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
  }
};