Показать сообщение отдельно
  #15 (permalink)  
Старый 04.12.2012, 14:40
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Сообщение от Дзен-трансгуманист
Ты таким образом логику завязываешь на интерфейс.
а что в этом плохого? Я часто этим злоупотребляю, разве это может как-то привести к сбоям?

Вот логика с ajax:

Пользователь кликнул:
1 Если элемент wait есть:
return;
2 Если элемента wait нет:
включить wait
запрос на сервер
обработка запроса
отключить wait


Сообщение от Дзен-трансгуманист
Почему тебе так не нравится флаг? Это всего-лишь переменная, отражающая состояние сущности - аякс-запроса. Определи ее в замыкании, и экспортируй нужный паблик-интерфейс в глобал. В чем проблема?
Ну тут есть несколько причин:
1 Я помещаю в глобальные переменные только те значения, которые используются в нескольких независимых функциях
2 Переменные должны иметь только значения, используемые программой и эти значения должны быть константой и желательно понимаемые без комментариев

В чем недостаток флага:
1 если скрипт небольшой то терпимо, если скрипт большой и расширяемый, то таких флагов будет все больше и больше и каждый флаг нужно будет описывать.
и будет вот так:
forAJAX = false,
forCache = false,
forLoad = false
,,,,,,,,,,,,,


2 Функция может быть на 5457 строчке, глобальные переменные принято описывать вверху. Когда глобальные переменные не содержат лишних вещей и представляют что-то вроде:
sml = document.getElementById("glob"), //////////////////// контейнер glob
set = document.getElementById("set"),  ///////////////////// контейнер set
libs = document.getElementById("libs"), ///////////////////// библиотеки

то функция будет более понятна и не надо лишний раз обращаться к началу скрипта. Я вот например все свои глобальные переменные помню и даже не смотрю что у меня там как написано.


Не знаю может я не прав, я js изучаю всего полгода.. может в будущем изменю свое мнение и буду использовать флаги)

Последний раз редактировалось dmitry111, 04.12.2012 в 14:43.
Ответить с цитированием