Я смотрел на статические сценарии Твиттера и замечал, что все переменные и функции, где всего 1 символ долго, почему и как они делают это? Это имеет что-то, чтобы сделать с производительностью? Если так, почему они не дают все элементы на своем веб-сайте подобные краткие названия, возможно, 2 символа долго вместо 1 для предотвращения каких-либо коллизий.
Пример:
(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
}
})
Этот сценарий был «минифицирован», это автоматизированный метод замены переменных с более короткими именами без изменения функциональности. См., Например, JSMin . Цель состоит в том, чтобы уменьшить время загрузки и пропускную способность при отправке скрипта клиенту.
Javascript является клиентским, поэтому вам необходимо загрузить скрипт. Я думаю, что меньше текста для загрузки означает лучшую производительность.
Многие проекты JavaScript запускают свой код через «минификатор», чтобы уменьшить размер кода. Это сокращает время, необходимое браузеру для загрузки библиотеки. Большинство проектов также предоставляют разработчикам неминифицированную версию:
Пример здесь: http://docs.jquery.com/Downloading_jQuery#Current_Release
Может быть много причин, почему они это делают, если назвать наиболее распространенную:
Уменьшите размер файла скриптов, так как многие люди используют твиттер.
Они запускают свои скрипты через что-то вроде http://developer.yahoo.com/yui/ компрессор / , чтобы уменьшить их размер и, следовательно, время, необходимое для загрузки.
Все это сделано для того, чтобы уменьшить время загрузки веб-сайтов.
В последние годы эта тема стала чем-то вроде новой области, особенно из-за таких вещей, как выступления Стива Стоудерса: http://stevesouders.com/