当方法Date.getTime和Math.Random被覆盖时,在JavaScript中生成唯一id
我有一个在网站上运行的脚本。当我试图生成唯一的id时,如本文所建议的,它有时会失败,因为似乎站点正在覆盖函数Date.getTime和Math.Random。 在这种情况下,有没有办法生成唯一的id当方法Date.getTime和Math.Random被覆盖时,在JavaScript中生成唯一id,javascript,algorithm,guid,uuid,Javascript,Algorithm,Guid,Uuid,我有一个在网站上运行的脚本。当我试图生成唯一的id时,如本文所建议的,它有时会失败,因为似乎站点正在覆盖函数Date.getTime和Math.Random。 在这种情况下,有没有办法生成唯一的id 注意:我需要在服务器端使用unique,用于客户端目的,以下应该足够了: var uniqueId = (function() { var id = 0; return function() { return id++; }; })(); 哇 如果您的话是真
注意:我需要在服务器端使用unique,用于客户端目的,以下应该足够了:
var uniqueId = (function() {
var id = 0;
return function() {
return id++;
};
})();
哇
如果您的话是真的,并且无法修复网站上的代码:
添加Jquery并调用$.now()-它将为您返回时间戳
但我90%肯定你从零开始就做错了,重新考虑你在网站上的代码“网站正在覆盖函数Date.getTime和Math.Random”?真的吗?你在说什么样的剧本?用户脚本?还是你的图书馆?如果您创建了一个库,您可能应该假设基本环境没有太多破坏,这是脚本用户的责任。我说的是编写的脚本,我没有在这个脚本中使用任何基于
数学的库。Random
,看起来您可能在谈论Java,而不是JavaScript。如果是这种情况,您可以重新标记吗?您应该创建uuid的服务器端。那些伪造数学和日期的人(还有谁应该覆盖它?)也可以伪造任何其他方法。jQuery.now正在使用Date.getTime。现在:function(){return(new Date()).getTime();}@Anibas然后在服务器端生成它,否则您将信任客户端。