#1.Ajax簡介 AJAX = 非同步 JavaScript 和 XML。 AJAX 是一種用於建立快速動態網頁的技術。 通過在後臺與伺服器進行少量資料交換,AJAX 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。
#2.AJAX 例項
- 查詢提示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>查詢訪問</title>
<!--
https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=
https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=abc&cb=jQuery110206545585568528622_1499224165848&_=1499224165856
-->
<style type="text/css">
*{margin:0px;padding: 0px;}
#container{width:800px;margin:auto;margin-top:10px;}
input[id="keywords"]{width: 500px;height: 40px;border:solid 2px #cecece;font-size: 22px;line-height: 40px;color:#888;padding-left: 10px;}
#sug{width:512px;list-style: none;border:solid 1px #ccc;}
#sug li{height: 30px;background:#fcfcfc;line-height:30px;font-size:18px}
</style>
<script type="text/javascript" src="../jquery-1.12.4.js"></script>
</head>
<body>
<div id="container">
<div>
<input type="text" id="keywords" placeholder="請輸入關鍵詞">
</div>
<ul id="sug">
<!-- <li>建議搜尋的關鍵詞</li> -->
</ul>
</div>
<script>
// 獲取輸入框
var $kw = $("#keywords");
// 新增鍵盤按鍵抬起事件
$kw.keyup(function(){
// 獲取輸入框中的輸入
var $value = $kw.val();
// 呼叫函式,獲取資料
$.ajax({
url:"https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?cb=?",
type:"get",
data:{wd:$value},
dataType:"jsonp",
success:function(msg){
// 當url介面訪問成功的時候,自動呼叫success對應的函式,介面返回的資料會自動存放在函式的引數data中
console.log(msg.s);
// 將輸入輸出到頁面中;dom操作
var _sug = msg.s;
// 清空原來的url標籤;
$("#sug").empty();
for (var i = 0;i< _sug.length;i++){
// 建立一個li標籤
var $li = $("<li>")
// 標籤中新增文字資料
$li.text(_sug[i]);
// 將li標籤,新增到頁面中
$("#sug").append($li);
}
}
});
});
</script>
</body>
</html>
<!-- dataType:"jsonp",
同源策略:web規範了只有相同源頭(域名)的資料才可以互相訪問
同源策略是為了資料的安全性,而設定的一種網路資料訪問限制
跨域:從不同的域名下訪問指定的資料 -->
複製程式碼
效果展示:
- 天氣預報查詢地址
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>天氣預報</title>
<style>
*{margin:0px;padding:0px;}
#container{width:800px;margin:auto;font-size: 20px;font-weight: bolder;}
input[id="city"]{width:500px;height:35px;border:solid 2px #cecece;font-size:22px;line-height:35px;color:#888;padding-left:10px; margin:10px;}
#show{display:block;width: 600px;height: 300px;border: solid 2px #888;margin: 10px auto; list-style: none;padding: 10px;border-radius: 8px;box-shadow: 10px 10px 5px #888}
</style>
<script type="text/javascript" src="../jquery-1.12.4.js"></script>
</head>
<body>
<div id="container">
<div>
請輸入城市名稱:
<input type="text" id="city" placeholder="請輸入想查詢的地區">
</div>
<ul id="show">
<li>天氣資訊</li>
</ul>
</div>
<script>
// 獲取需要的標籤物件
var _city = $("#city");
var _show = $("#show");
// 新增事件處理
_city.blur(function(){
// 獲取輸入框中的輸入資料
var $value = _city.val();
_show.empty();
// 呼叫函式,獲取資料
$.ajax({
url:"http://wthrcdn.etouch.cn/weather_mini?callback=?",
type:"get",
data:{city:$value},
dataType:"jsonp",
success:function(msg){
// 當url介面訪問成功的時候,自動呼叫success對應的函式,介面返回的資料會自動存放在函式的引數data中
console.log(msg);
// 獲取城市資料,展示到頁面中
var $city = $("<li>");
$city.text(msg.data.city + "天氣預報資訊:");
// 獲取今天溫度資料
var $wd = $("<li>");
$wd.text("今天溫度:"+ msg.data.wendu);
// 獲取今天感冒指數資料
var $gm = $("<li>");
$gm.text("溫馨提示:"+ msg.data.ganmao);
// 今天天氣預報
var $today = $("<li>");
var $date = $("<span>").text("日期:" + msg.data.forecast[0].date)
var $type = $("<span>").text(";今天天氣:" + msg.data.forecast[0].type)
var $high = $("<span>").text(";最高氣溫:" + msg.data.forecast[0].high)
var $low = $("<span>").text(";最低氣溫:" + msg.data.forecast[0].low)
var $fl = $("<span>").text(";風力:" + msg.data.forecast[0].fengli)
var $fx = $("<span>").text(";風向:" + msg.data.forecast[0].fengxiang)
$today.append($date).append($type).append($high).append($low).append($fl).append($fx);
_show.append($city).append($wd).append($gm).append($today);
},
error:function(){
console.log("執行錯誤...");
}
});
});
</script>
</body>
</html>
複製程式碼
效果展示:
- 快遞單號查詢介面
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>快遞資訊查詢</title>
<style type="text/css">
*{margin: 0;padding: 0;}
#container{width: 800px;margin: 15px auto;font-size: 20px;font-weight: bolder;}
select[id="company"]{width: 200px;height: 30px;font-size: 18px;font-family: "微軟雅黑";border-radius: 5px;}
#wb{float: left;}
input[id="postid"]{margin:10px auto;width: 200px;height: 20px;font-size: 14px;font-family: "微軟雅黑";border-radius: 3px;}
button[id="cx"]{display: block;width: 56px;height: 26px;background-color:#388bff;color:white;margin: 8px 380px;}
ul[id="show"]{list-style: none;width: 500px;height:500px;border:solid 2px #888; border-radius: 8px; }
#container ul li p{padding:15px;width:480px;
min-height: 50px;font-size:14px;}
</style>
<script type="text/javascript" src="../jquery-1.12.4.js">
</script>
</head>
<body>
<div id="container">
<div>
<label for="company">快遞公司名稱</label>
<select id="company" name="address">
<option value="shunfeng">順豐速運</option>
<option value="shentong">申通快遞</option>
<option value="ems">EMS</option>
<option value="yuantong">圓通速遞</option>
<option value="zhongtong">中通快遞</option>
<option value="tiantian">天天快遞</option>
<option value="huitongkuaidi">匯通快遞</option>
<option value="yunda">韻達速遞</option>
<option value="quanfengkuaidi">全峰快遞</option>
<option value="debangwuliu">德邦</option>
<option value="zhaijisong">宅急送</option>
</select>
</div>
<div id="wb">
<label for="post">輸入快遞單號</label>
<input type="text" id="postid">
</div>
<div>
<button id="cx">查詢</button>
</div>
<ul id="show">
<li>
<i></i>
<p>物流資訊</p>
</li>
</ul>
<div style="clear:both;"></div>
</div>
<script>
// 獲取標籤物件:快遞公司
var $selector=$("#company");
// 獲取快遞單號
var $postid=$("#postid");
// 查詢
var $cx=$("#cx");
// 給查詢按鈕新增點選事件
$cx.click(function(){
// 獲取需要的資料
var $company = $selector.val();
var $value = $postid.val();
// ajax 獲取資料
$.ajax({
url:"https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury?cb=?",
type:"get",
data:{com:$company,nu:$value,appid:4001},
dataType:"json",
success:function(msg){
// 清空歷史訊息
$("#show").empty();
// 獲取介面返回的資料
console.log(msg);
var $info = msg.data.info.context;
// 迴圈遍歷資料
for(var i = 0; i <$info.length;i++){
// 獲取每一筆的時間資訊
var $time = $info[i].time;
$time = getTimeStr($time);
// 獲取每一筆的快遞資訊
var $desc = $info[i].desc;
// 建立標籤,新增到頁面中
var $msg = $("<p>").text($time + ":" + $desc);
var $i = $("<i>");
var $kd = $("<li>");
$kd.append($i).append($msg);
// 新增到頁面中
$("#show").append($kd);
}
},
error:function(){
console.log("系統繁忙,查詢失敗");
}
});
});
// 獲取時間字串
function getTimeStr(dt){
var _date = new Date(parseInt(dt*1000));
return _date.getFullYear() + "-" + (_date.getMonth() + 1) + "-" + _date.getDate() + " " + _date.getHours() + ":" + _date.getMinutes() + ":" + _date.getSeconds();
}
</script>
</body>
</html>
複製程式碼
效果展示
#####推薦幾個網站
jQuery外掛庫:JS特效,網頁特效,以及各種html5,css3動畫和效果
Bootstrap,來自 Twitter,是目前最受歡迎的前端框架。Bootstrap 是基於 HTML、CSS、JAVASCRIPT 的,它簡潔靈活,使得 Web 開發更加快捷。
阿里巴巴向量圖示庫:Iconfont-國內功能很強大且圖示內容很豐富的向量圖示庫,提供向量圖示下載、線上儲存、格式轉換等功能。
Swiper(Swiper master):是目前應用較廣泛的移動端網頁觸控內容滑動js外掛。