jQuery中变量和函数的单字母名称,JavaScript
我在查看Twitter的静态脚本时注意到,所有变量和函数都只有一个字符长,为什么以及如何做到这一点?这与性能有关吗?如果是这样的话,为什么他们不给网站上的所有元素起一个简短的名字,可能是2个字符,而不是1个字符,以避免任何冲突 例如:jQuery中变量和函数的单字母名称,JavaScript,javascript,jquery,twitter,short,Javascript,Jquery,Twitter,Short,我在查看Twitter的静态脚本时注意到,所有变量和函数都只有一个字符长,为什么以及如何做到这一点?这与性能有关吗?如果是这样的话,为什么他们不给网站上的所有元素起一个简短的名字,可能是2个字符,而不是1个字符,以避免任何冲突 例如: (function (A) { A.fn.isScreenNameField = function () { return this.each(function () { var M = A(this); var F = A
(function (A) {
A.fn.isScreenNameField = function () {
return this.each(function () {
var M = A(this);
var F = A("#signup_username_url");
var E = A("#screen_name_info");
var D = A("#avail_screenname_check_indicator");
var O;
var C;
var I;
var N = M.val();
var G = N;
var H = N != "";
var Q = /[a-zA-Z0-9_]/;
function K() {
if (H) {
F.html(M.val())
}
}
function L() {
M.trigger("show-info");
E.hide();
D.show()
}
function B() {
E.show();
D.hide()
}
function P() {
G = O;
jQuery.ajax({
type: "GET",
url: "/users/username_available",
data: {
username: O
},
dataType: "json",
success: function (R) {
if (C) {
var S = R.msg;
if (R.valid) {
M.trigger("is-valid");
F.removeClass("invalid").addClass("valid")
} else {
M.trigger("is-invalid", R.msg);
F.addClass("invalid").removeClass("valid")
}
}
},
beforeSend: null,
complete: function () {
clearTimeout(twttr.timeouts.availabilityTimeout);
B()
}
})
}
function J(R) {
O = M.val();
clearTimeout(twttr.timeouts.availabilityTimeout);
C = O.match(Q);
if (!C) {
G = O;
B();
return
}
if (O == G) {
return
}
L();
twttr.timeouts.availabilityTimeout = setTimeout(P, 2000)
}
M.isSignupFormField({
validateWith: function (R) {
if (isBlank(R)) {
return _("Please enter a user name")
} else {
P()
}
},
allowInput: Q
});
M.keyup(function (R) {
if (jQuery.inArray(R.keyCode, [16, 17, 18, 20, 27, 33, 34, 35, 37, 38, 39, 40, 144]) == -1) {
if (M.val() != "") {
H = true
} else {
M.trigger("show-info")
}
K();
J()
}
});
M.bind("value-changed", P);
M.bind("custom-validate", P)
})P
}
})
这个脚本已经“缩小”,这是一种自动的技术,用较短的名称替换变量,而不改变功能。例如,见。目标是在将脚本发送到客户端时减少下载时间和带宽。Javascript是客户端的,因此您必须加载脚本。我认为,要下载的文本越少,性能就越好。许多javascript项目通过“迷你程序”运行代码,使代码越小。这样可以缩短浏览器下载库所需的时间。大多数项目还提供一个非小型版本供开发人员阅读: 示例如下:
关于他们为什么这样做,有很多原因,举一个常见的原因:
减少脚本的文件大小,因为很多人使用twitter。他们通过类似的方式运行脚本,以减少大小,从而减少加载所需的时间 所有这些都是为了减少网站加载时间。
近年来,这个话题已经成为一个新的领域,特别是由于史蒂夫·斯塔德斯的演讲:我认为克罗克福德将这种特殊的技术称为“模糊处理”。JSMin不更改变量名,因为Crockford不喜欢混淆,因为他认为混淆太可能导致错误。缩小和“模糊化”。