嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片

Ajax是什么?Ajax高級用法之Axios技術(shù)

2021-4-19    前端達人

AJAX

在這里插入圖片描述
ajax 即 “Asynchronous Javascript And XML”(異步 JavaScript 和 XML),是指一種創(chuàng)建交互式、快速動態(tài)網(wǎng)頁應(yīng)用的技術(shù)。早期只有同步的方式,多個請求,只能順序執(zhí)行,只能等待執(zhí)行。有了ajax異步技術(shù),可以無需等待上一個請求執(zhí)行完成,就可以直接發(fā)起請求。服務(wù)端返回后,ajax通過回調(diào)技術(shù)通知客戶端程序,把響應(yīng)的結(jié)果傳遞給用戶事先寫好的回調(diào)函數(shù)。通過在后臺與服務(wù)器進行少量數(shù)據(jù)交換,Ajax 可以使網(wǎng)頁實現(xiàn)異步更新。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁進行局部更新,提升網(wǎng)頁的效率,用戶無需等待頁面的刷新,嗖的一下內(nèi)容就變化了。改變原有整個頁面刷新,造成頁面晃眼的現(xiàn)象。所以這項技術(shù)一出現(xiàn),就得到業(yè)界的推崇。

關(guān)鍵字:異步、回調(diào)、局部刷新。

異步請求局部刷新

主流方式:
在這里插入圖片描述
技術(shù)棧

  • HTML 頁面展示
  • JavaScript 形成交互
  • jQuery 封裝JavaScript,代碼更加簡潔高效
  • json 數(shù)據(jù)傳輸
  • ajax 異步請求
  • Web中間件(tomcat) 處理請求和響應(yīng)
  • mysql數(shù)據(jù)庫 存取數(shù)據(jù)

用戶頁面中觸發(fā)ajax請求,訪問后端服務(wù)器,Web 中間件 攔截用戶請求,轉(zhuǎn)發(fā)后端程序進行數(shù)據(jù)處理,一般還需訪問數(shù)據(jù)庫,然后逐層返回。數(shù)據(jù)庫返回數(shù)據(jù)處理服務(wù),數(shù)據(jù)處理服務(wù)返回Web中間件,Web中間件返回ajax調(diào)用,將數(shù)據(jù)封裝到返回的js對象中,目前主流返回數(shù)據(jù)為json字符串(可以通過Jsonp格式實現(xiàn)跨域訪問)。在回調(diào)callback的方法中解析json中的數(shù)據(jù),最終回顯到頁面上。通常我們使用jquery封裝過的ajax,寫法更加簡潔靈活。

Ajax 參數(shù)詳解

$.ajax({               //交互方式 $.get,$.post,$.getJSON
    async:              //請求同步異步,默認true異步
    type:               //請求類型:GET/POST             
    url:                //請求的網(wǎng)站地址
    data:               //提交的數(shù)據(jù),參數(shù)
    contentType:        //請求的MIME媒體類型:application/x-www-form-urlencoded(默認)、application/json;charset=UTF-8
    dataType:           //服務(wù)器返回MIME類型:xml/html/script/json/jsonp
    success: function(data){    //請求成功,回調(diào)函數(shù),data封裝網(wǎng)站返回的數(shù)據(jù)
        console.log( data );
    },
    error: function(e){     //請求失敗回調(diào)函數(shù),e封裝錯誤信息
        console.log(e.status);          //狀態(tài)碼
        console.log(e.responseText);    //錯誤信息
    }
}) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

js、json、jsonp區(qū)別

json和jsonp的區(qū)別

json請求返回就是json格式,而jsonp請求返回是fun(json)格式。

  • 京東的價格是單獨發(fā)起ajax請求,返回json數(shù)組,一次可以查詢多個價格

查詢網(wǎng)址:http://p.3.cn/prices/mgets?skuIds=J_1411013,J_1411014

[{"p":"-1.00","op":"3888.00","cbf":"0","id":"J_1411013","m":"6699.00"}, {"p":"-1.00","op":"799.00","cbf":"0","id":"J_1411014","m":"1398.00"}] 
  • 1
  • 2
  • 京東的商品描述是單獨發(fā)起ajax請求,返回jsonp格式數(shù)據(jù),回顯到頁面

