Оптимизация кода
Здравствуйте дорогие форумчани,
Вот решил заняться изучением Джавы. Долго как то руки не доходили или терпение не хватало а сейчас решил заняться )). Можно сказать первый день и вот такой набросок. Подскажите если можно как то оптимизировать код (сократить) я думаю как то это можно сделать,да и вообще взглянити глазами бывалых скриптовщиков и скажите есть смысл продолжать )))). Всем заранее спасибо. калькулятор в виде задачи для построения (выполнения) я взял тут , можно сказать что первое попалось под руки http://doma-fitnes.ru/sutochnaya-norma-kalorij function calculate(){ // var age = document.getElementById('age'); // var ageError = document.getElementById('ageError'); // var sexM = document.getElementById('sexM'); // var sexF =document.getElementById('sexF'); // var sexErorr = document.getElementById('sexError'); // var weightKg = document.getElementById('weightKg'); // var weightErorr = document.getElementById('weightError'); // var heightSm =document.getElementById('heightSm'); // var heightError = document.getElementById('heightError'); // var idNone = document.getElementById('idNone'); // var threeTimes = document.getElementById('threeTimes'); // var fiveTimes = document.getElementById('fiveTimes'); // var fiveTimesH = document.getElementById('fiveTimesH'); // var everyday = document.getElementById('everyday'); // var everydayH = document.getElementById('everydayH'); // var workoutError = document.getElementById('workoutError'); // var submitSpan =document.getElementById('submitSpan'); var submitLw = document.getElementById('losingWeight') var x= parseInt (age.value); var y = parseInt (weightKg.value); var z = parseInt (heightSm.value); var c = (threeTimes.value); var q = (fiveTimes.value); var w = (fiveTimesH.value); var e = (everyday.value); var r = (everydayH.value); var f = (sexF.value); var m = (sexM.value); *!* var totalM = parseInt (10*y+6.25*z-5*x+5);//не берет переменную "m" пришлось ставить цифру */!* var totalF = parseInt (10*y+6.25*z-5*x-f);// а тут взял переменную f та к и не понял почему if (document.getElementById('sexF').selected ){submitSpan.innerHTML = totalF} else if (document.getElementById('sexM').selected) {submitSpan.innerHTML = totalM} if (document.getElementById('sexF').selected && document.getElementById('threeTimes').selected) {submitSpan.innerHTML = parseInt (totalF*c)} else if (document.getElementById('sexM').selected && document.getElementById('threeTimes').selected) {submitSpan.innerHTML = parseInt (totalM*c)} if (document.getElementById('sexF').selected && document.getElementById('fiveTimes').selected) {submitSpan.innerHTML = parseInt (totalF*q)} else if (document.getElementById('sexM').selected && document.getElementById('fiveTimes').selected) {submitSpan.innerHTML = parseInt (totalM*q)} if (document.getElementById('sexF').selected && document.getElementById('fiveTimesH').selected) {submitSpan.innerHTML = parseInt (totalF*w)} else if (document.getElementById('sexM').selected && document.getElementById('fiveTimesH').selected) {submitSpan.innerHTML = parseInt (totalM*w)} if (document.getElementById('sexF').selected && document.getElementById('everyday').selected) {submitSpan.innerHTML = parseInt (totalF*e)} else if (document.getElementById('sexM').selected && document.getElementById('everyday').selected) {submitSpan.innerHTML = parseInt (totalM*e)} if (document.getElementById('sexF').selected && document.getElementById('everydayH').selected) {submitSpan.innerHTML = parseInt (totalF*r)} else if (document.getElementById('sexM').selected && document.getElementById('everydayH').selected) {submitSpan.innerHTML = parseInt (totalM*r)} if (document.getElementById('sexF').selected && document.getElementById('threeTimes').selected) {submitLw.innerHTML = parseInt (totalF*c-0.2*(totalF*c))} else if (document.getElementById('sexM').selected && document.getElementById('threeTimes').selected) {submitLw.innerHTML = parseInt (totalM*c-0.2*(totalM*c))} if (document.getElementById('sexF').selected && document.getElementById('fiveTimes').selected) {submitLw.innerHTML = parseInt (totalF*q-0.2*(totalF*q))} else if (document.getElementById('sexM').selected && document.getElementById('fiveTimes').selected) {submitLw.innerHTML = parseInt (totalM*q-0.2*(totalM*q))} if (document.getElementById('sexF').selected && document.getElementById('fiveTimesH').selected) {submitLw.innerHTML = parseInt (totalF*w-0.2*(totalF*w))} else if (document.getElementById('sexM').selected && document.getElementById('fiveTimesH').selected) {submitLw.innerHTML = parseInt (totalM*w-0.2*(totalM*w))} if (document.getElementById('sexF').selected && document.getElementById('everyday').selected) {submitLw.innerHTML = parseInt (totalF*e-0.2*(totalF*e))} else if (document.getElementById('sexM').selected && document.getElementById('everyday').selected) {submitLw.innerHTML = parseInt (totalM*e-0.2*(totalm*e))} if (document.getElementById('sexF').selected && document.getElementById('everydayH').selected) {submitLw.innerHTML = parseInt (totalF*r-0.2*(totalF*r))} else if (document.getElementById('sexM').selected && document.getElementById('everydayH').selected) {submitLw.innerHTML = parseInt (totalM*r-0.2*(totalM*r))} } window.onload = function(){ var submit = document.getElementById('submit'); submit.onclick = calculate; } |
Пердимонокль.
|
Ну ладно, вопрос: до js на каком языке писали?
|
Цитата:
Цитата:
Цитата:
Цитата:
не нужно каждый раз получать ссылку на элемент, если это можно сделать один раз сделай нормальный пример |
Цитата:
|
Не будет оно жить. Так не делают. Ну вообще так не делают. Например если условие проверяется больше 1 раза, его соединяют в одно:
if (document.getElementById('sexF').selected { // тут все проверки которые имеют смысл когда sexF выбран } Но и это еще не все - позвонив прямо сейчас вы получите в подарок event-driven programming всего за неделю, не меньше. Не надо вообще ничего проверять, поскольку оно уже БЫЛО проверено в прошлом. Когда юзер щелкнул что-то - эта проверка уже прошла, а вы второй раз проверяете результат проверки чтобы сделать проверку того что уже проверено и в проверке не нуждается. Для этого на события формы или что там является контейнером барахла вешаются функции которые на фронтире сразу все проверяют, присваивают и взаимодействуют. В финале - голимый рендер результата. |
Цитата:
|
4ipset,
Цитата:
|
Пардон за опечатку знаю что два разных языка, просто 24 часа писал код уже под утро когда закончил сюда выложил под "Джава" имелось ввиду "Джава скрипт " до этого не на каком языке не писал. Сейчас составлю версию с запуском.
|
Как то так я думаю)http://learn.javascript.ru/play/5HUhNb
но здесь почему то не работает а на локалке работает |
Часовой пояс GMT +3, время: 05:08. |