本篇文章實現了用jQuery的AJax實現異步訪問和異步加載,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
【異步訪問】
用一個例子用以說明:點擊按鈕,將input內用戶輸入的數據發送給服務端,並將結果返回給頁面。
首先是html承載內容:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>AJax異步訪問</title> <script src="js/jquery-2.1.3.min.js"></script> <script src="js/ajaxDemo.js"></script> </head> <body> <input type="text" id="nameValue"> <br/> <button id="btn">提交</button> <p> 結果:<span id="result"></span> </p> </body> </html>
配置服務器:Server.php
<?php if(isset($_GET['name'])){ echo "姓名:".$_GET['name']; }else{ echo "參數錯誤"; }
ajaxDemo.js實現AJax異步訪問:
$(document).ready(function(){ $("#btn").on("click",function(){ //在與服務器通訊較慢時給用戶提示信息 $("#result").text("數據請求中,請稍後..."); //向服務器發送請求(get、post) $.get("Server.php",{name:$("#nameValue").val()},function(data){ $("#result").text(data); }).error(function(){ //當服務器出現異常時 $("#result").text("服務器正在維護") }) }) })
實現效果:
【異步加載】
主要用到load()方法以及getScript()方法,具體以一個例子說明:
在現有html文件中加載一個擬好的片段,以及在片段加載完成之前阻止用戶進一步操作的彈出框。
首先是現有html代碼,無任何內容:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>AJax異步加載</title> <script src="js/jquery-2.1.3.min.js"></script> <script src="js/main.js"></script> </head> <body> </body> </html>
擬一個js文件getData.js寫一個函數最簡陋的彈出框提示為例:
function getData(){ alert("片段的內容引自新浪體育"); } 擬一個片段box.htm,承載要加載的片段內容: <div> <h4>中超-耿曉峰失誤拉蒙兩球 申花7輪首敗1-4綠城</h4> <p> 北京時間8月11日晚19點35分,2015年中超聯賽第22輪在杭州黃龍體育場開始一場較量, 由杭州綠城迎戰上海申花。上半場第7分鐘陳柏良突然冷射,導致耿曉峰接球脫手造成失球, 這是中華台北球員(陳昌源在比利時土生土長)在中超聯賽進的首球。 第12分鐘申花隊呂征禁區右路左腳凌空射門扳平比分。第25分鐘阿甘在底線附近把球送入禁區, 拉蒙頭球得分,第37分鐘阿甘單刀赴會打入一球。 第60分鐘阿甘頭球擺渡,拉蒙跟進射門梅開二度。最終杭州綠城4比1戰勝上海申花。 </p> </div>
最後寫main.js來異步加載getData.js以及box.htm到現有html文件中。
$(document).ready(function(){ //異步加載js文件 $.getScript("js/getData.js").complete(function(){ getData(); }) //異步加載片段 $("body").text("加載中...") $("body").load("box.htm",function(url,status,c){ if(status=="error"){ $(this).text("片段加載失敗"); } }); })
最後效果:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。