п.с. я не прошу делать что-то. просто подскажите какой именно фрагмент можно сократить, какие параметры лишние..
|
а вы-то сами как думаете какие параметры лишние?
какие не используются, те и лишние вы его сами писали? если да, то вам виднее что в нем можно оптимизирвоать если нет, то вам в раздел работа и повторю вопрос:зачем его оптимизирвоать? тормозит? долго грузится? ------------------- бля, что за идиотская привычка писать по два поста подряд? я чуть было не пропустил твой первый пост, из-за того, что он был на предудущей странице задание говориш? и ты решил скинуть это задание на других людей? похвально. тебе в раздел работа да, его можно оптимизировать потому что он писался несколько лет назад судя по всему что в функции getObj делает вторая и третья строки? |
Цитата:
может они все-таки нужны, просто используются для того случая, о котором ты не знаеш? Цитата:
браузеры постоянно развиваются, и те браузеры, которые использовались пару лет назад нигде сейчас не стоят как правило этот код написан в соответсвии с правилами кросбраузерности давно минувших лет |
Gvozd,
Вероятно, имеется ввиду не оптимизация кода под современные браузеры, а просто показать на примере способы его сокращения. Не обязательно писать несколько var, можно так: var text = '', pass='ACB', coordX=0, coordY=0, Width=64, Height=64; Ниже еще такие ситуации есть. Здесь: imageMap.onmousemove = moveDot; imageMap.onmouseover = moveDot; присваивается одно и тоже, лучше так: imageMap.onmousemove = imageMap.onmouseover = moveDot; Ниже еще такое есть. При этом частая ошибка: var x = y = 0; Здесь "y" попадет в глобальную область видимости. Нужно так: var x = 0, y = 0; Кусок: x -= imageMapX; y -= imageMapY; x -= dX; y -= dY; Можно записать в две строки. Если ты закончил в школе хотя бы 3 класса, то сделаешь это без проблем. Здесь: (x < 0) ? coordX = 0 : coordX = x; В обоих случаях присваивается к одному и тому же, лучше так: coordX = x < 0 ? 0 : x; Здесь: if(coordY<Height/2) text = text+'A'; else text = text+'C'; } так же можно применить тернарный оператор и оператор "+=". Здесь: if(text==pass) { var picture = document.getElementById('lock'); picture.src = 'port/lock2.png?' + Math.random(); } else { var picture = document.getElementById('lock'); picture.src = 'port/lock.png?' + Math.random(); } в обоих случаях происходят схожие действия. Их нужно вынести из if-else. Зачем здесь "try" ? try { window.addEventListener('load', init, false); } catch(e) { window.onload = init; } Читаем про события: http://javascript.ru/tutorial/events Здесь: if(text==pass) alert('Пароль верный,поздравляю!'); else alert('Не угадал пароль,тыкай еще!'); С тернарным оператором хочется сделать так: text==pass ? alert('Пароль верный,поздравляю!') : alert('Не угадал пароль,тыкай еще!'); Еще проще будет так: alert(text==pass ? 'Пароль верный,поздравляю!' : 'Не угадал пароль,тыкай еще!'); Зачем здесь: var picture = document.getElementById('lock'); picture.src = 'port/lock.png?' + Math.random(); создается переменная, если она используется только один раз. Для начала хватит. |
спасибо большое за столь развернутый ответ, однако я уже начал сокращать, убрав div.
<img id='lock' src="port/lock.png" width="200" height="200" onclick="doIt();"> function doIt() { y0=document.getElementById("lock").offsetTop+1; x0=document.getElementById("lock").offsetLeft+1; document.all("x").value=x-x0; document.all("y").value=y-y0; теперь только не могу найти каким образом получать координаты мыши при клике самым простым способом. |
Цитата:
|
ну обе программы написаны на яваскрипте.
во второй я избавился от кучи ненужных функций. мне всего лишь надо нарисовать картинку (200,200), отследить координаты клика, присвоить переменной символ, соотв. координатам и сравнить ее с переменной "pass". в случае совпадения - нарисовать на месте одной картинки другую. вот у меня возникли проблемы с отслеживанием клика и с перерисовкой картинки. <script language="JavaScript" type="text/javascript"> var text = ''; var pass='A'; function doIt() { =>ЗДЕСЬ ДОЛЖНЫ ОТСЛЕЖИВАТЬСЯ КООРДИНАТЫ И ОНИ ДОЛЖНЫ ПРИСВАИВАТЬСЯ ПЕРЕМЕННЫМ X И У.<= if (xcoord<100) { if(ycoord<100) text = text+'A'; else text = text+'C'; } else { if(ycoord<100) text = text+'B'; else text = text+'D'; }} } if(text==pass) alert('Пароль верный,поздравляю!'); => ЗДЕСЬ ДОЛЖНА ПЕРЕРИСОВЫВАТЬСЯ КАРТИНКА<= else alert('Не угадал пароль,тыкай еще!'); text=''; } </script> <img id='lock' src="port/lock.png" width="200" height="200" onclick='doIt()'/> |
Я совсем запутался. Мы уже значит, вовсе ничего не оптимизируем, а решаем какую-то проблему?
|
ну почему.. вторая программа результат сокращения первой. правда переделанная немного.
я вот что не пойму..каким образом определяются коориднаты клика? относительно картинки или относительно документа не важно. |
Цитата:
|
Часовой пояс GMT +3, время: 12:57. |