在jquery ajax回调函数里给font清除文字

最近因为效率问题改造了哈现有的一个功能,以前需要一分钟左右的东西,因数据库时间花的比较多,所以现在改成多次请求,多次AJAX请求,然后对表格填值,最大的数据量的话纵向400多行,横向80列左右,因效率问题,填充值都没有用

jquery的

$("#DataTable tr:eq("+(realrowindex+rowindex+tm)+") td:eq("+(realcolindex+colindex)+")").html(resultdata[rowindex][colindex].disData+" ");

秀发型

用上面的IE常提示是否继续。这样感觉给用户映像很不好。所以想改进哈。

后用

var DataTable=$("#DataTable")[0];

DataTable.rows[(realrowindex+rowindex+tm)].cells[(realcolindex+colindex)].innerHTML='<font color="'+fontcolor+'">'+resultdata[rowindex][colindex].disData+"</font>";

则没有提示有问题了。

这个功能现在请求30次左右,左边表格请求一次,右边表格请求29次,一次需要1S左右,现在总共跑下来10多秒就搞定,

本想右边请求完一次,再请求另一个的,但这样主线程好像速度慢,而且IE基本取数据时动不了。现在全用异步,递归调用,效果还行,没有出现填数据混乱的现象。

但就有一个问题,你29次请求全完了后要提示用户,想了老半天没想出办法,现在想了个办法定义一个全局变量,在显示这个页面时初始化,然后在回调函数中alert(),结果是递增的,奇怪的是先从2开始,打到28后再打1,搞不懂。

我想当这个变量为1时把正在取数据的消息取了,结果数据还没全显示完取数据的消息就已消失了。后直接>=28这下效果很好。

但在里面调用$("#msgid").html("");没反应,晕了,在回调函数里给表里给值都可以,为什么这个就不行,

后想了个办法,把这代码写在外面,在外面另定义一个函数,结果这样就搞定了。

在回调函数中调用下面这个函数。搞定。

function hideMsg(){
 $("#msgid").html("");//alert("dfs");
}

posted @ 2011-07-11 15:42  ctou45  阅读(247)  评论(0编辑  收藏  举报