本人有这这样一个需求:
就是批量删除数据库中的数据,然后把每条删除信息通过textarea显示到页面上,没删除一条数据就在textarea中追加一条数据,用来给用户展示删除的数据,我现在通过dwr尝试,但是没有达到自己想要的结果:
- JScript code
DWREngine.setAsync(false); c_lttb_pbh_deltetOutDispatch.readExcel(path, sheetName, beginCol, endCol,function(data){ if(data.length==0){ alert("发生错误,请检查EXECL是否规范"); }else{ document.all.resultText.value="共有:" + data[0].length + "条数据"; for(var i=0;i<data[0].length;i++){ c_lttb_pbh_deltetOutDispatch.archiveProcessFor112(data[0][i],data[1][i],sheetName,function(resultInfo){ var resInfo = document.all.resultText.value; resultInfo = resInfo + "\n" + (i+1) + ":" + resultInfo; document.all.resultText.value=resultInfo; }); } } }); DWREngine.setAsync(true);
for循环中动态给textarea赋值,但是只有当for循环全部循环完才能显示出来,我想要的是没执行一次循环textarea中就显示一条数据,怎么实现呀。
------解决方案--------------------------------------------------------
每执行一次后,call一个controll A. A 向前台发送删除信息。前台收到后,在textarea中追加数据。前台完成操作后,给后台发一个信息,许可后台执行下次循环。
------解决方案--------------------------------------------------------
要看到比较明显的效果那么你就选择后一条一条的提交,页面上循环ajax请求后台。这样效率肯定不怎样。
还有个就是ajax提交后,页面上用js启动一个定时任务,然后ajax去请求后台结果,直到完成。这样可能会更好一些
------解决方案--------------------------------------------------------
给你的TEXTEAEA设定一个ID,然后通过添加TextNode节点元素的方法去动态追加文本信息
var parent=document.getElementById("父节点ID");
var child=document.createTextNode("添加的文本信息");
parent.appendChild(child);
------解决方案--------------------------------------------------------
- JScript code
var id =....//获取你要删除的信息的idjQuery.ajax({ type: "post", url: "后台处理.action?id="+id,//返回当前id下的内容信息即result success: function(result) { if(result.length>0) { jQuery("#id").append(result);//这里的id即为textarea的id }else { alert('没有符合数据的内容!'); } }, error: function(xhr, status, error) { alert("服务器出错,请稍候再试。。。"); }, cache:false });
------解决方案--------------------------------------------------------
- JScript code
var id =....//获取你要删除的信息的idjQuery.ajax({ type: "post", url: "后台处理.action?id="+id,//返回当前id下的内容信息即result success: function(result) { if(result.length>0) { jQuery("#id").append(result);//这里的id即为textarea的id }else { alert('没有符合数据的内容!'); } }, error: function(xhr, status, error) { alert("服务器出错,请稍候再试。。。"); }, cache:false });