Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.01.2011, 07:23
Интересующийся
Отправить личное сообщение для cardon Посмотреть профиль Найти все сообщения от cardon
 
Регистрация: 09.10.2010
Сообщений: 11

Таймаут в цикле
Подскажите как сделать.
В общем есть цикл в котором переменной val присваиваються элементы массива actionSpusk
Код:
      for (var key in actionSpusk) {
	    var val = actionSpusk[key];
            vUrl = (tmDomain+'/'+val);
            GM_xmlhttpRequest({method: "GET", url: vUrl,});

    }

Так вот надо установить таймаут 2 секунды между запросами на каждую ссылку из массива за переход по ссылке отвечает код
Код:
GM_xmlhttpRequest({method: "GET", url: vUrl,});
Пробовал вот так, но переходы по ссылкам происходят без задержки несмотря на установленный таймаут.
Код:
setTimeout(GM_xmlhttpRequest({method: "GET", url: vUrl,}),2000);

Вот более подробный код
Код:
for (var q=0;q<items.length;q++){
  art_id = items[q].getAttribute("art_id");
  id = items[q].getAttribute("id");
  var amount = items[q].getAttribute("amount");
  var vUrl;
if (art_id==160 && amount<100) { 

       for (var key in actionSpusk) {
	    var val = actionSpusk[key];
            vUrl = (tmDomain+'/'+val);
          GM_xmlhttpRequest({method: "GET", url: vUrl,});

          }

     }


    }

Последний раз редактировалось cardon, 13.01.2011 в 07:31.
Ответить с цитированием
  #2 (permalink)  
Старый 13.01.2011, 08:17
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

setTimeout(function () {
var names = [];
for (var i in actionSpuck)
names.push(i);
var i=0;
(function(i){
calee=arguments.callee;
GM_xmlhttpRequest({method: "GET", url: tmDomain+'/'+actionSpuck[names[i]],callback:function(){
calee(++i);
}});
})(i);
}, 2000);


GM_xmlhttpRequest надо дописать так,чтобы она могла принимать callback
Ответить с цитированием
  #3 (permalink)  
Старый 13.01.2011, 08:44
Интересующийся
Отправить личное сообщение для cardon Посмотреть профиль Найти все сообщения от cardon
 
Регистрация: 09.10.2010
Сообщений: 11

Опробовал ваш код но к сожалению он почему то не работает.
Прилагаю весь код.
P.s. таймаут надо делать после каждого элемента массива.
// ==UserScript==
// @name           TM_flyga
// @namespace      *
// @include        [url]http://*tmgame.ru/game.php[/url]
// ==/UserScript==

var loc;
var tmDomain;
var actions;
var tmDomain;
var id;
var  art_id;


actionSpusk = new Array();

actionSpusk = new Array(
"action.php?xml=1&acode=move&param[x]=5&param[y]=7",
"action.php?xml=1&acode=move&param[x]=5&param[y]=8",
"action.php?xml=1&acode=move&param[x]=4&param[y]=9",
"action.php?xml=1&acode=chgloc&param[trans_id]=1",
"action.php?xml=1&acode=move&param[x]=3&param[y]=1",
"action.php?xml=1&acode=move&param[x]=3&param[y]=2",
"action.php?xml=1&acode=move&param[x]=2&param[y]=3",
"action.php?xml=1&acode=move&param[x]=2&param[y]=4",
"action.php?xml=1&acode=move&param[x]=1&param[y]=5",
"action.php?xml=1&acode=move&param[x]=1&param[y]=6",
"action.php?xml=1&acode=move&param[x]=0&param[y]=6",
"action.php?xml=1&acode=chgloc&param[trans_id]=10",
"action.php?xml=1&acode=move&param[x]=11&param[y]=7",
"action.php?xml=1&acode=move&param[x]=11&param[y]=8",
"action.php?xml=1&acode=move&param[x]=10&param[y]=9",
"action.php?xml=1&acode=chgloc&param[trans_id]=7",
"action.php?xml=1&acode=move&param[x]=9&param[y]=1",
"action.php?xml=1&acode=move&param[x]=9&param[y]=2",
"action.php?xml=1&acode=move&param[x]=8&param[y]=3",
"action.php?xml=1&acode=move&param[x]=8&param[y]=4",
"action.php?xml=1&acode=move&param[x]=7&param[y]=4",
"action.php?xml=1&acode=move&param[x]=6&param[y]=4",
"action.php?xml=1&acode=move&param[x]=5&param[y]=5",
"action.php?xml=1&acode=move&param[x]=4&param[y]=5",
"action.php?xml=1&f=1&obj_id=1160&obj_type=7"
);














