網(wǎng)站首頁 編程語言 正文
本文操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。
axios和ajax的區(qū)別是什么?
axios和ajax的區(qū)別及優(yōu)缺點:
ajax:
1、什么是ajax
Ajax是對原生XHR的封裝,為了達(dá)到我們跨越的目的,增添了對JSONP的支持。
異步的javascript和xml,ajax不是一門新技術(shù),而是多種技術(shù)的組合,用于快速的創(chuàng)建動態(tài)頁面,能夠?qū)崿F(xiàn)無刷新更新數(shù)據(jù)從而提高用戶體驗。
2、ajax的原理?
由客戶端請求ajax引擎,再由ajax引擎請求服務(wù)器,服務(wù)器作出一系列響應(yīng)之后返回給ajax引擎,由ajax引擎決定將這個結(jié)果寫入到客戶端的什么位置。實現(xiàn)頁面無刷新更新數(shù)據(jù)。
3、核心對象?
XMLHttpReques
4、ajax優(yōu)缺點?
優(yōu)點
1、 無刷新更新數(shù)據(jù)
2、異步與服務(wù)器通信
3、前端和后端負(fù)載平衡
4、基于標(biāo)準(zhǔn)被廣泛支持
5、界面與應(yīng)用分離
缺點:
1、ajax不能使用Back和history功能,即對瀏覽器機(jī)制的破壞。
2、安全問題 ajax暴露了與服務(wù)器交互的細(xì)節(jié)
3、對收索引擎的支持比較弱
4、破壞程序的異常處理機(jī)制
5、違背URL和資源定位的初衷
6、ajax不能很好的支持移動設(shè)備
7、太多客戶端代碼造成開發(fā)上的成本
5、Ajax適用場景
<1>.表單驅(qū)動的交互
<2>.深層次的樹的導(dǎo)航
<3>.快速的用戶與用戶間的交流響應(yīng)
<4>.類似投票、yes/no等無關(guān)痛癢的場景
<5>.對數(shù)據(jù)進(jìn)行過濾和操縱相關(guān)數(shù)據(jù)的場景
<6>.普通的文本輸入提示和自動完成的場景
6、Ajax不適用場景
<1>.部分簡單的表單
<2>.搜索
<3>.基本的導(dǎo)航
<4>.替換大量的文本
<5>.對呈現(xiàn)的操縱
7、代碼
$.ajax({ type: 'POST', url: url, data: data, dataType: dataType, success: function () {}, error: function () {} });
8、ajax請求的五個步驟
1. 創(chuàng)建XMLHttpRequest異步對象
2. 設(shè)置回調(diào)函數(shù)
3. 使用open方法與服務(wù)器建立連接
4. 向服務(wù)器發(fā)送數(shù)據(jù)
5. 在回調(diào)函數(shù)中針對不同的響應(yīng)狀態(tài)進(jìn)行處理
axios:
1、axios是什么
Axios 是一個基于 Promise 的 HTTP 庫,可以用在瀏覽器和 node.js 中。
2、axios有那些特性?
1、在瀏覽器中創(chuàng)建 XMLHttpRequests
2、在node.js則創(chuàng)建http請求
3、支持Promise API
4、支持?jǐn)r截請求和響應(yīng)
5、轉(zhuǎn)換請求和響應(yīng)數(shù)據(jù)
6、取消請求
7、自動轉(zhuǎn)換成JSON數(shù)據(jù)格式
8、客戶端支持防御XSRF
3、執(zhí)行g(shù)et請求,有兩種方式
// 第一種方式 將參數(shù)直接寫在url中axios.get('/getMainInfo?id=123') .then((res) => { console.log(res) }) .catch((err) => { console.log(err) })// 第二種方式 將參數(shù)直接寫在params中axios.get('/getMainInfo', { params: { id: 123 } }) .then((res) => { console.log(res) }) .catch((err) => { console.log(err) })
4、執(zhí)行post請求,注意執(zhí)行post請求的入?yún)ⅲ恍枰獙懺趐arams字段中,這個地方要注意與get請求的第二種方式進(jìn)行區(qū)別。
axios.post('/getMainInfo', { id: 123}) .then((res) => { console.log(res) }) .catch((err) => { console.log(err) })
axios和ajax的區(qū)別:
axios是通過Promise實現(xiàn)對ajax技術(shù)的一種封裝,就像jquery對ajax的封裝一樣,簡單來說就是ajax技術(shù)實現(xiàn)了局部數(shù)據(jù)的刷新,axios實現(xiàn)了對ajax的封裝,axios有的ajax都有,ajax有的axios不一定有,總結(jié)一句話就是axios是ajax,ajax不止axios。
注: 傳統(tǒng)Ajax 指的是 XMLHttpRequest(XHR),axios和jQuer ajax都是對Ajax的封裝
原文鏈接:https://www.php.cn/website-design-ask-486131.html
相關(guān)推薦
- 2022-09-30 Docker容器harbor私有倉庫部署和管理_docker
- 2024-07-22 get 、set 、toString 方法的使用
- 2022-10-14 查看pip安裝的python包的位置等詳細(xì)信息
- 2022-05-28 利用For循環(huán)遍歷Python字典的三種方法實例_python
- 2023-02-12 Golang反射模塊reflect使用方式示例詳解_Golang
- 2024-03-09 【Redis】Redis 實現(xiàn)分布式Session
- 2022-10-15 詳解C語言中雙指針?biāo)惴ǖ氖褂胈C 語言
- 2024-03-03 layuiAdmin側(cè)邊欄菜單刷新保持當(dāng)前頁面
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支