亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

分享5個頂級的JavaScript Ajax組件庫

2024-09-01 08:33:59
字體:
來源:轉載
供稿:網友

AJAX是用來對服務器進行異步HTTP調用的一系列web開發技術客戶端框架。 AJAX即Asynchronous JavaScript and XML(異步JavaScript和XML)。AJAX曾是web開發界的一個常見名稱,許多流行的JavaScript小部件都是使用AJAX構建的。例如,有些特定的用戶交互(如按下按鈕)會異步調用到服務器,服務器會檢索數據并將其返回給客戶端——所有這些都不需要重新加載網頁。

AJAX的現代化重新引入

JavaScript已經進化了,現在我們使用前端庫和/或如React、Angular、Vue等框架構建了動態的網站。AJAX的概念也經歷了重大變化,因為現代異步JavaScript調用涉及檢索JSON而不是XML。有很多庫允許你從客戶端應用程序對服務器進行異步調用。有些進入到瀏覽器標準,有些則有很大的用戶基礎,因為它們不但靈活而且易于使用。有些支持promises,有些則使用回調。在本文中,我將介紹用于從服務器獲取數據的前5個AJAX庫。

Fetch API

Fetch API是XMLHttpRequest的現代替代品,用于從服務器檢索資源。與XMLHttpRequest不同的是,它具有更強大的功能集和更有意義的命名?;谄湔Z法和結構,Fetch不但靈活而且易于使用。但是,與其他AJAX HTTP庫區別開來的是,它具有所有現代Web瀏覽器的支持。Fetch遵循請求-響應的方法,也就是說,Fetch提出請求并返回解析到Response對象的promise。

你可以傳遞Request對象來獲取,或者,也可以僅傳遞要獲取的資源的URL。下面的示例演示了使用Fetch創建簡單的GET請求。