(function(){
tmDomain=document.location.href.match(/http:\/\/[^\/]+/gi);
	tmDomain=tmDomain?tmDomain[0]:"http://www.tmgame.ru";
	refresh();
}
)();

loc=document.location.href;




function refresh() {

GM_xmlhttpRequest({
    method: 'GET',
    url: tmDomain+'/suka',
    headers: {
        'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/0.3',
        'Accept': 'application/atom+xml,application/xml,text/xml',
    },
});


var url = (tmDomain+'/srv/user/bpxml?'+rand(1000,9999));
   GM_xmlhttpRequest({
      method: 'GET',

      url: url,
      headers: {
         'User-agent': 'Mozilla/4.0 (compatible)',
         'Accept': 'application/atom+xml,application/xml,text/xml',
      }
      ,
      onload: function(responseDetails) {
         var parser = new DOMParser();
         var resp=responseDetails.responseText;
        resp=resp.replace(/\=([^\"])/g,'!$1').replace(/\&/g,'@');
         var dom = parser.parseFromString(resp,"application/xml");
         var items = dom.getElementsByTagName('item');

for (var q=0;q<items.length;q++){
  art_id = items[q].getAttribute("art_id");
  id = items[q].getAttribute("id");
  var amount = items[q].getAttribute("amount");
  var vUrl;
if (art_id==160 && amount<100) {

	setTimeout(function () {
	var names = [];
	for (var i in actionSpuck)
	names.push(i);
	var i=0;
	(function(i){
	calee=arguments.callee;
	GM_xmlhttpRequest({method: "GET", url: tmDomain+'/'+actionSpuck[names[i]],callback:function(){
	calee(++i);
	}});
	})(i);
	}, 2000);

     }


    }
 }
   });

//setTimeout(refresh, 10000);
}




function locCheck(substr){
   return loc.indexOf(substr)>=0;
}

function rand(Min,Max){
   var iMin=parseInt(Min);
   var iMax=parseInt(Max);

   return (Math.floor(((Math.random()*(iMax-iMin+1))+iMin)));
}
Ответить с цитированием
  #4 (permalink)  
Старый 13.01.2011, 09:18
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

names=[];
for(var i in actionSpuck)
names.push(i);
j=0;
for(var j=0;j<names.length;j++)
(function (j) {
setTimeout(function(){
GM_xmlhttpRequest({method: "GET", url: tmDomain+'/'+actionSpuck[names[j]]});
},j*2000);
if(j<names.length)
arguments.callee(++j);
})(j);
Ответить с цитированием
  #5 (permalink)  
Старый 13.01.2011, 09:56
Интересующийся
Отправить личное сообщение для cardon Посмотреть профиль Найти все сообщения от cardon
 
Регистрация: 09.10.2010
Сообщений: 11

Тему можно закрывать все сдеал.

Последний раз редактировалось cardon, 13.01.2011 в 10:04.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение innerHTML в цикле %) Tror Общие вопросы Javascript 24 03.05.2012 05:36
Вывод данных из базы в цикле со ссылкой на всплывающее окно alexvb Events/DOM/Window 14 10.02.2012 14:16
Привязка события click в цикле к эелементц craz Events/DOM/Window 8 14.11.2010 11:28
Таймаут в скрипте Greasemonkey cardon Firefox/Mozilla 2 10.10.2010 13:50
Проблема с передачей параметров в цикле. JonnyD3 jQuery 3 25.02.2010 15:18