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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задержка выполнения скрипта 
:(
    Опции темы
chiffa
Дата 29.11.2008, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый вечер необходимо сделать задержку выполнения скрипта, знаю есть вот такая радость:

setTimeout("endPart()", 5000); но мне нужно без вызова функции. Подскажи алииз smile Зарание спасиб оsmile
PM MAIL   Вверх
anthonyBoard
Дата 30.11.2008, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2008
Где: Russia, Obninsk

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



А sleep() не подходит?
PM MAIL   Вверх
chiffa
Дата 30.11.2008, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



спасибо за ответ, но почему то если использовать sleep(2000); то скрипт останавливает выполнение намертво... без продолжения через 2 сек
PM MAIL   Вверх
anthonyBoard
Дата 30.11.2008, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2008
Где: Russia, Obninsk

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



Прр.. Прошу прощения, в JavaScript нет sleep'а, но можно написать функцию sleep самому с помощью цикла:
Код

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

PM MAIL   Вверх
bars80080
Дата 30.11.2008, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



страх какой, проц совсем не жалко

почему бы просто не запрашивать таймаутом функцию? она для этого и создана, для применения пауз
если не нужно, чтобы что-то выполнялось, то просто в ней указать один return
если нужна здержка выполнения некой функции, то почему бы не разбить её на две части и не запускать выполнение второй с таймаута?
PM MAIL WWW   Вверх
anthonyBoard
Дата 30.11.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2008
Где: Russia, Obninsk

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



А если надо чтобы функция дождалась какого-то результата (например AJAX), и потом его вернула?

Это сообщение отредактировал(а) anthonyBoard - 30.11.2008, 16:29
PM MAIL   Вверх
bars80080
Дата 30.11.2008, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



так там же уже есть встроенный вызов. прописываешь название функции и всё
PM MAIL WWW   Вверх
anthonyBoard
Дата 30.11.2008, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2008
Где: Russia, Obninsk

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



Че-то не понял, а расскажи, пожалуйста, как сделать так?

Вот у меня например есть функция (она не рабочая, так просто чтобы суть передать)

Код

function request(параметры){
   xmlhttp = объект HMLHTTP;
   
   xmlreceived = false; // переменная меняет значение когда пришел ответ от сервера

   xmlhttp.onreadystatechange() = function(){
       if(xmlhttp.readyState == 4){
           xmlreceived = true;
       }
   }
   
    xmlhttp .open(запрос, адрес, true);
    xmlhttp .send();

   xmlattemps = 5; // количество попыток для получения данных, чтобы цикл не стал вечным в случае чего

   while(xmlreceived != true && xmlattemps != 0){
      xmlattemps+= -1;
      sleep(500);
   }
   
   result = (typeof(xmlhttp.responseXML) != "undefined") ? xmlhttp.responseXML : false;

   return result ;
}



и я это дело могу использовать очень просто и получать результат сразу в переменную:

Код

xml = request(нужные параметры);


Это сообщение отредактировал(а) anthonyBoard - 30.11.2008, 18:41
PM MAIL   Вверх
bars80080
Дата 30.11.2008, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



понятия не имею откуда у тебя этот код, я однажды списал этот: http://forum.vingrad.ru/index.php?showtopi...t&p=1685574 и он никогда не подводил. функция ajax_o() - ту что напишешь ты, запускается она именно по приходу данных, за что отвечает свойство .readyState. в ней можно поставить вызов с задержкой через сколько угодно по какой-угодно причине
PM MAIL WWW   Вверх
mxt
Дата 30.11.2008, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Для других целей можно использовать
http://www.neilmix.com/narrativejs/doc/index.html
--------------------
PM MAIL   Вверх
chiffa
Дата 30.11.2008, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


 




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


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

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