أسماء أحرف واحدة للمتغيرات والوظائف في jQuery ، JavaScript

StackOverflow https://stackoverflow.com/questions/2723064

سؤال

كنت أنظر إلى البرامج النصية الثابتة لـ 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top