п.с. я не прошу делать что-то. просто подскажите какой именно фрагмент можно сократить, какие параметры лишние..
|
а вы-то сами как думаете какие параметры лишние?
какие не используются, те и лишние вы его сами писали? если да, то вам виднее что в нем можно оптимизирвоать если нет, то вам в раздел работа и повторю вопрос:зачем его оптимизирвоать? тормозит? долго грузится? ------------------- бля, что за идиотская привычка писать по два поста подряд? я чуть было не пропустил твой первый пост, из-за того, что он был на предудущей странице задание говориш? и ты решил скинуть это задание на других людей? похвально. тебе в раздел работа да, его можно оптимизировать потому что он писался несколько лет назад судя по всему что в функции 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, время: 06:10. |