`
pangyi
  • 浏览: 32809 次
  • 性别: Icon_minigender_1
  • 来自: 古城西安
社区版块
存档分类
最新评论

求:采用DWR异步访问,频繁报“Failed to read input”的错误

阅读更多
使用场景:

    在报表展现时,需要计算处理数据,由于处理数据时间比较长,而显示报表的框架(不带数据)时间很快,因此采用报表展现和报表计算采用多线程方式来处理,即在报表展现
之前,启动报表计算线程进行计算,同时报表展现继续,报表计算线程将计算完毕的数据存放到一个指定内存区域。
    报表展现完成后,从页面通过DWR去访问指定的内存区域,将已计算完毕的数据取出,替代相应的位置。

以下将相关页面代码:
//触发页面监听服务器的JavaScript代码: 
var isStop=false;//状态量,如果已经从服务器取完数据,则停止监听服务器。 
function fireData(){ 
var arry= document.getElementsByTagName("div"); 
var i=1; 
var to=null; 
while(i <=arry.length){ 
  if(isStop){ 
      break; 
  }else{ 
      to=setInterval("replacejs()",i*1000); 

            } 
          i++; 
      } 
      clearInterval(to); 
} 
//处理替换数据的JavaScript代码 
function replacejs(){ 
    if(isStop){ 
      return; 
    } 
    arry= document.getElementsByTagName("div"); 
    var size=0; 
    
    for(i=0; i <arry.length;i++){ 
      if(arry[i].title=="no"){//通过数据DIV的title来识别该div是否已经被替换过 
          size++; 
          getuserById(arry[i].id);//采用DWR实现的异步方法	       
      } 
    } 
    if(size==0){ 
      isStop=true; 
    } 
} 
//DWR实现的异步访问方法 
function getuserById(id) { 
    var uid = id ; 
    if(uid.indexOf("汇总得分")!=-1){ 
      var group=$('conGroup').value; 
      uid=uid.replace(/汇总得分/,group+".汇总得分"); 
    } 
    //DWR部分 
    reportcell.getDWRV(uid,{callback:function(msg){ 
    if(msg){ 
replacediv(id,msg);//替代页面的函数,实现替代报表数据 
    } 
    }}); 
} 


在报表展现的数据计算很快的情况下,不会出现“Failed to read input”的错误,在数据计算比较慢的情况下,先是不断的弹出对话框提示“Failed to read input”,然后再提示“无法连接目标服务器”的对话框。

非常郁闷,DWR身为最好的AJAX服务端框架,不会这么不稳定吧!

请大家多多帮忙,再次先行拜谢!

分享到:
评论
2 楼 pangyi 2008-09-17  
布衣大盗 写道
解决不掉只能修改JAR中的JS

to 布衣
  
   如何改?本人对DWR只会使用。
1 楼 布衣大盗 2008-09-17  
解决不掉只能修改JAR中的JS

相关推荐

Global site tag (gtag.js) - Google Analytics