Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> переход по ссылке порядок выполнения функции 
:(
    Опции темы
LoaLady
Дата 16.10.2009, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 1.9.2009

Репутация: нет
Всего: нет



странный поядок выполнения операторов функции, сайт мебельной фирмы, на гглавной страницы выскакивают картинки-ссылки случаных диванов, при нажатии на них запускается функция 
Код

function cardForm()
{xid=window.event.srcElement.id
num=parseInt(xid.substr(3,2))//часть id является номером изображения num, а часть номером каталога katNum
katNum=parseInt(xid.substr(1,1))
if (katNum==0){Loc="DiTmD"} //в зависимости от того из какого каталога изображение переменной Loc присваивается его название
else{if(katNum==1){Loc="UgD"}}
Loc0=window.location.href
Loc0=Loc0.substring(Loc0.lastIndexOf("/")+1,Loc0.lastIndexOf("."))// определяется название текущей страницы (например "index" или "UgD")
if (Loc0!=Loc) {window.location.href=Loc+".html"} // переход на страницу нужного каталога
alert("j") //Проверка перехода
document.getElementById("MainText").innerHTML=ImgText[katNum][num]// вставка карточки дивана
}

так вот сообщение проверка почему-то возникает до перехода, хотя в коде оно стоит после. Суть в том что должен совершаться переход на страницу каталога а затем формироваться карточка нужного дивана, но больше интересно конечно то, почему так выполняется функция.
PM MAIL   Вверх
IDVsbruck
Дата 17.10.2009, 02:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



Обалдеть! Про разметку и стиль молчу, но подход мне подравился: "я сижу в каске и руковожу перелистыванием страниц прямо из скрипта ... находящегося на странице". Просто супер! И ты думаешь, что ЭТО сработает? А задуматься, что при переходе меняется вся структура DOM, в том числе и подгруженные скрипты, не? Или хочешь успеть "проскочить"?

А теперь по поводу первостепенности вызовов. Структура ООП javascript событийная, как и должна быть ООП - это не список вызываемых процедур. В js есть так называемые динамические свойства (Dynamic Properties), при установке которых происходит вызов функции setExpression и устанавливается определенный атрибут или свойство и инициируется событие (как, к примеру, с установкой размеров окон или прочих динамических свойств). И есть слушатели этих событий, как, к примеру, браузер является слушателем событий по установке локации окна. Но линейный ход скрипта происходит быстрее, чем отлов и реакция на событие, да и среда браузера - это многопоточная среда (в отличие от песочницы js), поэтому потоки не конкурируют. Поэтому код, следующий за установкой локации окна, срабатывает быстрее, чем браузер среагирует на переход.

Но даже если бы случилось невероятное и браузер среагировал быстрее на window.location.href, он "отлучил" бы данный скрипт вместе со страницей и стал бы загружать новый, где уже нет места последним двум строкам (как и всем остальным).
PM MAIL   Вверх
LoaLady
  Дата 17.10.2009, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 1.9.2009

Репутация: нет
Всего: нет



 smile  Спасибо буду учиться.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.