日期:2014-05-17  浏览次数:20442 次

Ajax处理时反应慢,弹出的DIV关闭速度很慢
本帖最后由 uiwgi 于 2013-12-31 14:02:46 编辑
   我用.net开发一个生产排程页面,可以实现所有机种每月的具体生产计划,每行35列左右,行数不确认,目前最多在100以内。
   布局如下图所示:
   

   然后针对每一个小格子(td)都有设置ID,然后Ajax实现局部更新数据。

   当单击对应的td时,会弹出修改数据的DIV,修改完成后,当保存时会有大概3秒左右的延时,然后才会关闭DIV。

   这样反应过慢造成了使用人员体验效果非常差,输入数据太慢。

   请问一下,有没有办法能提高处理速度,当点击“保存”后能立即关闭DIV并处理好数据。

   Database的负载很低的,所以不知道是哪里出了问题?

   JS代码如下:

   function GetXmlHttp() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    }
    else { 
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
   }



function SaveNewItem() {
    if (CheckLogin() == false)
        return;
    var ProductID = document.getElementById("st").value;
    var OrderName = document.getElementById("order_Input").value;   
    var A = GetXmlHttp();
    A.onreadystatechange = function () {
        if (A.readyState == 4 && A.status == 200) {
            if (A.responseText.substring(0,2)=="NG")
                alert(A.responseText.substring(2, 13));        }
    }
    A.open("GET", "ajax_response/SaveData.aspx?PID=" + ProductID + "&ON=" + OrderName);
    A.setRequestHeader("If-Modified-Since", "0");  
    A.send(null);
    
}


   

------解决方案--------------------
如果是jquery的 Ajax ,  async: true,异步提交。
------解决方案--------------------
首先你要确定是哪里慢,比如去掉ajax保存到后台的过程看看,确定问题点才好解决问题。
如果自己找不出来那你就弄个html版的简单完整demo代码发出来看看。
------解决方案--------------------
$("td").click(function(){
   $.ajax({
   })
})

如果不是后台处理慢的话,应该是点击保存就可以弹出保存成功
------解决方案-----