惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 让心灵去旅行

在Javascript中用command模式模拟多线程,包含注释 项目小结 sql语句性能提高 oracle的异常 简单的消息发送小程序 XP风格进度条 随机抽取不重复的数据 VS.Net 2005中文版下载地址收藏 在线统计与跟踪(新) 简单ocx控件制作方法(原创) 自己做控件小例子 可以双击的DataGrid 权限管理的方案(只有实现思想) - 让心灵去旅行 收藏几段SQL Server语句和存储过程(转载) - 让心灵去旅行 动态添加和删除行 键盘各键对应的键值 只能输入数值的输入框 操作动态表格的控件 - 让心灵去旅行 模仿QQ的菜单滚动效果
xmlhttp实现无刷新页面
让心灵去旅行 · 2005-10-13 · via 博客园 - 让心灵去旅行

  繁琐的页面刷新,大大降低的网页交互的性能。伺服器与客户端的交互,只需要传递少量信息,却因为服务器的刷新,不得不做大量的数据传递以及下载。这里将描述怎样实现无刷新的方法。
  假设实现的效果是,选择下拉栏目的时候,无刷新显示详细信息。
  描述运行的思路如下:在客户端SELECT控件中双击行,客户端将选择行信息,通过javascript语句,结合xmlhttp控件,将参数POST到伺服器端,伺服器端接受参数,执行处理,传递xml流到客户端,然后客户端得到xml,解析,绑定客户端控件。
  客户端代码如下:
  function showData(){
 var sPageName = "接受的页面.aspx";
  var objSelect = document.Form1.selStation;//客户端选择控件
  var objChengQu = document.getElementById("txtDistrict");//服务器得到信息的TEXT框1
 var ObjPianQu = document.getElementById("txtArea");//服务器得到信息的TEXT框2
  var objDonhGe = document.getElementById("buildlist");//服务器得到信息的SELECT框

   var postUrl = sPageName+"?Selected="+objSelect.options[objSelect.options.selectedIndex].value;
 //构造传递路径
 var oXMLHTTP = new ActiveXObject("MSXML2.XMLHTTP");//调用用XMLHTTP控件
 oXMLHTTP.open("POST",postUrl , false); //POST到伺服器端
 oXMLHTTP.send(""); 
 var result = oXMLHTTP.responseText; //得到返回结果
 var oDoc = new ActiveXObject("MSXML2.DOMDocument");//调用用XML控件
 oDoc.loadXML(result);//将xml导入

    while (objDonhGe.options.length>0)
  { //完全清除原有的SELECT框的内容
 objDonhGe.options.remove(0);
  }

 if (oDoc.getElementsByTagName("城区").length>=1)
   objChengQu.value =oDoc.getElementsByTagName("城区").item(0).text;
  //填充TEXT框1

 if (oDoc.getElementsByTagName("片区").length>=1)
   ObjPianQu.value =oDoc.getElementsByTagName("片区").item(0).text;
  //填充TEXT框2

 var maxNum_out = oDoc.getElementsByTagName("栋阁").length; 
 for(i=0;i<maxNum_out;i++) {  
  var str1 = oDoc.getElementsByTagName("栋阁").item(i).text;
  var oOption = document.createElement("OPTION");
 objDonhGe.options.add(oOption);
 oOption.innerText = str1;
 oOption.value = str1;//ID
  } //填充下拉框2
  }

  服务器端代码如下:
 private void Page_Load(object sender, System.EventArgs e)
 {
  if(Request["Selected"]!=null)
   {
    XmlTextWriter writer = new XmlTextWriter(Response.OutputStream,Response.ContentEncoding);
    writer.Formatting = Formatting.Indented;
    writer.Indentation=6;
    writer.IndentChar=' ';
    writer.WriteStartElement ("楼盘");
    writer.WriteElementString("城区","阳光海滨"+Request["Selected"]);
    writer.WriteElementString("片区","世界花园"+Request["Selected"]);
    writer.WriteElementString("栋阁",Request["Selected"]+"期A");
    writer.WriteElementString("栋阁",Request["Selected"]+"期B");
    writer.WriteElementString("栋阁",Request["Selected"]+"期C");
    writer.WriteElementString("栋阁",Request["Selected"]+"期D");
    writer.WriteEndElement(); //完成构造xml
    writer.Flush();
    Response.End(); //结束响应
    writer.Close();
 } 
  }
  一个简单功能的无刷新就完成了,可以根据需要从数据库取数据,构造xml。