Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.06.2014, 19:38
Интересующийся
Отправить личное сообщение для spider Посмотреть профиль Найти все сообщения от spider
 
Регистрация: 09.11.2009
Сообщений: 15

Срабатывание несколько форм через разные интервалы времени
Здравствуйте, не нашел тут раздел для новичков, поэтому пишу сюда.
Моя задача очень простая, на html странице будет 5 разных форм, каждая будет отправлять данные на разные сайты. Делается это для того, т.к. я не знаю, какой из сайтов будет работать, а какой будет под ддосом.
Соответственно я решил, что через допустим секунд 5 будет срабатывать последовательно одна из форм.
Т.е. сразу срабатывает первая форма, если сайт под ддосом, то через 5 секунд срабатывает вторая форма и т.д.

Сделал простой скриптик, но почему-то выдает Hello сразу, в чем моя ошибка?

<head>
<script language="javascript">
function ToBilling()
{
setInterval(RunCheck(), 300000);
}

function RunCheck()
{
alert("Hello");
}
</script>
</head>

<body onload="ToBilling();">
</body></html>


Заранее спасибо за ответ!

Update:
<html><head>
<script language="javascript">
function ToBilling()
{
document.forms.checkout1.submit();
setTimeout(a=1, 1000);
document.forms.checkout2.submit();
setTimeout(a=1, 1000);
document.forms.checkout3.submit();
setTimeout(a=1, 1000);
document.forms.checkout4.submit();
}
</script>
</head>

<body onload="ToBilling();">


<form action="http://148.251.15.1/" method="post" name="checkout1" id="checkout1">
<noscript><input type="submit" value="Please click here to continue" /></noscript>
</form>


<form action="http://148.251.15.2/" method="post" name="checkout2" id="checkout2">
<noscript><input type="submit" value="Please click here to continue" /></noscript>
</form>


<form action="http://148.251.12.3/" method="post" name="checkout3" id="checkout3">
<noscript><input type="submit" value="Please click here to continue" /></noscript>
</form>


<form action="http://148.251.15.4/" method="post" name="checkout4" id="checkout4">
<noscript><input type="submit" value="Please click here to continue" /></noscript></form>

</body></head></html>

Взял наугад 4 IP, причем отзывается только третий, 148.251.12.3, к сожалению не срабатывает, может кто-то еще посоветует решение?

Последний раз редактировалось spider, 26.06.2014 в 20:04.
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2014, 05:47
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от spider Посмотреть сообщение
в чем моя ошибка?
В том, что перед тем как что-то писать надо хоть немного почитать о том, как оно работает.
setInterval(RunCheck(), 300000);

Функция RunCheck запускается в этой строке, а в таймер на исполнение попадает то, что возвращает эта функция, в данном случае undefined. Если надо запускать функцию RunCheck каждые 300 секунд, то это будет выглядеть так:
setInterval(RunCheck, 300000);


Сообщение от spider Посмотреть сообщение
function ToBilling()
{
document.forms.checkout1.submit();
setTimeout(a=1, 1000);
document.forms.checkout2.submit();
setTimeout(a=1, 1000);
document.forms.checkout3.submit();
setTimeout(a=1, 1000);
document.forms.checkout4.submit();
}
А это вообще непонятно что...
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2014, 12:56
Интересующийся
Отправить личное сообщение для spider Посмотреть профиль Найти все сообщения от spider
 
Регистрация: 09.11.2009
Сообщений: 15

Сообщение от jsnb Посмотреть сообщение
Функция RunCheck запускается в этой строке, а в таймер на исполнение попадает то, что возвращает эта функция, в данном случае undefined. Если надо запускать функцию RunCheck каждые 300 секунд, то это будет выглядеть так:
setInterval(RunCheck, 300000);



А это вообще непонятно что...
Спасибо большое с Hello заработало, а вот под этим я имел ввиду, что думал последовательно запустятся 4 функции, каждая из которая через 1 секунду выполнит html форму, т.к. я перепробовал уже много разных вариантов, то и вместо функции просто к переменной a присваивал 1

К сожалению не работает даже просто так:
function ToBilling()
{
setTimeout(document.forms.checkout3.submit, 5000);
}

Т.е. как я считаю эта функция должна через 5 секунд запустить обработку формы с именем checkout3

В итоге я хотел, чтобы у меня запускалась сначала одна форма(c именем checkout1), если сервер не отвечает, то через 3 секунды другая форма(c именем checkout2), если сервер у второй формы не отвечает, то через 3 секунды третья(c именем checkout3) и т.д.
Как мне казалось, что это должно выглядеть как:
function ToBilling()
{
setTimeout(document.forms.checkout1.submit, 0);
setTimeout(document.forms.checkout2.submit, 3000);
setTimeout(document.forms.checkout3.submit, 3000);
setTimeout(document.forms.checkout4.submit, 3000);
}
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2014, 14:07
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от spider
если сервер не отвечает
это ключевые слова, от которых надо отталкиваться. Отправляйте формы асинхронно, проверяя ответ сервера. В случае отказа запускайте отправку по следующему адресу.
А через .submit() отправка застопорится на первой форме, остальные обрабатываться не будут.
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2014, 14:40
Интересующийся
Отправить личное сообщение для spider Посмотреть профиль Найти все сообщения от spider
 
Регистрация: 09.11.2009
Сообщений: 15

Сообщение от BETEPAH Посмотреть сообщение
это ключевые слова, от которых надо отталкиваться. Отправляйте формы асинхронно, проверяя ответ сервера. В случае отказа запускайте отправку по следующему адресу.
А через .submit() отправка застопорится на первой форме, остальные обрабатываться не будут.
Эх, если все так сложно, то проще кроном раз в 5 минут все серваки обходить и уже с помощью php генерировать одну нужную форму. Я просто думал, что в js это можно сделать очень легко
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вернуть return через несколько функций TheMilkMan Общие вопросы Javascript 4 25.06.2013 17:22
Запуск скрипта через некоторое кол-во времени. qwermjk Общие вопросы Javascript 9 31.03.2013 06:15
Как передать через onchange несколько параметров? Arey AJAX и COMET 5 14.08.2012 16:31
Клик по ссылке через каждое №-ое количество времени. lamer Элементы интерфейса 12 17.03.2012 10:17
Срабатывание скрипта в разные моменты при загрузки в разных браузерах VitalikPro Javascript под браузер 10 29.12.2011 18:24