查詢網(wǎng)址:https://d.3.cn/desc/1411000

通過JSONView插件展示數(shù)據(jù):
在這里插入圖片描述
網(wǎng)站有一個跨域問題,非同一個網(wǎng)站的請求默認是禁止的**(同源策略)**,那我們的頁面要訪問其他網(wǎng)站啊,例如:我們訪問京東獲取其商品的價格信息。這時就必須用jsonp方式進行跨域請求。

同源策略

同源策略是瀏覽器的一個安全功能,不同源的客戶端腳本在沒有明確授權(quán)的情況下,不能讀寫對方資源。所以a.com下的js腳本采用ajax讀取b.com里面的文件數(shù)據(jù)是會報錯的。

json和js對象的區(qū)別

json字符串:   { "id":"100","name":"tony","salary":"30000" }
js對象:       { "id":100,"name":"tony","salary":30000 } 
  • 1
  • 2

可以看出js對象中value值如果是整數(shù),小數(shù),無需加雙引號

  • 含義不同,json是一種數(shù)據(jù)格式,js對象表示類的實例
  • 傳輸:json用于跨平臺、跨網(wǎng)絡(luò)傳輸,速度快;js不能傳輸
  • 展現(xiàn):json是字符串不能是對象方法函數(shù);js值不一定加雙引號,值可以是對象、函數(shù)、字符串等
  • 轉(zhuǎn)換:JSON已經(jīng)作為瀏覽器內(nèi)置對象,eval(json)、JSON.parse(jsonStr) 、JSON.stringify(obj)

Ajax高級用法(axios)

Vue中封裝了ajax并增強了它,在異步并發(fā)處理優(yōu)于原生ajax。稱為:axios(ajax input output system)

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="../js/vue.js"></script> //引入js支持,axios.min.js文件 <script src="../js/axios.min.js"></script> </head> <body> <div id="app"> 商品價格:{{info}} </div> </body> <script> new Vue({ el: "#app", data(){ //data的ES6函數(shù)寫法 return { info : null } }, mounted(){ axios.get('../data/price.json') .then( //箭頭函數(shù),res為返回值,res.data 返回的json數(shù)據(jù)對象 res => ( this.info = res.data.price ) ) .catch(function (e){ console.log(e) }) } }) </script> </html> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

注意:
axios請求頭的 Content-Type 默認是 application/json,而postman默認的是 application/x-www-form-urlencoded。

ajax一般采用@RequestParam接收參數(shù):

@ResponseBody public Result testpost(@RequestParam String username) {} 
  • 1
  • 2

axiso采用@RequestBody的json方式接收參數(shù)

@ResponseBody public Result testget(@RequestBody Map map) {} 
  • 1
  • 2

為什么要用Axios

傳統(tǒng) Ajax 指的是 XMLHttpRequest(XHR), 最早出現(xiàn)的發(fā)送后端請求技術(shù),隸屬于原始js中,核心使用XMLHttpRequest對象,多個請求之間如果有先后關(guān)系的話,就會出現(xiàn)回調(diào)地獄。

JQuery ajax 是對原生XHR的封裝,除此以外還增添了對JSONP的支持。經(jīng)過多年的更新維護,真的已經(jīng)是非常的方便了,優(yōu)點無需多言;如果是硬要舉出幾個缺點,那可能只有:

  • 本身是針對MVC的編程,不符合現(xiàn)在前端MVVM的浪潮
  • 基于原生的XHR開發(fā),XHR本身的架構(gòu)不清晰。
  • JQuery整個項目太大,單純使用ajax卻要引入整個JQuery非常的不合理(采取個性化打包的方案又不能享受CDN服務(wù))
  • 不符合關(guān)注分離(Separation of Concerns)的原則
  • 配置和調(diào)用方式非常混亂,而且基于事件的異步模型不友好。

Vue2.0之后,尤雨溪推薦大家用axios替換JQuery ajax,想必讓axios進入了很多人的目光中。

