004_Ajax实现HTML局部更新
2017-09-23 17:27
141 查看
Ajax
2005 年 Jesse James Garrett 发表了一篇文章,标题为:“Ajax: A newApproach to Web Applications”。他在这篇文章里介绍了一种技术,用他的话说,就叫:Ajax,是 Asynchronous JavaScript + XML 的简写。这种技术能够想服务器请求额外的数据而无须卸载页面(即刷新) , 会带来更好的用户体验。一时间,席卷全球。
步骤
1.搭建HTML骨架2.书写js骨架
3.书写Ajax代码、对异步请求到的数据进行处理
详解
1.搭建HTML骨架<body> <!-- 就一个按钮 --> <div id="button"> </div> </body>
2.书写js骨架
/* 2.1.书写JS骨架,为后面插入的表格数据进行样式渲染 */ //控制各行变色的变量 var oddEven = 0; //动态的插入数据项的函数 function insertInfor() { var tabId = document.getElementById("tabId"); var index = 0; //插入HTML代码 var htmlStr = "<tr>" + "<td>" + arguments[index++] + "</td>" + "<td>" + "<details>" + "<summary>" + "</summary>" + arguments[index++] + "</details>" + "</td>" + "<td>" + arguments[index++] + "</td>" + "</tr> "; tabId.innerHTML += htmlStr; //最后一个tr是新插进去的,为它设置自己的样式 var trTab = tabId.getElementsByTagName("tr"); trTab = trTab[trTab.length - 1]; if( oddEven / 2 == 0 ) { oddEven++; //通过修改class的形式新增样式(直接更新,css里的样式不会应用到它的身上) trTab.className = "evenTr"; } else { oddEven = 0; trTab.className = "oddTr"; } }
3.书写Ajax代码
3.1.创建XMLHttpRequest对象
3.2.调用open(请求方式,请求页面,请求方式[true表示异步请求])
3.3.发送请求,调用send(请求参数)
3.4.等待状态事件被触发
3.5.
readyState == 4:已经接受到全部响应数据,而且可以使用
status == 200:服务器成功返回了页面
3.6.获取异步数据并进行处理
window.onload = function() { /* * 表格标题 */ document.getElementById("button").onclick = function() { document.body.innerHTML += " <table align=\"center\" " + "border=\"0\" cellspacing=\"1px\" id=\"tabId\">" +"<tr>" +"<th>序号</th>" +"<th>内容</th>" +"<th>讲解人</th>" +"</tr>" +"</table>"; /* * 3.1.创建XMLHttpRequest对象 */ var xhr = new XMLHttpRequest(); /* * 3.2.调用open(请求方式,请求页面,请求方式[true表示异步请求]) */ xhr.open("GET","table.json",true); /* * 3.3.发送请求,调用send(请求参数) */ xhr.send(null); /* * 3.4.等待状态事件被触发 */ xhr.onreadystatechange = function() { /* * 3.5. * readyState == 4:已经接受到全部响应数据,而且可以使用 * status == 200:服务器成功返回了页面 */ if( xhr.readyState == 4 && xhr.status == 200 ) { /* * 4.1.获取异步数据并进行处理 */ var jObj = JSON.parse(xhr.responseText); for (var i = 0; i < jObj.length; i++) { insertInfor(jObj[i].num,jObj[i].desc,jObj[i].name); } } } }
效果:
完整源码下载:
https://mp.weixin.qq.com/s/9nQr0SaC9npbUCVieLny7g
相关文章推荐
- 【笔记】利用ajax返回Html代替iframe,实现局部更新
- jquery使用ajax实现页面局部更新
- Ajax实现页面局部更新
- 少量代码实现AjaxPro.DLL 定时更新GridView技巧(页面的局部更新)
- winform 实现局部更新(如ajax实现)而整个界面不产生闪烁的解决方案
- 少量代码实现AjaxPro.DLL 定时更新GridView技巧(页面的局部更新)
- AJAX+Js实现html页面点击数自动更新
- 利用php和ajax实现局部更新数据
- 如何使用CallBack机制来实现局部更新(比ajax快)
- asp.net中AJAX扩展实现页面局部更新
- winform 实现局部更新(如ajax实现)而整个界面不产生闪烁的解决方案
- html通过js调用php实现局部更新
- Ajax.Request 类实现页面更新数据
- 使用Ajax技术局部更新商品数量和总价
- 在ASP.NET AJAX中使用自定义ViewManager局部更新数据
- Ajax的常用技巧(6)---实现web页面局部动态刷新
- jQuery实现AJAX定时刷新局部页面实例
- 使用Jquery的Ajax实现无刷新更新,修改,删除页面
- 使用php后台给自己做一个页面路由,配合ajax实现局部刷新。
- MVC5用AJAX实现一个下拉列表的值改变,另一个下拉列表的值跟着变(在不更新整个页面的前提下,且调用后台函数)