English 中文(简体)
Javascript in Plugin: Delay in loop
原标题:Javascript in Firefox Plugin: Delay in for loop
  • 时间:2009-11-02 02:14:33
  •  标签:

我知道,在规定延长期限时,除了使用定时电话外,我们根本无法推迟一项职能呼吁,但在此,我试图用我正在为“......”开发的假象来做些什么(这并不是说 Java字装入一个网页):

for (var i = 0; i < t.length ; i++) {

    //Load a URL from an array
    //On document complete, get some data 

}

这一概念很简单。 我有一系列的URLs,我想把一些数据 par出。 每种电离层均需要一定时间装载。 因此,如果我试图从本页获取一些数据而不等待该页的负荷,我将出现错误。 现在,我知道,这样做的唯一途径是:

firstfunction: function() {

       //Load the first url
       setTimeout("secondfunction", 5000);

 }

 secondfunction: function() { 

     //Load the second url
     setTimeout("thirdfunction", 5000);

 }

...... 我知道这一点显然是错误的。 我只是想人们如何在 Java语中做到这一点。

EDIT: 不太详细的生活经历......

问题回答

我不相信这种ool子是必要的,但我不是知道的延伸圈子。 如果是你想要采取的办法,那么就在规定时间时,就是指同样的职能:

var index;
firstfunction: function() {
  // do something with `index` and increment it when you re done

  // check again in a few seconds (`index` is persisted between calls to this)
  setTimeout("firstfunction", 5000);
}

我不敢肯定如何从表面上这样做,但是,我过去在金字塔问题上所做的事,是对关于洛德事件的目标文件的一种倒退。

也许像:

var index = 0;  
var urls = [ ..... ];  
function ProcessDocument() { ....; LoadNextDocument(); }  
function LoadNextDocument() { index++; /* Load urls[index] */; }  
document.body.onLoad = ProcessDocument;

在那里,有些地方需要测试指数和超标;其最终条件也需要测试。

I had same problem but I used recursion instead of looping. Below is the running code which changes the innerHTML of an element by looping through the list. Hope its helpful.

<Script type="text/javascript">
var l;
var a;
function call2()
{
    l = document.getElementById( listhere ).innerHTML;
    a = l.split(",");
    call1(0);
}

function call1(counter)
{
    if(a.length > counter)
    {
        document.getElementById( here ).innerHTML = a[counter];
        counter++;
        setTimeout("call1("+counter+")",2000);
    }
}

</Script>

    <body onload="call2()">
    <span id="listhere">3,5,2,8</span><Br />
    <span id="here">here</span>




相关问题
热门标签