goahead 利用ajax实现局部刷新
来源:互联网 发布:按键精灵 动态数组 编辑:程序博客网 时间:2024/06/05 02:45
From: http://blog.csdn.net/seuge/article/details/8209685
ajax
“Asynchronous JavaScript and XML”(异步JavaScript和XML)
我们操作网页时往往只需要刷新网页上的一部分数据甚至可能是一个文本框内的数据,但是采用传统的刷新方式服务器会把整个页面重新发送至浏览器,浏览器再加载整个页面,这样不仅浪费了带宽,而且整个页面刷新视觉上也不流畅。
ajax技术解决了这一问题,ajax的思路是我需要刷新局部数据时给服务器一个请求,服务器收到请求后将数据将需要刷新的数据回送,浏览器接受到数据后通过脚本更新相应位置的数据,这个过程必须是在后台进行的。实现这个过程的核心便是JavaScript对象XmlHttpRequest。该对象在是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
在goahead中的实现:
1.首先是一个前台页面:
- <html>
- <head>
- <script type="text/javascript">
- function loadXMLDoc()
- {
- var xmlhttp;
- if (window.XMLHttpRequest)
- {// code for IE7+, Firefox, Chrome, Opera, Safari
- xmlhttp=new XMLHttpRequest();
- }
- else
- {// code for IE6, IE5
- xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
- }
- xmlhttp.onreadystatechange=function()
- {
- if (xmlhttp.readyState==4 && xmlhttp.status==200)
- {
- document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
- }
- }
- xmlhttp.open("GET","/ajax/",true);
- xmlhttp.send();
- }
- </script>
- </head>
- <body>
- <div id="myDiv"><h2>需要刷新的局部内容</h2></div>
- <button type="button" onclick="loadXMLDoc()">通过 AJAX 实现局部刷新</button>
- </body>
- </html>
<html><head><script type="text/javascript">function loadXMLDoc(){var xmlhttp;if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }xmlhttp.open("GET","/ajax/",true);xmlhttp.send();}</script></head><body><div id="myDiv"><h2>需要刷新的局部内容</h2></div><button type="button" onclick="loadXMLDoc()">通过 AJAX 实现局部刷新</button></body></html>把改htm放入服务器中。
2.在服务器端实现XMLHttpRequest的请求应答。
为ajax请求专门创建一个handle
- int websAjaxHandler(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg,
- char_t *url, char_t *path, char_t *query)
- {
- websHeader(wp);
- websWrite(wp, T("<body><h2>this is ajax test!</h2>\n"));
- websFooter(wp);
- websDone(wp, 200);
- return 1;
- }
int websAjaxHandler(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg, char_t *url, char_t *path, char_t *query){ websHeader(wp);websWrite(wp, T("<body><h2>this is ajax test!</h2>\n"));websFooter(wp);websDone(wp, 200);return 1;}注册handle
- websUrlHandlerDefine(T("/ajax"), NULL, 0, websAjaxHandler, 0);
websUrlHandlerDefine(T("/ajax"), NULL, 0, websAjaxHandler, 0);这样就实现了局部刷新。
扩展
- xmlhttp.open("GET","/ajax/",true);
- xmlhttp.send();
xmlhttp.open("GET","/ajax/",true);xmlhttp.send();
这是后台数据请求,现在仅是示意,所以没有对ajax请求进行分类,以后可以进行细分比如
xmlhttp.open("GET","/ajax/time",true);
然后响应的在goahead端进行二次判断,作出响应的应答。
xmlhttp.open("GET","/ajax/time",true);
然后响应的在goahead端进行二次判断,作出响应的应答。
- goahead 利用ajax实现局部刷新
- goahead 利用ajax实现局部刷新
- goahead 利用ajax实现局部刷新
- 利用ajax实现页面的局部刷新
- 利用Ajax实现页面局部刷新
- 利用Ajax实现页面局部刷新
- php中利用ajax实现局部刷新
- $.ajax 实现局部刷新
- Ajax实现局部刷新
- Ajax实现局部刷新
- Ajax实现局部刷新
- Ajax实现局部刷新
- AJAX实现局部刷新
- AJAX实现局部刷新
- AJAx实现局部刷新
- asp.net mvc3 利用Ajax实现局部刷新
- 在JSF页面利用Ajax实现局部刷新
- asp.net mvc3 利用Ajax实现局部刷新
- oracle 如何获取表的主键列名,如何获取表的所有列名 .
- ERROR 1296 (HY000): Got error 157 'Unknown error code' from NDBCLUSTER
- oracle笔记
- 在VMWare 中增加磁盘(Adding a new disk to a VMware Virtual Machine in Linux)
- linux中shell变量$#,$@,$0,$1,$2的含义解释:
- goahead 利用ajax实现局部刷新
- Android的导航抽屉---Navigation Drawer
- Setsitelock:Stsadm 操作 (Office SharePoint Server)
- 华为内部面试题库---(3)
- 从命令行传递参数给内核模块 (MODULE_PARM)
- ubuntu php 开启rewrite 模块
- dxp中Unknown Pin 和Failed to add class member 解决办法
- 392. The best man stumbles. 伟人也犯错
- 《深入理解Android》导读之init