jQuery 总是在 url 的末尾附加 2 个 GET 变量,如下所示:
callback=jQuery172010710813803598285_1362438925287&_=1362438934989
但是他们如何计算这些数字呢?我发现最后 2 个数字的前 10 个符号是当前时间戳,但我无法弄清楚最后 3 个数字代表什么。或者第一部分是如何创建的。有谁知道这个?
谢谢!
通过使用一些尝试提供尽可能多的随机和唯一数字的功能。诸如uniqid()
(Link)功能之类的东西。
它是使用这个创建的:
jsonpCallback: function() {
var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( ajax_nonce++ ) );
this[ callback ] = true;
return callback;
}
首先,它会尝试使用以前使用过的回调(如果存在)。如果没有,那么它使用jQuery.expando
(在初始化 jQuery 时计算出的位置和"jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" )
位置+ "_" + ( ajax_nonce++ )
。这确保了一个唯一的回调名称,无论您发送请求的速度有多快。ajax_nonce
$.now()
考虑到这一点,我可以假设您使用的是 jQuery 1.7.2 并且需要更新,:p