zoukankan      html  css  js  c++  java
  • Ajax的简单基础

    什么是 AJAX ?

    AJAX 是一种用于创建快速动态网页的技术。

    通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。

    这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新

    同步请求:返回的是整张页面,会刷新整个页面,他是串行的过程,只能同时做一件事。

    异步请求:返回的是字符串(页面的部分信息),不会刷新整个页面,不会阻塞当前主线程。

    AJAX通过核心对象XMLHttpRequest在后台发起子线程,该子线程负责此次的请求,会请求服务器,服务器会返回一个字符串,该字符串会封装在XMLHttpRequestresponseText属性中,然后请求返回客户端,可通过xhr.responseText获取服务器返回的字符串,然后通过DOM技术修改DOM树。由于是子线程在发起请求,所以不会阻塞当前显示页面的主线程,即异步请求。由于返回的是字符串且是通过DOM技术在修改DOM树,所以不会刷新整张页面,即局部刷新,这就是我们所说的AJAX异步请求,局部刷新。

    应用场景:需要请求服务器,但只需要更新局部页面信息时。

    AJAX的开发流程

    1、创建核心对象xhr(不同浏览器创建此对象的方式不同)

    var xhr;

    if (window.XMLHttpRequest) {

    // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码

    xhr=new XMLHttpRequest();

    } else {

    // IE6, IE5 浏览器执行代码

    xhr = new ActiveXObject("Microsoft.XMLHTTP");

    }

    2、初始化xh---->目的:告知xhr以什么方式发送,发送到什么位置且携带什么参数。

    get方式:xhr.open(“get”,url?传递参数);

    post方式:xhr.open(“post”,url);

    若需要传递参数则需指定参数格式

    xhr.setRequestHeader(“Content-type”,”application/x-www-form-urlencoded”);

    3、发送异步请求

    get方式:xhr.send();

    post方式:若无参数xhr.send();

        若需要传递参数,则xhr.send(“需要传递给服务器的参数”);

    注:从请求发出到请求返回,xhr.readyState的属性(标识xhr的请求状态)会经历以下几个阶段的变化:

    =0,表示初始化但并没有发送异步请求

    =1,表示已发送异步请求

    =2,表示已发送完毕

    =3,表示开始返回

    =4,表示返回完毕

    4、设置监听,通过xhr.onreadystatechange属性

    注:xhr.status为协议码,表示请求的状态(例:404,500),当其为200时,表示请求成功

    xhr.onreadystatechange = function(){

    if(xhr.readyState==4 && xhr.status==200){//返回完整,请求成功

    var res = xhr.responseText;//获取返回值

    //拿到返回值后可对dom操作,局部刷新页面

    }

    }

    代码:

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    	</head>
    	<body οnlοad="load()">
    	</body>
    	<script type="text/javascript">
    		function  load(){
    			
    			
    			//1.创建核心对象xhr
    			var xhr;
    			if (window.XMLHttpRequest) { 
    				// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 
    					xhr=new XMLHttpRequest(); 
    				} else { 
    					// IE6, IE5 浏览器执行代码 
    					xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
    				}
    			
    			//2.初始化xhr
    			xhr.open("GET","index.html");
    			//3.发送异步请求
    			xhr.send();
    			//4.设置监听
    			xhr.onreadystatechange = function(){
    			if(xhr.readyState==4 && xhr.status==200){//返回完整,请求成功
    			var res = xhr.responseText;//获取返回值
    			//拿到返回值后可对dom操作,局部刷新页面
    			alert(res);
    				}
    			}
    			
    		}
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    	</script>
    </html>
    
    还有JQuery对Ajax的 封装:

    演示:

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    	</head>
    	<body>
    		<table id="testTable">
    				<tr>
    					<td>中国</td>
    					<td>秦国</td>
    				</tr>
    			
    		</table>
    		<input type="button" value="异步刷新用户列表" οnclick="testAjax()"/>
    	</body>
    	<script src="jquery.1.9.2.min.js" type="text/javascript">
    	</script>
    	<script type="text/javascript">
    		
    		
    		function testAjax(){
    				$.ajax({
    					type:"get",    //发送请求的方式,默认请求方式为get
    					url:"/Jquery/jason.txt",           //发送到什么位置
    					success:function(res){//会在返回完整,请求成功时调用,其中的参数是返回值
    						
    						for(var i=0;i<res.length;i++){
    			
    							$("#testTable").append("<tr><td>"+res[i].id+"</td><td>"+res[i].name+"</td></tr>");
    						}
    					},
    					dataType:"json"
    				});
    			}
    		
    		
    		
    		
    		
    		
    		
    	</script>
    	
    	
    	
    	
    	
    	
    	
    </html>
    



  • 相关阅读:
    Web 服务编程,REST 与 SOAP
    ODI调用WebService---->OdiInvokeWebService
    Using Custom Java code in ODI
    ODI---->Variables
    Oracle---->Join
    SQLserver中用convert函数转换日期格式
    ORA-00942 表或视图不存在
    GoldenGate 12c + Oracle 12c Multitenant Container databases
    goldengate 12c 针对oracle 12c配置的主要变化
    GoldenGate 配置extract,replicat进程自启动
  • 原文地址:https://www.cnblogs.com/jatpeo/p/11767568.html
Copyright © 2011-2022 走看看