Автор Тема: Порядок выполнения цикла???  (Прочитано 2113 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Wolf

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Порядок выполнения цикла???
« : 28 Февраля 2003, 09:52:21 »
У меня есть такой код функции - памятка для себя:

function ch()
{
   if (txt22.value!=\'\')
   {
      for (var i=1; i<=21; i++)
     {
        el=eval(\'txt\'+i); eln=eval(\'hdf\'+i); el.value=eln.value;
     }
   }
   document.all.txt22.value=window.screen.width;
   txt23.value=window.screen.height;
   txt24.value=window.screen.pixelDepth;
   txt25.value=window.screen.colorDepth;
   txt26.value=window.screen.availWidth;
   txt27.value=window.screen.availHeight;
   txt28.value=window.screen.availLeft;
   txt29.value=window.screen.availTop;
   txt30.value=window.document.body.clientHeight;
   txt31.value=window.document.body.clientLeft;
   txt32.value=window.document.body.clientTop;
   txt33.value=window.document.body.clientWidth;
   txt34.value=window.document.body.offsetHeight;
   txt35.value=window.document.body.offsetLeft;
   txt36.value=window.document.body.offsetParent;
   txt37.value=window.document.body.offsetTop;
   txt38.value=window.document.body.offsetWidth;
   txt39.value=window.document.body.scrollHeight;
   txt40.value=window.document.body.scrollLeft;
   txt41.value=window.document.body.scrollTop;
   txt42.value=window.document.body.scrollWidth;
   setTimeout("fr()",1000);
}
function fr()
{
   for (var i=1; i<=21; i++)
     {
        el=eval(\'hdf\'+i); no=i+21; eln=eval(\'txt\'+no); el.value=eln.value;
     }
}

запуск этих функций установлено в тэге body на события onLoad и onResize (все работает). Я проверял циклы исполняются вообще друг за другом (если последовательные циклы), так вопрос такой: кто знает когда (при каких обстоятельствах или условиях) следование команд нарушается.
В этом примере если убрать задержку на секунду, то текстовым полям txt1-txt21 будут присвоены ноые значения (полей txt22-txt42), хоть они следут после цикла присваивания. Ой заметил, что я протупил, можно и не использовать с задержкой дополнительные поля, но вопрос все-таки остается. ?????
Век живи, век учись!:)

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Порядок выполнения цикла???
« Ответ #1 : 28 Февраля 2003, 15:22:34 »
Во всех броузерах?
Вообщето элементы управляются событиями.
Т.е знак = на самом то деле генерирует событие данному элементу чтобы он заполнился данными (это в винде так).

А еще известно что IE висит глухо, пока весь скрипт не отработает....

Так что лучше ставь задержку (даже маленькую можно - 1 милисекунды - главное чтобы было прерывание выполнения скрипта.)
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн Wolf

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Порядок выполнения цикла???
« Ответ #2 : 28 Февраля 2003, 23:00:28 »
Спасибо за разъяснения. Да и еще спасибо за ту твою темку насчет размера экрана эт я из нее свойства надыбал, а то я уж было начал блуждать...
Век живи, век учись!:)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28