我注意到Wikipedia使用百分比编码作为URL的路径部分,但将%字符转换.为#fragment.
例如,在俄罗斯的"俄罗斯"页面上,第2部分(История)的URL 是
http://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F#.D0.98.D1.81.D1.82.D0.BE.D1.80.D0.B8.D1.8F
代替
http://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F#%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F
对于id/name,两者都不是有效的HTML <5令牌,因为令牌必须以[A-Za-z]开头.HTML5 目前声明您可以使用除空格之外的任何字符中的至少一个(因此您根本不需要编码),但维基百科不是HTML5.
那么,为什么维基百科使用这个方案呢?
我需要在给定初始种子的情况下生成确定性(即可重复)伪随机数序列,并从该序列中选择第 n 个项目。
如果 JavaScript 的随机函数是可播种的,我可以这样做:
function randomNth(seed, seq)
{
var r;
Math.randomSeed(seed);
for (var i = 0; i++ < seq; i++)
{
r = Math.random();
}
return r;
}
Run Code Online (Sandbox Code Playgroud)
然而,事实并非如此,替代性的可种子 PRNG 看起来有点慢;要求第 250 个号码的费用会很高。
我认为哈希就是我想要的,也许类似,md5(seed + seq) % max但 JavaScript 没有 md5() ,如果我在代码中这样做,可能有更好的哈希选择。
我想要一个函数
x = randomNth(seed, seq, maxVal) // x is int && x >= 0 && x < maxVal
或者,理想情况下
x = randomNth(seed, seq) // x >= 0 && x < 1, same …
我想触发事件处理程序,一旦每各实际变化的输入字段.例如,要验证(按键)输入信用卡号码(必须在每次更改时进行更改,因此解赎/限制不是答案).
我不能input单独使用,因为IE9不会从退格键或剪切/删除触发此事件.
我无法keyup单独使用,因为这不能处理鼠标的变化(例如粘贴).
我不能使用,change因为这只会触发blur.
我能做到,$('input').bind('input keyup', handler)但这会在大多数情况下触发两个不同的事件.假设处理程序很昂贵并且运行它两次是不可接受的.
我可以包装处理程序,以便它只在当前值与上次检查时不同时运行但是有更好的方法吗?
javascript ×2
dom-events ×1
hash ×1
html ×1
jquery ×1
node.js ×1
prng ×1
random ×1
url ×1
url-design ×1