jQuery AJAX應用例項總結
阿新 • • 發佈:2020-05-20
本文例項總結了jQuery AJAX應用。分享給大家供大家參考,具體如下:
AJAX
是指一種建立互動式網頁應用的網頁開發技術。
AJAX=非同步JavaScript和XML(標準通用標記語言的子集)。
AJAX是一種用於建立快速動態網頁的技術。
AJAX是一種在無需重新載入整個網頁的情況下,能夠更新部份網頁的技術。
通過在後臺與伺服器進行少量資料交換,AJAX可以使用網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新,也就是:按需更新。
AJAX解析純文字資料
<script> $(document).ready(function() { //獲取頁面中所有a元素中的第一個,並新增點選事件 document.getElementByTagName('a')[0].οnclick=function() { //1、獲取XHR物件 var request = new XMLHttpRequest(); //2、配置AJAX請求引數:請求型別,請求的URL資源,請求方式,預設為true,即非同步 request.open('GET','URL',true); request.open('GET',this.href+'?'+(new Date()),true);//每次請求都是最新資料 //3、將AJAX請求傳送到伺服器,GET請求不需要引數,可以傳空或null request.send(); //4、AJAX物件的事件屬性onreadystatechange,不斷監聽伺服器端的響應 request.onreadystatechange = function() { //當請求狀態為4,且響應碼為200時,表示伺服器響應成功,並返回了使用者資料 if (request.readyState == 4 && request.status == 200) { //根據資料型別,更新當前頁面中的DOM節點資訊 document.getElementByTagName('h3')[0].innerHTML=request.responseText; } }; return false;//取消a元素的預設點選行為 }; }); </script> <body> <a href=''></a> <h3></h3> </body>
AJAX訪問html檔案
<script> $(document).ready(function() { //獲取頁面中所有a元素,並新增點選事件 var aNodes = getElementByTagName('a'); //獲取當前頁面需要更新的DOM節點 var content = getElementById('content'); //給所有a元素新增點選事件,每個連結都會訪問到一個不同的html檔案 for (var i=0;i<aNodes.length;i++) { aNodes[i].onclick = function { //1、獲取XHR物件 var request = new XMLHttpRequest(); //2、配置AJAX請求引數:請求型別,請求的URL資源,請求方式,預設為true,即非同步 //request.open('GET',true);//每次請求都是最新資料 //3、將AJAX請求傳送到伺服器,GET請求不需要引數,可以傳空或null request.send(); //4、AJAX物件的事件屬性onreadystatechange,不斷監聽伺服器端的響應 request.onreadystatechange = function() { //當請求狀態為4,且響應碼為200時,表示伺服器響應成功,並返回了使用者資料 if (request.readyState == 4 && request.status == 200) { //根據資料型別,更新當前頁面中的DOM節點資訊 document.getElementByTagName('h3')[0].innerHTML=request.responseText; } return false;//取消a元素的預設點選行為 } }; }); </script> <body> <a href='1.html'></a> <a href='2.html'></a> <a href='3.html'></a> <div id='content'></div> </body>
AJAX訪問XML格式資料
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>AJAX---xml</title> <script src="jQuery/jquery-1.8.3.min.js"></script> <script type="text/javascript"> $(document).ready(function() { //獲取頁面中所有a元素中的第一個,並新增點選事件 document.getElementsByTagName('a')[0].οnclick=function() { //1、獲取XHR物件 var request = new XMLHttpRequest(); //2、配置AJAX請求引數:請求型別,請求的URL資源,請求方式,預設為true,即非同步 // request.open('GET',this.href+'?='+(new Date()),true);//每次請求都是最新資料 //3、將AJAX請求傳送到伺服器,GET請求不需要引數,可以傳空或null request.send(); //4、AJAX物件的事件屬性onreadystatechange,不斷監聽伺服器端的響應 request.onreadystatechange = function() { //當請求狀態為4,且響應碼為200時,表示伺服器響應成功,並返回了使用者資料 if (request.readyState == 4 && request.status == 200) { var result = request.responseXML; //解析當前XML檔案中的每個節點資料,儲存到對應變數中,XML支援所有DOM操作 var name = result.getElementsByTagName('name')[0].childNodes[0].nodeValue; var age = result.getElementsByTagName('age')[0].childNodes[0].nodeValue; var job = result.getElementsByTagName('job')[0].childNodes[0].nodeValue; //根據資料型別,更新當前頁面中的DOM節點資訊 document.getElementById('name').innerHTML=name; document.getElementById('age').innerHTML=age; document.getElementById('job').innerHTML=job; } }; return false;//取消a元素的預設點選行為 }; }); </script> </head> <body> <a href="1.xml" rel="external nofollow" >我的資訊</a> <div> <p id='name'></p> <p id='age'></p> <p id='job'></p> </div> </body> </html>
xml檔案:
<?xml version="1.0" encoding="UTF-8" ?> <info> <name>Zhang</name> <age>28</age> <job>php</job> </info>
AJAX訪問JSON格式資料
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JSON</title> <script src="jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function() { document.getElementById('btn').onclick = function(event) { //第一種 var data = { 'name':'zhang','age':'28','hobby':['跑步','睡覺'],'job':{ 'php':'Mysql','html':'jQuery' } }; //第二種 var json = '{\ "name":"zhang",\ "age":"28",\ "hobby":["跑步","睡覺"],\ "job":{\ "php":"Mysql",\ "html":"jQuery",\ }\ }'; var data = eval('('+json+')'); document.getElementById('name').innerHTML=data.name; document.getElementById('age').innerHTML=data.age; document.getElementById('hobby').innerHTML=data.hobby[1]; document.getElementById('job').innerHTML=data.job.php; //第三種 var request = new XMLHttpRequest; request.open('GET','demo.json',true); request.send(null); request.onreadystatechange = function() { if (request.readyState==4 && request.status==200) { var data = JSON.parse(request.responseText); document.getElementById('name').innerHTML=data.name; document.getElementById('age').innerHTML=data.age; document.getElementById('hobby').innerHTML=data.hobby[1]; document.getElementById('job').innerHTML=data.job.php; } } } }); </script> </head> <body> <button type="button" name="button" id="btn">我的資訊</button> <p id="name"></p> <p id="age"></p> <p id="hobby"></p> <p id="job"></p> </body> </html>
AJAX訪問中的$.ajax()函式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>$.ajax()</title> <script src="jQuery/jquery-1.8.3.min.js"></script> <script type="text/javascript"> $(function() { $('#btn').click(function() { $.ajax({ type:'GET',//http的請求方法 url:'demo.json',//要獲取資料的URL data:null,//不給URL新增任何資料 dataType:'json',//將獲取到的資料當作JSON型別處理 success:function(data) {//完成時呼叫 $('#name').text(data.name); $('#age').text(data.age); $('#hobby').text(data.hobby[1]); $('#job').text(data.job.php); },error:function(data) {//失敗時呼叫 alert('獲取失敗!'); } }); }); }); </script> </head> <body> <button type="button" name="button" id="btn">我的資訊</button> <p id="name"></p> <p id="age"></p> <p id="hobby"></p> <p id="job"></p> </body> </html>
AJAX訪問中的load()方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>get</title> <script src="jQuery/jquery-1.8.3.min.js"></script> <script type='text/javascript'> $(function() { $('button').click(function() { //1、獲取純文字檔案的內容 $('div').load('hello.txt'); //2、獲取html檔案的內容,可以使用jquery選擇器,按需獲取 $('div').load('hello.html');//獲取html檔案全部內容 $('div').load('hello.html li:first','?'+(new Date()));//獲取第一個li的內容 $('div').load('hello.html li:eq(2)');/獲取索引為2的li內容 $('div').load('hello.html li:odd','?'+(new Date()));//獲取全部li中索引為奇數的內容 //3、獲取XML中的資料,與訪問HTML一樣,也可以使用選擇器 $('div').load('1.xml');//返回xml,全部同行顯示 $('div').load('1.xml work');//顯示指定標籤名的資料 $('div').load('1.xml work',function() { $(this).css('color','red'); });//可以使用回撥函式 //4、獲取JSON資料,json不能直接使用,必須通過回撥函式來進行解析後再使用 $('div').load('demo.json',function(data) { //將獲取到的json字串解析為js物件 var jsonObj = JSON.parse(data); $(this).empty() $(this).append('<p>姓名:<span>'+jsonObj.name"'</span></p>') }); }); }); </script> </head> <body> <button type="button" name="button">測試</button> <div id="con"></div> </body> </html>
AJAX訪問中的$.get()方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>get</title> <script src="jQuery/jquery-1.8.3.min.js"></script> <script type="text/javascript"> $(function() { $('button').click(function(event) { //1、從伺服器中返回純文字或html $.get('1.php',function(data) { $('#con').html(data); }); //2、伺服器返回XML格式資料 $.get('1.php',function(data) { //將XML資料轉為jQuery物件,並獲取內部的資料 var name = $(data).children('name').text(); //將解析出的資料拼接成需要顯示的html程式碼 var html = '<p>'+name+'</p>'; //將html程式碼插入到指定節點 $('#con').html(html); }); //3、伺服器返回JSON格式資料 $.get('1.php',function(data) { var jsonObj = JSON.parse(data);//返回一個JSON格式字串,需要先解析成JS物件 $('#con').empty().append('<p>姓名:'+jsonObj.name+'</p>'); }); }); }); </script> </head> <body> <button type="button" name="button">測試</button> <div id="con"></div> </body> </html>
1.php:
<?php echo 'hello world!';//純文字 //XML格式資料 echo <<<'XML' <?xml version="1.0" encoding="UTF-8" ?> <info> <name>Zhang</name> <age>28</age> <job>php</job> </info> XML; //JSON格式資料 echo '{"name":"zhang","age":"28","hobby":["跑步","job":{"php":"Mysql","html":"jQuery"}}'; ?>
AJAX中的$.getJSON()函式
<script> $.getJson('1.php',function(data) { $('#con').empty().append('<p>姓名:'+data.name+'</p>'); }); </script>
AJAX中的$.post()方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>post</title> <script src="jQuery/jquery-1.8.3.min.js"></script> <script type="text/javascript"> $(function() { $('#name').change(function(event) { $.post( 'check.php',{ 'name':$(this).val() },function(data) { console.log(data); $('#name').next().empty(); $('#name').after(data); } ); }); $('#sub').click(function(event) { var name = $('#name').val(); if ('' == name && null == name) { $('#name').after('<span>使用者名稱不能為空</span>'); return false; } }); }); </script> </head> <body> <form action="" method="post"> 姓名:<input type="text" name="name" value='' id='name'><br/> 密碼:<input type="password" name="password" value="" id='ps'><br> <input type="submit" name="" value='提交' id='sub'> <input type="reset" name=""> </form> </body> </html>
check.php
<?php $info = $_POST; $name = isset($info['name']) ? $info['name'] : ''; $arr_name = ['zhang','li']; if (!empty($name) && in_array($name,$arr_name)) { echo '<script>alert("名稱已存在");window.history.back(-1);</script>'; } elseif (empty($name)) { echo '<script>alert("不可為空");window.history.back(-1);</script>'; } else { echo '<span style="color:blue">名稱可用</span>'; } ?>
更多關於jQuery相關內容可檢視本站專題:《jquery中Ajax用法總結》、《jQuery擴充套件技巧總結》、《jQuery常用外掛及用法總結》、《jQuery常見經典特效彙總》及《jquery選擇器用法總結》
希望本文所述對大家jQuery程式設計有所幫助。