|
|
|
| При вставке двух одинаковых скриптов (через <script type="text/javascript" src="... ) они срабатывают оба в дублируют требуемые действия. Нужно разрешить сделать свое дело только первому, а второму - завершить свою работу. Как это лучше сделать? С ходу придумал варианты:
1.1) При инициализации скрипта указывать какую-нибудь переменную, и потом ее проверять - если есть, значит отбой.
1.2) То же самое что и в 1.1, но вместо переменной использовать какой-нибудь элемент, на странице.
2) Пробегать по списку подключенных скриптов и проверять есть ли дубли (не сработает, т.к. как не узнать - запустился первый экземпляр скрипта или второй)
Есть еще какие-нибудь варианты? Самый нормальный способ на мой взгляд получается 1.1, но вдруг есть другие альтернативы или уже готовые решения, пока я не начал собирать велосипед). | |
|
|
|
|
|
|
|
для: Гость
(01.11.2011 в 11:51)
| | "Самым нормальным способом" будет не вставлять двух одинаковых скриптов.
Это и есть "готовое решение".
И не надо "начинать собирать велосипед". | |
|
|
|
|
|
|
|
для: АЯС
(01.11.2011 в 12:18)
| | Спасибо за конструктивный совет. А по самому вопросу есть какие-нибудь идеи? | |
|
|
|
|
|
|
|
для: Гость
(01.11.2011 в 12:42)
| | Всякий скриптовой блок (с кодом внутри, либо с адресом внешнего скрипта - это без разницы) исполняется браузером СРАЗУ и исполняется ПОСТРОЧНО, даже не дожидаясь поступления в браузер закрывающего тега </script>. Никакой "инициализации скриптов" в браузерах не бывает.
Поэтому "потом проверять" (ваш вариант 1), "пробегать по списку подключенных скриптов" (вариант 2) - это всё уже будет ПОСЛЕ исполнения скриптов.
"Поздно пить боржоми, когда почки отвалились"(с)
Так что прислушайтесь к моему "конструктивному совету".
Ибо он и есть единственно возможная идея по самому вопросу.
Других каких-либо "идей" просто не может быть. | |
|
|
|
|
 467 байт |
|
|
для: АЯС
(01.11.2011 в 12:59)
| | Я понимаю что скрипт запустится в любом случае, но мы же можем ему сказать чтоб он завершил свою работу и пошел бездельничать, плевать в потолок и т.п.
В аттаче - пример решения, меня просто интересует - есть ли подводные камни. Или хотя бы очевидные минусы такой реализации? (а то может я их просто не вижу). | |
|
|
|
|
|
|
|
для: Гость
(02.11.2011 в 07:37)
| | Нормальный такой способ...
Очень похож на использованный в Киргизии в прошедшее воскресенье - там во избежание повторного голосования большие пальцы левой руки всех избирателей маркировали несмываемой краской - http://www.rosbalt.ru/exussr/2011/10/26/905368.html
Насчёт "подводных камней"...
Ежели у вас "ожидаемым" является двойное-тройное подключение одного и того же скрипта, то подумайте... а вдруг у вас попадётся скрипт-"инвалид", у которого отсутствует большой палец на левой руке (или вообще вся левая кисть)?
Надо бы и это предусмотреть :-))) | |
|
|
|
|
|
|
|
для: АЯС
(02.11.2011 в 09:09)
| | Вы напрасно язвите по поводу повторного подключения скрипта - дело не в архитектурных проблемах приложения или кривой реализации. Дело в клиентах, которым мы даем код для вставки и нам гораздо проще предусмотреть возмжоность двойной вставки кода на страницу, чем с каждым клиентом (который уже хорошо если знает чем отличается браузер от IE) разбираться почему у него на странице дублируется функционал. И выходит что потратить немного времени для решения этой проблемы на нашей стороне - гораздо эффективнее чем каждый день рассказывать одно и тоже. | |
|
|
|