根据提供的文件信息,我们可以深入探讨XMLHttpRequest对象以及其在实现页面局部刷新中的应用。下面将对标题、描述、标签及部分代码内容进行详细解析,并从中提取出相关的知识点。 ### 标题:xmlhttp无刷新 #### 知识点1:XMLHttpRequest对象 - **定义**:`XMLHttpRequest`是JavaScript的一个内置对象,它提供了与服务器交互的功能,可以在不重新加载整个页面的情况下发送异步请求并接收响应。 - **创建方法**: - 在IE浏览器中使用`new ActiveXObject('Microsoft.XMLHttp')`。 - 在其他浏览器中使用`new XMLHttpRequest()`。 - 示例代码: ```javascript function createXMLHttpRequest() { if (window.ActiveXObject) { xmlhttp = new ActiveXObject('Microsoft.XMLHttp'); } else if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } } ``` #### 知识点2:无刷新技术(AJAX) - **定义**:AJAX(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,可以使网页实现异步更新。 - **实现过程**: - 发送请求:通过`XMLHttpRequest`对象的`open`方法初始化请求,再通过`send`方法发送请求。 - 处理响应:设置`onreadystatechange`事件处理函数来监听状态变化,当状态变为4且HTTP状态码为200时,表示请求成功完成,此时可以处理服务器返回的数据。 - 示例代码: ```javascript function stateRequest(vr1) { createXMLHttpRequest(); xmlhttp.onreadystatechange = handleStateChange; xmlhttp.open("POST", "/place1.aspx?id=" + vr1, true); xmlhttp.send(null); } function handleStateChange() { var divRet = window.document.getElementById("div2"); if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { var text = GetText(); divRet.innerHTML = text; } else { divRet.innerHTML = "<b>等待</b>"; } } ``` #### 知识点3:XML响应解析 - **定义**:服务器返回的响应可以是XML格式的数据,客户端可以通过`XMLHttpRequest`对象的`responseXML`属性获取到XML文档对象,进而解析和操作数据。 - **示例代码**: ```javascript function GetText() { var xmlDoc = xmlhttp.responseXML; if (xmlDoc == null) { return "内容为空"; } var requestNode = xmlDoc.getElementsByTagName("response")[0]; var node = requestNode.firstChild.nodeValue; return node; } ``` ### 标签:xmlhttp 无刷新 - 这里进一步强调了使用`XMLHttpRequest`对象实现页面局部刷新的技术。 ### 部分内容分析 #### 后端代码(b.aspx) 该部分展示了ASP.NET后端代码如何响应来自前端的异步请求,并处理数据: - **定义**:这部分代码使用C#语言编写,展示了如何从数据库中查询数据并返回给前端。 - **关键代码**: ```csharp protected void Page_Load(object sender, EventArgs e) { string id = Request.QueryString["id"]; System.Threading.Thread.Sleep(2000); // 模拟延迟 GetTitle(Convert.ToInt32(id)); } private DataTable GetLogs(int cateid) { using (SqlConnection con = new SqlConnection(cn.cnsql)) { con.Open(); string select = "select * from state where S_Id=" + cateid; SqlDataAdapter sda = new SqlDataAdapter(select, con); DataTable dt = new DataTable(); sda.Fill(dt); con.Close(); return dt; } } public void GetTitle(int id) { DataTable dt = GetLogs(id); StringBuilder sb = new StringBuilder(); if (dt != null && dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { sb.Append(dt.Rows[i]["S_Name"].ToString()); } } } ``` 通过以上分析,我们可以看出前端利用`XMLHttpRequest`对象向后端发起异步请求,后端处理请求并返回数据,前端再根据返回的数据更新页面的部分内容,从而实现了页面的局部刷新。这种方式极大地提高了用户体验,避免了不必要的页面重载,降低了服务器负载,是现代Web开发中常用的技术之一。
a.aspx
<script language="javascript" type="text/javascript">
var xmlhttp;
function createXMLHttpRequest() //为xmlhttp创建实例
{
if(window.ActiveXObject)
xmlhttp=new ActiveXObject('Microsoft.XMLHttp');
else if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
}
function stateRequest(vr1)//状态请求
{
//alert('看来已经执行了stateRequest了');
createXMLHttpRequest();//引用xmlhttp实例
xmlhttp.onreadystatechange=handleStateChange;//在请求状态发生改变时调用此方法
xmlhttp.open("POST","/place1.aspx?id="+vr1,true);
xmlhttp.send(null);
}
function handleStateChange()
{
//alert("看来已经执行了handleStateChange()了");
if(xmlhttp.readyState == 4)
{
if(xmlhttp.status == 200)
{
var text= GetText();
divRet.innerHTML=text;
// divRet.value=text;
}
}
else
divRet.innerHTML="<b>数据加载中</b>";
}
function GetText()
{
var xmlDoc=xmlhttp.responseXML;
//alert(xmlDoc.toString());
if(xmlDoc == null)
{
//alert("执行到这里了吗");
return "暂无数据!";
}
var requestNode=xmlDoc.getElementsByTagName("response")[0];
var node=requestNode.firstChild.nodeValue;
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 冲压件自动上料设备3D图纸和工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- 触摸板外观及尺寸检测机3D图纸和工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- 毕业设计-基于springcloud+springboot+mybatis+docker+bootstrap+h plus+微信小程序短视频社交软件 ,微信小程
- 毕业设计-基于SSMLayui框架学生宿舍管理系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于餐厅管理及点菜系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于电影推荐系统全部资料+详细文档+高分项目+源码.zip
- 基于STM32单片机的数控电源设计.zip
- p106显卡驱动,p106-90,p106-100通用
- EasyPlayer.js H5播放器的学习
- 毕业设计-基于超市管理系统(django)全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于车辆租赁系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于飞机订票系统全部资料+详细文档+高分项目+源码.zip
- C++控制台编程实践:动态绘制圣诞树
- 毕业设计-基于管理系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于进销存管理系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于教务管理系统全部资料+详细文档+高分项目+源码.zip