我循环取出一些数据,每取出一组数据就隔10秒执行一遍show()函数,我试着如下写法,没能实现,自己的js水平有限,望有经验的朋友给予指点,谢谢
    WebServiceSendData.Gettrace(onSuccessed);
       function onSuccessed(result)
        {
            for(var i=0;i<result.length;i++)
            {
                x=result[i]["Lat"];
                y=result[i]["Lng"];
                setInterval("show(x,y)", 10000);
            }
        }
function show(x,y) 
{
  .......... 
}
 

解决方案 »

  1.   

    不能在循环中这样做,你可以在show方法中动态的获取x,y,然后10000时间后,在执行var k=0;
      var x=result[k]["Lat"];
      var y=result[k]["Lng"];
      
      show(k);//首次执行
      k++;
      setInterval("show("+k+")", 10000);
      function show(k)  
    {
      if(k<result.length)
      {
        x=result[k]["Lat"];
    y=result[k]["Lng"];    你的方法..........   k++;
      }
      else
      {
     方法不再执行
      }
    }
      

  2.   

    写错了,这样就行了
    setInterval("show()", 10000);
      

  3.   


      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
      <SCRIPT LANGUAGE="JavaScript">
      <!--

      
      var k=0;
      var x=k;
      var y=k;
      
      show(k);
      setInterval("show()", 2000);
      function show()  
    {
      if(k<10)
      {
        x=k;//result[k]["Lat"];
    y=k;//result[k]["Lng"];    //你的方法..........  
        alert(x+"|"+y);
    k++;
      }
      else
      {
     //方法不再执行
      }
    }  //-->
      </SCRIPT>
     </BODY>
    </HTML>
      

  4.   

    setInterval  是一个系统自带的函数
    应该是在JS加载的时候执行一次,不能动态的加载吧
      

  5.   

    你这样是不行滴。你错误地理解了setInterval的意思勒。函数应该写在setInterval里面,这样才能依具setInterval中设置的时间间隔来调用函数。例:s=setInterval(function execute(){xxx},5000);每5秒执行一次execute()函数
      

  6.   


    <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
      <SCRIPT LANGUAGE="JavaScript">
      <!--
        
      
      var k=0;
      var x=k;
      var y=k;
      
      show();    function show()  
    {
      if(k<10)
      {
        x=k;//result[k]["Lat"];
        y=k;//result[k]["Lng"];
        setTimeout("show()", 1000);//用setTimeout一样会达到效果
        //你的方法..........  
        alert(x+"|"+y);
        k++;
      }
      else
      {
         //方法不再执行
      }
    }  //-->
      </SCRIPT>
     </BODY>
    </HTML>
      

  7.   

    其实使用setTimeout更容易控制。
      

  8.   

    直接运行例子就知道了,你需要的函数是:timedChunk<!doctype html> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Array Processing Test</title> 
    <style type="text/css"> 
        th { text-align: left; }
    </style> 
    </head> 
    <body> 
     
    <button onclick="reset()" id="resetBtn" autocomplete="off">重置</button> 
    <button onclick="test1()" id="test1Btn" autocomplete="off">传统方式加载</button> 
    <button onclick="test2()" id="test2Btn" autocomplete="off">分时优化加载</button> 
     
    <div style="border: 1px solid black; width: 500px; margin: 10px 0; color: white"> 
        <div id="time-progress" style="background-color: navy; height: 16px; width: 0"></div> 
    </div> 
     
    <table id="demo"> 
        <col width="200" /> 
        <col width="300" /> 
        <tbody> 
        <tr> 
            <th>商品名称</th> 
            <th>商品描述</th> 
        </tr> 
        </tbody> 
    </table> 
    <script type="text/javascript"> 
     
        // 模拟数据
        var JSON_DATA = [], i, len;
        for (i = 1; i <= 5000; ++i) {
            JSON_DATA.push(["商品名称" + i, "商品描述" + i]);
        }
     
        // 通用操作
        var demo = document.getElementById("demo"),
            tbody = demo.tBodies[0],
            tr, td, n = 0,
            addItem = function(data) {
                tr = document.createElement("tr");
     
                td = document.createElement("td");
                td.appendChild(document.createTextNode(data[0]));
                tr.appendChild(td);
     
                td = document.createElement("td");
                td.appendChild(document.createTextNode(data[1]));
                tr.appendChild(td);
     
                tbody.appendChild(tr);
                if(++n % 10 == 0)
                    progressing();
            },
            reset = function() {
                resetBtn.disabled = true;
     
                if(window.ActiveXObject) { // ie
                    var temp = document.createElement("div");
                    temp.innerHTML  = "<table><tbody><tr><th>商品名称</th><th>商品描述</th></tr></tbody></table>";
                    demo.replaceChild(temp.firstChild.tBodies[0], tbody);
                    tbody = demo.tBodies[0];
                } else {
                    tbody.innerHTML = "<tr><th>商品名称</th><th>商品描述</th></tr></tbody>";
                }
     
                n = 0;
                progress.innerHTML = "";
                progress.style.width = 0;
     
                test1Btn.disabled = false;
                test2Btn.disabled = false;
            },
            progressing = function() {
                progress.style.width = (progress.offsetWidth + 1) + "px";
            },
            resetBtn = document.getElementById("resetBtn"),
            test1Btn = document.getElementById("test1Btn"),
            test2Btn = document.getElementById("test2Btn"),
            progress = document.getElementById("time-progress");
     
     
        // 传统加载
        function test1() {
            resetBtn.disabled = true;
            test1Btn.disabled = true;
            test2Btn.disabled = true;
     
            var start = +new Date(), end;
            for (i = 0, len = JSON_DATA.length; i < len; ++i) {
                addItem(JSON_DATA[i]);
            }
            end = +new Date();
            progress.innerHTML = end - start;
     
            resetBtn.disabled = false;
        }
     
        // 分时加载
        function test2() {
            resetBtn.disabled = true;
            test1Btn.disabled = true;
            test2Btn.disabled = true;
     
            var start = +new Date(), end;
            timedChunk(JSON_DATA, addItem, null, function() {
                resetBtn.disabled = false;
                end = +new Date();
                progress.innerHTML = end - start;
     
            });
        }
     
     
        // 通用分时处理函数
        function timedChunk(items, process, context, callback) {
            var todo = items.concat(), delay = 25;
     
            setTimeout(function() {
                var start = +new Date();
     
                do {
                    process.call(context, todo.shift());
                } while(todo.length > 0 && (+new Date() - start < 50));
     
                if(todo.length > 0) {
                    setTimeout(arguments.callee, delay);
                } else if(callback) {
                    callback(items);
                }
     
            }, delay);
        }
        
    </script> 
    </body> 
    </html>
      

  9.   

    WebServiceSendData.Gettrace(onSuccessed);
      function onSuccessed(result)
      {
      for(var i=0;i<result.length;i++)
      {
      x=result[i]["Lat"];
      y=result[i]["Lng"];
      show(x,y);
      }
      }
    function show(x, y)  
    {
      x=result[i]["Lat"];
      y=result[i]["Lng"];
      setInterval("show(x,y)", 10000);
    }