var UUID = { createUUID : function(){ var _self = this; // Loose interpretation of the specification DCE 1.1: Remote Procedure Call // since JavaScript doesn't allow access to internal systems, the last 48 bits // of the node section is made up using a series of random numbers (6 octets long). // var dg = new Date(1582, 10, 15, 0, 0, 0, 0); var dc = new Date(); var t = dc.getTime() - dg.getTime(); var tl = _self.getIntegerBits(t,0,31); var tm = _self.getIntegerBits(t,32,47); var thv = _self.getIntegerBits(t,48,59) + '1'; // version 1, security version is 2 var csar = _self.getIntegerBits(_self.rand(4095),0,7); var csl = _self.getIntegerBits(_self.rand(4095),0,7); // since detection of anything about the machine/browser is far to buggy, // include some more random numbers here // if NIC or an IP can be obtained reliably, that should be put in // here instead. var n = _self.getIntegerBits(_self.rand(8191),0,7) + _self.getIntegerBits(_self.rand(8191),8,15) + _self.getIntegerBits(_self.rand(8191),0,7) + _self.getIntegerBits(_self.rand(8191),8,15) + _self.getIntegerBits(_self.rand(8191),0,15); // this last number is two octets long return tl + tm + thv + csar + csl + n; }, /** * 从URL里面获取UUID,然后从LocalStorage里面获取参数 */ getParamFromLocalstorageByUrl : function (){ var uuid = Common.getUuidFromUrl("uuid"); if(uuid != undefined){ var paramString = localStorage.getItem(uuid); if(paramString != null){ var param = JSON.parse(paramString); return param; } } }, //Pull out only certain bits from a very large integer, used to get the time //code information for the first part of a UUID. Will return zero's if there //aren't enough bits to shift where it needs to. getIntegerBits : function(val,start,end){ var base16 = this.returnBase(val,16); var quadArray = new Array(); var quadString = ''; var i = 0; for(i=0;i