日期:2014-05-16  浏览次数:20611 次

Ajax菜鸟问题,XMLHttpRequest.responseText会记录前值? - Web 开发 / Ajax
解决方案 成功案例
汽车整车 | |
汽车配套 | Gridview |
汽车零件 | |

页面大致如上:
实现功能:【解决方案】【成功案例】类似标签页点击改变参数kid,点击节点时,传节点nodeId ,gridview根据nodeId和Kid刷新。
代码:  
左侧是自己写的一颗树,节点onclick=nodeClick(this)
JScript code

function nodeClick(mythis)
{
document.getElementById("SelectNode").value=mythis.id;
h = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");
      h.open("GET", "Case.aspx?nodeId=" + nodeId, true);
      h.onreadystatechange = function() {
        if (h.readyState == 4) {
          if (h.status >= 200 && h.status < 300) {
            alert(h.responseText);
            document.getElementById("right2").innerHTML= h.responseText;
          }
        }
      }
      h.send(null);
}


C# code

      if (Request.QueryString["nodeId"] != null)
        {
            subiid = int.Parse(Request.QueryString["nodeId"]);
            ShowGVDB(kntid, subiid);//绑定girdview
            StringWriter sw = new StringWriter();
            HtmlTextWriter tw = new HtmlTextWriter(sw);
            SolutionGV.RenderControl(tw); //把控件信息转化为html语言
            Response.Write(sw.ToString()); //输入html
            Response.End();
        }


所遇到的问题:点击成功案例-》点击节点:汽车配套-》gridview显示数据案例1,案例2。-》点击节点:汽车整车-》gridview显示数据案例3,案例4
点击解决方案-》点击节点:汽车配套-》gridview显示数据案例1,案例2?这里既是问题,本应该显示方案1和方案2的?,但是h.responseText的数据里却是(案例1,案例2)。这是为什么啊?请高手指点


------解决方案--------------------
浏览器缓存问题 

h.open("GET", "Case.aspx?nodeId=" + nodeId, true);
-------->改为
h.open("GET", "Case.aspx?nodeId=" + nodeId+"&t="+new Date().getTime(), true);

就是网址加时间戳