解决方案 »

  1.   

    话说,用for循环一直向服务器发出请求?
    这不好吧!!想个最二的办法,定义一个全局变量flag=1,在执行这个函数之前,每次令
    flag=1;
    然后在这个函数之后,加个
    while(flag){}只要这个flag不等于0,就一直在这里,
    在那个你说的回调函数里面,令flag=0;不过,这样估计会不会导致浏览器卡掉的。想想都觉得我这想法,好二
    挡开玩笑啊,楼主好好找方法吧。
      

  2.   

    哈,谢谢回答啊,但是必须要把一个list里面记录一条条取出来,并作为doquery的参数去取东西。111111
      

  3.   

    为啥是js去做这个啊?这个在后端循环取那个list的值不行吗?把取到的值,弄成一个数组,返回回来,前端处理数组就可以了啊。你这个项目还不能这么做吗?还是说,有特殊要求
      

  4.   


    哈 哥们~多谢你的支持
    我们这个项目分成在线和离线版本的,离线版就是没网络,是无法访问后台的,数据都是从离线的sqlite数据库里面取哈
      

  5.   


    哈 哥们~多谢你的支持
    我们这个项目分成在线和离线版本的,离线版就是没网络,是无法访问后台的,数据都是从离线的sqlite数据库里面取哈
    js访问sqlite数据库都是居于回调机制的,并不是类库的问题,好像设置不了改下你的代码逻辑就行了,不要用for语句,定义全局变量和最大循环值,在回调里面操作全局变量++,然后和最大值比较是否继续循环
      

  6.   


    哈 哥们~多谢你的支持
    我们这个项目分成在线和离线版本的,离线版就是没网络,是无法访问后台的,数据都是从离线的sqlite数据库里面取哈
    js访问sqlite数据库都是居于回调机制的,并不是类库的问题,好像设置不了改下你的代码逻辑就行了,不要用for语句,定义全局变量和最大循环值,在回调里面操作全局变量++,然后和最大值比较是否继续循环
    大神,下面这样写还是不可以,不知道我理解有没有错误,他会先执行回调后面的代码,然后退出循环了
    if(null != data && 0 != data[0]){
    $.total=0;
      $.cycle=0;
      debugger;
      while($.total==$.cycle){
      var staffNo = data[$.cycle]
    var sql = " select COUNT(a.objectAnswer) answerCount from MassPaperResultRecord a ";
    sql += "  where 1 = 1 and a.status = 1 and a.massCode = 33 ";
    sql += " and a.objectClass = 'S' and a.objectDept = '101' and a.objectStaffNo =  " + staffNo;
    db.doQuery(sql,function(r){
    debugger;
    $.total++;
    })
    $.cycle++;
      }
    }
      

  7.   

    這樣行不行
    if(null != data && 0 != data[0]){
       lists(data);     
    }
    function lists(data, index) {
        var i = index || 0;
        var l = data.length;
        var staffNo, sql;
        if(i < l) {
            staffNo = data[i]
            sql = "select COUNT(a.objectAnswer) answerCount from MassPaperResultRecord a ";
            sql += "  where 1 = 1 and a.status = 1 and a.massCode = 33 ";
            sql += " and a.objectClass = 'S' and a.objectDept = '101' and a.objectStaffNo =  " + staffNo;
            db.doQuery(sql,function(r){
               lists(data, i + 1); 
            });
        }    

      

  8.   

    你的回调要做成一个函数啊,没见你继续执行下一步的操作
        var sql = '第一句sql语句';
        var max = 10, now = 0;
        db.doQuery(sql, callback);    function callback(r) {
            now++;
            //根据拼装下一个sql语句        if (now < max) db.doQuery(sql, callback);///////未达最大下标继续查询
        }
      

  9.   

    3Q~大神 你的方法最简便~
    功能现在实现了,但是后台狂暴这个错,,是为什么呢?是递归一直在执行吗
    Property 'now' of object function (a,b){return new e.fn.init(a,b,h)} is not a function