axios 是一個基于Promise 用于瀏覽器和 nodejs 的 HTTP 客戶端,本質(zhì)上也是對原生XHR的封裝,只不過它是Promise的實現(xiàn)版本,符合最新的ES規(guī)范,它本身具有以下特征:

  • 從瀏覽器中創(chuàng)建 XMLHttpRequest
  • 支持 Promise API
  • 客戶端支持防止CSRF
  • 提供了一些并發(fā)請求的接口(重要,方便了很多的操作)
  • 從 node.js 創(chuàng)建 http 請求
  • 攔截請求和響應(yīng)
  • 轉(zhuǎn)換請求和響應(yīng)數(shù)據(jù)
  • 取消請求
  • 自動轉(zhuǎn)換JSON數(shù)據(jù)

防止CSRF:就是讓你的每個請求都帶一個從cookie中拿到的key,根據(jù)瀏覽器同源策略,假冒的網(wǎng)站是拿不到你cookie中得key的,這樣,后臺就可以輕松辨別出這個請求是否是用戶在假冒網(wǎng)站上的誤導(dǎo)輸入,從而采取正確的策略。

fetch號稱是AJAX的替代品,是在ES6出現(xiàn)的,使用了ES6中的promise對象。Fetch是基于promise設(shè)計的。Fetch的代碼結(jié)構(gòu)比起ajax簡單多了,參數(shù)有點像jQuery ajax。但是,一定記住fetch不是ajax的進一步封裝,而是原生js,沒有使用XMLHttpRequest對象。

總得來說:axios既提供了并發(fā)的封裝,也沒有fetch的各種問題,而且體積也較小,當之無愧現(xiàn)在最應(yīng)該選用的請求的方式。


轉(zhuǎn)自:csdn 論壇 作者:布諾i

日歷

鏈接

個人資料

藍藍設(shè)計的小編 http://m.sdgs6788.com

存檔

嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片
<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 亚洲一区二区三区免费视频| 国内精品免费午夜毛片| 亚洲欧美另类在线| 欧美大片免费看| 欧美高清在线精品一区| 国产一区二区无遮挡| 亚洲主播在线播放| 亚洲一线二线三线久久久| 欧美国产日韩二区| 亚洲娇小video精品| 极品尤物av久久免费看| 久久国产精品毛片| 久久久精品一品道一区| 国产无一区二区| 欧美一区二区三区免费视| 欧美在线不卡| 久久成人资源| 午夜激情久久久| 欧美日一区二区在线观看| 亚洲高清一区二区三区| 亚洲精品一区久久久久久| 欧美成人午夜激情在线| 亚洲欧洲综合另类在线| 艳女tv在线观看国产一区| 欧美日韩亚洲不卡| 亚洲最新视频在线| 午夜亚洲视频| 国模精品娜娜一二三区| 久久久中精品2020中文| 亚洲成人资源| 99精品视频免费全部在线| 99视频有精品| 国产精品嫩草影院一区二区| 欧美一区二区大片| 欧美激情一区二区三区在线| 亚洲精选中文字幕| 国产精品www色诱视频| 午夜日韩激情| 亚洲国产三级在线| 亚洲男人的天堂在线| 国产婷婷成人久久av免费高清| 久久激情综合| 日韩午夜免费| 久久亚洲国产精品日日av夜夜| 亚洲国产另类久久久精品极度| 欧美黄色一级视频| 亚洲欧美在线磁力| 亚洲黄色性网站| 久久国产精品电影| 99国产欧美久久久精品| 亚洲精品日韩一| 亚洲欧美视频在线| 香蕉乱码成人久久天堂爱免费 | 性色av一区二区三区| 免费成人黄色片| 一本久道久久综合中文字幕| 国产日本精品| 欧美剧在线观看| 欧美一区二区视频观看视频| 亚洲电影在线观看| 久久精品欧美| 亚洲五月六月| 亚洲国产精品传媒在线观看| 国产欧美视频一区二区三区| 欧美精品色一区二区三区| 欧美一区二区三区免费观看视频 | 亚洲精品乱码久久久久久黑人| 午夜亚洲性色福利视频| 亚洲三级视频| 激情亚洲网站| 国产麻豆日韩| 欧美图区在线视频| 欧美国产极速在线| 久久国产精品一区二区三区四区| 亚洲精品视频一区二区三区| 噜噜噜91成人网| 午夜视频久久久久久| 日韩视频―中文字幕| 影音先锋亚洲视频| 国产精品三区www17con| 欧美绝品在线观看成人午夜影视| 久久精品免费| 午夜日韩视频| 亚洲欧美日韩一区二区| 99re亚洲国产精品| 亚洲精品在线观看免费| 亚洲国产精品久久久久婷婷884| 久久国内精品自在自线400部| 亚洲永久精品国产| 亚洲色在线视频| 日韩午夜中文字幕| 亚洲成色777777女色窝| 国内久久婷婷综合| 国产有码在线一区二区视频| 国产亚洲精品久久久久婷婷瑜伽| 国产精品看片资源| 国产精品免费网站在线观看| 欧美午夜视频在线观看| 欧美日韩大陆在线| 欧美精品黄色| 欧美日韩视频在线一区二区观看视频| 欧美sm极限捆绑bd| 欧美aⅴ一区二区三区视频| 久久久久久久精| 久久久免费av| 久久视频一区二区| 老鸭窝毛片一区二区三区| 久久久欧美精品| 欧美一区二区三区在线播放| 欧美一区二区三区在线观看| 久久精品人人做人人爽| 久久成人一区二区| 美女成人午夜| 欧美日韩国产免费观看| 欧美在线欧美在线| 亚洲影院免费观看| 亚洲午夜成aⅴ人片| 亚洲先锋成人| 亚洲欧美日韩国产中文在线| 亚洲自拍电影| 午夜久久福利| 久久国产毛片| 免费不卡中文字幕视频| 亚洲高清视频的网址| 亚洲免费高清| 午夜久久久久| 久久久噜噜噜久久| 欧美精品久久一区二区| 欧美日韩免费一区| 国产欧美一区二区三区久久 | 性18欧美另类| 久久女同互慰一区二区三区| 欧美a级一区| 国产精品wwwwww| 狠狠色丁香久久婷婷综合_中| 在线日韩av永久免费观看| 99国产精品久久| 久久精品论坛| 亚洲人成啪啪网站| 亚洲精品一区久久久久久| 亚洲精品国产精品久久清纯直播 | 狠狠色噜噜狠狠色综合久| 亚洲国产精品999| 亚洲视频精品| 久久久国产91| 亚洲精品一区二区三区99| 午夜国产精品视频免费体验区| 久久久成人网| 欧美视频福利| 在线观看国产精品淫| 亚洲视频专区在线| 久久视频国产精品免费视频在线| 亚洲欧洲日产国产综合网| 亚洲欧美国产精品va在线观看| 老司机精品福利视频| 国产精品美女久久久浪潮软件| 亚洲国产婷婷| 久久精品国产免费| 一本色道久久综合亚洲精品不| 久久aⅴ国产紧身牛仔裤| 欧美日韩精品久久| 亚洲第一中文字幕在线观看| 亚洲欧美在线高清| 亚洲国产精品一区制服丝袜| 午夜精品剧场| 欧美日韩日本视频| 亚洲电影下载| 久久久久久久网站| 亚洲网站视频| 欧美精品一卡二卡| 雨宫琴音一区二区在线| 欧美一级成年大片在线观看| 91久久精品网| 亚洲尤物视频网| 欧美伦理91i| 最近中文字幕日韩精品| 久久久欧美一区二区| 亚洲在线播放电影| 欧美三级欧美一级| 亚洲免费大片| 欧美电影免费观看大全| 新67194成人永久网站| 国产精品视频久久久| 亚洲网站在线| 亚洲人成亚洲人成在线观看| 久久午夜视频| 亚洲电影天堂av| 欧美mv日韩mv国产网站| 欧美一区二区成人6969| 午夜欧美不卡精品aaaaa| 国产精品视频网站| 亚洲欧美日韩区| 在线中文字幕不卡| 国产精品大片wwwwww| 亚洲一区免费看| 夜久久久久久| 国产精品vvv| 亚洲欧美日韩国产| 亚洲性夜色噜噜噜7777| 国产精品久久二区|