REQ=getHttp();
var login=document.getElementById('login').value;
var email=document.getElementById('email').value;
var name=document.getElementById('name').value;
var paswd1=document.getElementById('paswd1').value;
var paswd2=document.getElementById('paswd2').value;
var str='login='+login+'&email='+email+'&name='+name+'paswd1='+paswd1+'&paswd2='+paswd2;
SendRequest2(REQ,'regis.php',str,'POST',ajax_regis);
Мне понадобилось добавить сюда три дополнительных поля город, телефон и примечания в итоге, следуя принципу психологической инерции я чуть было не оставил в работе вот этот вариант :
REQ=getHttp();
var login=document.getElementById('login').value;
var email=document.getElementById('email').value;
var name=document.getElementById('name').value;
var paswd1=document.getElementById('paswd1').value;
var paswd2=document.getElementById('paswd2').value;
var phone=document.getElementById('phone').value;
var comments=document.getElementById('comments').value;
var city=document.getElementById('city').value;
var str='login='+login+'&email='+email+'&name='+name+'&paswd1='+paswd1+'&paswd2='+paswd2+'&phone='+phone+'&comments='+comments+'&city='+city;
SendRequest2(REQ,'regis.php',str,'POST',ajax_regis);
Так бы его и оставил, если б не начав его проверять я не понял, что
а) приходится постоянно переключать внимание со строки str на операции типа document.getElementById
б) строка str тяжело компоновалась в мысленное представление
Чтоб понять что не так, просто взглянем наш внутренний( тобишь тот, что у нас в голове) алгоритм проверки правильности строки str.
Пошагово
1) наше внимание фокусируется на элменте "login="
2) фокусируется на переменной login
3) ищет в коде var login=document.getElementById('login').value;
4) проверяет соответствие переменной login и значение аргумента функции getElementById
5) возвращается к строке str и ищет следующий элемент типа "login="
6) находит, и заносит элемент "login=" во внутреннюю допустим память, как обработанный
.....
повторяет шаг 1-6 для этого элемента добавляется дополнительный шаг поиска обрабатываемого элемента в списке уже обработанных.
......
Итак, сколько там у нас элементов, восемь?! А теперь приведу справку, при всей гениальности человека, среднестатистический индивид способен держать в оперативной памяти до 7 объектов ( наверно ученые имели ввиду оперировать ими ), да данный тезис наталкивает на дискуссию , но в приведенном примере алгоритма объектов явно больше. Да наш мозг работает быстро, и нам кажется, что мы даже не так обработаем данную строку, наверняка что-то оптимизируется, но это думаю потом, а первый раз по логике он сработает именно так, иначе появится вероятность ошибки.
После этих умозаключений предыдущий код переписал следующим образом:
REQ=getHttp();
var str='';
var login=document.getElementById('login').value;
str+='login='+login;
var email=document.getElementById('email').value;
str+='&email='+email;
var name=document.getElementById('name').value;
str+='&name='+name;
var paswd1=document.getElementById('paswd1').value;
str+='&paswd1='+paswd1;
var paswd2=document.getElementById('paswd2').value;
str+='&paswd2='+paswd2;
var phone=document.getElementById('phone').value;
str+='&phone='+phone;
var comments=document.getElementById('comments').value;
str+='&comments='+comments;
var city=document.getElementById('city').value;
str+='&city='+city;
SendRequest2(REQ,'regis.php',str,'POST',ajax_regis);
Вроде бы алгоритм проверки тот же, но длинных переводов фокуса внимание нет. Как по мне намног удобнее, кстати раньше в IBM был негласный( а может добровольно принудительный) программисткий стандарт - код любой функции не должен привышать в длинну больше 25 строк. Почему именно 25 строк, а потому что именно столько вмещалось в текстовом редакторе DOS.
Комментариев нет:
Отправить комментарий