fetch('https://www.example.com', {    method: 'get'  })  .then(response => response.json())  .then(jsonData => console.log(jsonData))  .catch(err => {      //error block   })

正如你所看到的,Fetch的then方法返回了一個響應對象,你可以使用一系列的then 進行進一步的操作。我使用.json() 方法將響應轉換為JSON并將其輸出到控制臺。

假如你需要POST表單數據或使用Fetch創建AJAX文件上傳,將會怎么樣?此時,除了Fetch之外,你還需要一個輸入表單,并使用FormData庫來存儲表單對象。

var input = document.querySelector('input[type="file"]')var data = new FormData()data.append('file', input.files[0])data.append('user', 'blizzerand')fetch('/avatars', {  method: 'POST',  body: data})

你可以在官方的Mozilla web文檔中閱讀更多關于Fetch API的信息。

Axios

Axios是一個基于XMLHttpRequest而構建的現代JavaScript庫,用于進行AJAX調用。它允許你從瀏覽器和服務器發出HTTP請求。此外,它還支持ES6原生的Promise API。Axios的其他突出特點包括:

攔截請求和響應。

使用promise轉換請求和響應數據。

自動轉換JSON數據。

取消實時請求。

要使用Axios,你需要先安裝它。

npm install axios

下面是一個演示Axios行動的基本例子。

// Make a request for a user with a given IDaxios.get('/user?ID=12345') .then(function (response) {  console.log(response); }) .catch(function (error) {  console.log(error); });

與Fetch相比,Axios的語法更簡單。讓我們做一些更復雜的事情,比如我們之前使用Fetch創建的AJAX文件上傳器。

var data = new FormData();  data.append('foo', 'bar');  data.append('file', document.getElementById('file').files[0]);  var config = {    onUploadProgress: function(progressEvent) {     var percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total );    }  };  axios.put('/upload/server', data, config)   .then(function (res) {    output.className = 'container';    output.innerHTML = res.data;   })   .catch(function (err) {    output.className = 'container text-danger';    output.innerHTML = err.message;   });

Axios更具可讀性。Axios也非常受React和Vue等現代庫的歡迎。

jQuery

jQuery曾經是JavaScript中的一個前線庫,用于處理從AJAX調用到操縱DOM內容的所有事情。雖然隨著其他前端庫的“沖擊”,其相關性有所降低,但你仍然可以使用jQuery來進行異步調用。

如果你之前使用過jQuery,那么這可能是最簡單的解決方案。但是,你將不得不導入整個jQuery庫以使用$.ajax方法。雖然這個庫有特定于域的方法,例如$.getJSON,$.get和$.post,但是其語法并不像其他的AJAX庫那么簡單。以下代碼用于編寫基本的GET請求。

$.ajax({ url: '/users', type: "GET", dataType: "json", success: function (data) {   console.log(data); } fail: function () {   console.log("Encountered an error") }});

jQuery好的地方在于,如果你有疑問,那么你可以找到大量的支持和文檔。我發現了很多使用FormData()和jQuery進行AJAX文件上傳的例子。下面是最簡單的方法:

var formData = new FormData();formData.append('file', $('#file')[0].files[0]);$.ajax({    url : 'upload.php',    type : 'POST',    data : formData,    processData: false, // tell jQuery not to process the data    contentType: false, // tell jQuery not to set contentType    success : function(data) {      console.log(data);      alert(data);    }});

SuperAgent

SuperAgent是一個輕量級和漸進式的AJAX庫,更側重于可讀性和靈活性。SuperAgent還擁有一個溫和的學習曲線,不像其他庫。它有一個針對Node.js API相同的模塊。SuperAgent有一個接受GET、POST、PUT、DELETE和HEAD等方法的請求對象。然后你可以調用.then(),.end()或新的.await()方法來處理響應。例如,以下代碼為使用SuperAgent的簡單GET請求。

request  .post('/api/pet')  .send({ name: 'Manny', species: 'cat' })  .set('X-API-Key', 'foobar')  .set('Accept', 'application/json')  .then(function(res) {   alert('yay got ' + JSON.stringify(res.body));  });

如果你想要做更多的事情,比如使用此AJAX庫上傳文件,那該怎么做呢? 同樣超級easy。

request  .post('/upload')  .field('user[name]', 'Tobi')  .field('user[email]', 'tobi@learnboost.com')  .field('friends[]', ['loki', 'jane'])  .attach('image', 'path/to/tobi.png')  .then(callback);

如果你有興趣了解更多關于SuperAgent的信息,那么它們有一系列很不錯的文檔來幫助你開始這個旅程。

Request——簡化的HTTP客戶端

Request庫是進行HTTP調用最簡單的方法之一。結構和語法與在Node.js中處理請求的方式非常相似。目前,該項目在GitHub上有18K個星,值得一提的是,它是可用的最流行的HTTP庫之一。 下面是一個例子:

var request = require('request');request('http://www.google.com', function (error, response, body) { console.log('error:', error); // Print the error if one occurred console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received console.log('body:', body); // Print the HTML for the Google homepage.});

個人最喜歡的是Axios,因為它更易讀更賞心悅目。你也可以忠于Fetch,因為它文檔化良好且有標準化的解決方案。

當然還有其它一些不錯的Ajax組件庫,在以后的文章中我們會繼續為大家分享


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电影大全免费观看2023年上| 欧美成人免费小视频| 在线看国产精品| 久久综合久久美利坚合众国| 久久久亚洲欧洲日产国码aⅴ| 一个色综合导航| 国产精品视频久久久| 日本不卡高字幕在线2019| 国产精品成人久久久久| 69影院欧美专区视频| 26uuu久久噜噜噜噜| 日韩av电影中文字幕| 亚洲国产日韩一区| 深夜成人在线观看| 51精品国产黑色丝袜高跟鞋| 精品中文字幕久久久久久| 欧美一区第一页| 91av视频在线播放| 国产成人综合精品在线| 欧美日韩国产91| 性视频1819p久久| 欧美国产第一页| 欧美成年人在线观看| 国产精品视频地址| 在线观看亚洲区| 91精品视频免费看| 中文字幕欧美精品日韩中文字幕| 色婷婷综合久久久久中文字幕1| 精品欧美一区二区三区| 精品无人区乱码1区2区3区在线| 91久久精品在线| 成人av电影天堂| 欧美黑人国产人伦爽爽爽| 国产精品嫩草视频| 中文字幕亚洲情99在线| 亚洲性视频网站| 欧美成人激情图片网| 国产精品视频久久久| 久久久久久成人精品| 欧美性视频网站| 国产在线视频欧美| 欧美在线视频一二三| 亚洲国产欧美精品| 日韩av高清不卡| 97热在线精品视频在线观看| 亚洲女在线观看| 欧美精品久久久久久久久久| 日韩毛片在线看| 91视频国产精品| 美日韩在线视频| 日韩欧美在线第一页| 欧美夫妻性生活视频| 日韩欧亚中文在线| 久久影视电视剧凤归四时歌| 色噜噜狠狠色综合网图区| 日韩免费观看高清| 亚洲一区二区三区在线免费观看| 欧美日韩免费区域视频在线观看| 2023亚洲男人天堂| 亚洲高清久久久久久| 国产精品一区二区三区成人| 日韩中文在线不卡| 色综合天天狠天天透天天伊人| 91亚洲国产成人精品性色| 91精品国产91久久久久久吃药| 欧美午夜电影在线| 91精品国产91久久久久久久久| 亚洲永久免费观看| 久久久久久久香蕉网| 国产一区av在线| 国内精品视频久久| 色先锋资源久久综合5566| 欧美日韩中文字幕日韩欧美| 热99精品只有里视频精品| 日韩最新在线视频| 亚洲变态欧美另类捆绑| 久久久综合免费视频| 国产91精品不卡视频| 深夜精品寂寞黄网站在线观看| 97人人模人人爽人人喊中文字| 国产精品久久久久aaaa九色| 亚洲国产精品国自产拍av秋霞| 国产日韩av在线播放| 亚洲国产精品久久久久秋霞不卡| 国产精品一区二区三区成人| 亚洲免费伊人电影在线观看av| 亚洲欧美变态国产另类| 久久人人97超碰精品888| 国产欧美一区二区三区在线看| 亚洲欧美综合另类中字| 亚洲视频专区在线| 国产美女久久精品香蕉69| 欧美最顶级丰满的aⅴ艳星| 国产精品一区二区三| 午夜精品免费视频| 国产一区二区在线免费视频| 91高潮在线观看| 国产精品免费观看在线| 日韩av三级在线观看| 日韩av免费在线看| 午夜精品福利在线观看| 2019日本中文字幕| 亚洲国产精品推荐| 国产日韩视频在线观看| 欧美激情视频播放| 国产日本欧美一区二区三区| 欧美一级片在线播放| 亚洲欧美国产va在线影院| 日本精品久久久| 热久久免费国产视频| 1769国产精品| 日韩精品视频免费专区在线播放| 日韩免费在线观看视频| 久久久国产精彩视频美女艺术照福利| 亚洲石原莉奈一区二区在线观看| 日本久久精品视频| 国产一区二区三区视频| 欧美怡春院一区二区三区| 亚洲精品美女免费| 欧美国产日韩一区二区在线观看| 欧美激情视频在线免费观看 欧美视频免费一| 在线亚洲欧美视频| 欧美性资源免费| 岛国av午夜精品| 久久精品免费播放| 日韩美女在线观看| 国产成人91久久精品| 亚洲人成在线观看网站高清| 日韩电影免费观看中文字幕| 久久天天躁狠狠躁夜夜av| 亚洲国产另类 国产精品国产免费| 欧美国产日韩免费| 色悠久久久久综合先锋影音下载| 国产精品久久久久久亚洲影视| 久久久噜噜噜久久中文字免| 热re91久久精品国99热蜜臀| 亚洲欧美福利视频| 成人在线视频网| 亚洲国产精品成人va在线观看| 欧美精品日韩三级| 这里只有精品在线播放| 91视频国产一区| 国产精品三级美女白浆呻吟| 国产一级揄自揄精品视频| 91久久久久久久一区二区| 国产一区视频在线播放| 成人激情视频在线| 欧美激情一区二区久久久| 亚洲精品久久久久中文字幕欢迎你| 久久久91精品国产一区不卡| 久久久这里只有精品视频| 日本最新高清不卡中文字幕| 亚洲娇小xxxx欧美娇小| 日韩精品极品在线观看播放免费视频| 亚洲人成电影在线观看天堂色| 91精品视频在线免费观看| 欧美日韩午夜视频在线观看| 国模私拍视频一区| 日韩欧美一区二区三区| 久久久久五月天| 国产成人午夜视频网址| 91亚洲精华国产精华| 国产精品久久婷婷六月丁香| 精品免费在线观看|