أسماء أحرف واحدة للمتغيرات والوظائف في jQuery ، JavaScript
-
01-10-2019 - |
سؤال
كنت أنظر إلى البرامج النصية الثابتة لـ Twitter ولاحظت أن جميع المتغيرات والوظائف التي يبلغ طولها فقط شخصية واحدة ، لماذا وكيف يفعلون ذلك؟ هل له علاقة بالأداء؟ إذا كان الأمر كذلك ، فلماذا لا يعطون جميع العناصر على موقع الويب الخاص بهم هذا النوع من الأسماء القصيرة ، وربما شخصان طويلان بدلاً من 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, ، فمثلا. الهدف هو تقليل أوقات التنزيل وعرض النطاق الترددي عند إرسال البرنامج النصي إلى عميل.
نصائح أخرى
يديرون البرامج النصية الخاصة بهم من خلال شيء مثل http://developer.yahoo.com/yui/compressor/ من أجل تقليل حجمها ، وبالتالي الوقت الذي الحاجة إلى التحميل.
يتم ذلك كله من أجل تقليل مواقع الويب.
في السنوات الأخيرة ، أصبح هذا الموضوع يشبه مجالًا جديدًا ، خاصةً بسبب أشياء مثل محادثات ستيف ستودرز: http://stevesouders.com/
JavaScript هو جانب العميل ، لذلك عليك تحميل البرنامج النصي. أقل نصًا للتنزيل يعني أداء أفضل ، أعتقد.
تدير العديد من مشاريع JavaScript رمزها من خلال "Minifier" لجعل الكود أصغر. هذا يحسن الوقت الذي يستغرقه المستعرض لتنزيل المكتبة. تزود معظم المشاريع أيضًا نسخة غير محددة للمطورين لقراءة:
مثال هنا:http://docs.jquery.com/downloading_jquery#current_release
يمكن أن يكون العديد من الأسباب التي تجعلهم يفعلون ذلك ، لتسمية واحدة مشتركة:
قلل من ملفات البرامج النصية حيث يستخدم الكثير من الأشخاص Twitter.