Жава скрипт

Programming Solutions /
1. Кодтағы константалар

Бұл мәселе тек javascriptті ғана емес, жалпы программалауды қамтиды. Мына бір мысалға қарайық:
$elem.on('keydown', function(e) {
    if (e.keyCode == 27) {
        //...
    }
});


27 деген қандай қасиетті сан? Мұндай кодтармен жиі кезігетін адамдар мұның ESC батырмасы екенін бірден айтады. Бірақ, программалауды енді бастап жүрген разпаботчиктердің бұл санның нені білдіретіні есінде жоқ немесе мүлдем білмейді.Сондықтан олар бұл санның нені білдіретініні білу үшін біраз уақыт жоғалтады.
Әрине, бұл санның нені білдіретіні туралы кодқа коментарии қосып кетуге болады, дегенмен ең дұрыс шешім — бұл санды бір константаға меншіктеу, мысалы, KEY_ESC = 27

2. Идентификаторларды алу
Қандай да бір әрекет жасау үшін (мысалы, пікірлерді ажакс көмегімен бағалау үшін) элементтің идентификаторын алу процесі жиі кездеседі. Және, разработчиктердің бұған былай қол жеткізуге тырысатынын жиі көреміз:
var id = $(this).attr('id').substring(8);

Бірінші мысалдағы сияқты бұл мысалда да 8 санының не сан екенін табуға мәжбүр боламыз.
Мынада мысалдар болады, мына мысал шын проекттен алынған:
var last_id = $('#answer_pid' + id + ' li:first div').attr('id').substr(7);

Версткадағы кішкене өзгеріс, js кодты өзгертуге мәжбүрлейді.

Кейде былай да болады:
<div class="comment" id="comment_123"></div>
var id = $(this).attr('id').substring("comment_".length);

Бұл код та js кодты html-ге қатты бағынышты етеді.

Менің ойымша мұндай жағдайда data-параметрді қолданға дұрысырақ:
<div class="comment" data-id="123"></div>


бұл кезде элементтің идентификаторын алу оңай болады:
var id = $(this).attr('data-id');


немесе
var id = $(this).data('id');


3. $.post
jqueryде ajaxпен жұмыс істейтін — $.ajax деп аталатын метод бар екені белгілі. Оған арналған бірнеше $.get, $.load, $.post сияқты shorthand функциялар бар. Бұл функциялар жиі жасалатын опеацияларды (post запрос жасау үшін) оңайлату үшін қосылған, дегенмен орындалу кезінде бұл функциялардың барлығы $.ajax функциясына сүйенеді.
Өз басым shorthand функцияларды көп қолданбаймын:

Жаңадан бастаған, тәжірибесі аз разработчиктердің кодынан мынадай қатарларды кездестіруге болады:

1. Бастамасы
$.post(url, data, function(data) {
            data = $.parseJSON(data);
            //...
});

2. try catch блок қосылады
$.post(url, data, function(data) {
        try {
                data = $.parseJSON(data);
            } catch (e) {
                return;
            }
            //...
});

Веб разработчиктердің көбісі қателіктердің алдын алмайды. Бұл көбінесе еріншектіктен, немесе уақытын құртқысы келмейтіндіктен болады.
Егер разработчик қателіктердің алдын алатын обработчик қосқысы келсе, код былай болады:
$.post(url, data, function(data) {
    //...
}, 'json').error(function() {
   ///
});


Менің ойымша бұл кодтың оқылуы қиын. Сонымен қатар әр кез қателердің алдын алатын обработчик жаза беру де адамның ығырын шығаратын тірлік. Сондықтан қателердің алдын алатын обработчиктерді былай настроить етіп қоюға болады:

$.ajaxSetup({
    error: function() {
        //Қателіктің орын алғаны туралы хабарлама
    }
});


$.post методына қайта оралайық. Жоғарыда кһрсетілгендей $.post методын қолдану кодты түсініксіз етеді. Соңғы мысалды $.ajaxтың көмегімен жазып көрелік. Менің ойымша осылай жазған түсініктірек болады.

$.ajax({
    type: "POST"
    url: url,
    data: data,
    dataType: "json",
    success: function(data) {
        //
    },
    error: function() {
        //
    }
});


Мақала хабрахабр.ру сайтынан аударылған.

4 пікір

User
АПК-ға бармағаным дұрыс болған екен.
Abylai
KEY_ESC = 27
Түртіп алдым, жақсы пост. Жалғастырыңыз
Korkem
Ох, куЧт-мүЧтАйс, рахметім саған
ereke_enu
Іске сәт, квенчи жалғастрыа бер!!!
Тек тіркелген қолданушылар ғана пікір қалдыра алады.