AJAX的實現基礎及Jquery的ajax的原生js程式碼
AJAX的實現基礎是XMLHTTPRequest物件。(使用瀏覽器可以發出http請求和接收http響應)
所以下面先來了解XMLHTTPRequest。
W3C提出了XMLHttpRequest標準,分為Level 1
和Level 2
。Level 1
主要存在以下缺點:
- 受同源策略的限制,不能傳送跨域請求;
- 不能傳送二進位制檔案(如圖片、視訊、音訊等),只能傳送純文字資料;
- 在傳送和獲取資料的過程中,無法實時獲取進度資訊,只能判斷是否完成;
Level 2
中新增了以下功能:
- 可以傳送跨域請求,在服務端允許的情況下;
- 支援傳送和接收二進位制資料;
- 新增formData物件,支援傳送表單資料;
- 傳送和獲取資料時,可以獲取進度資訊;
- 可以設定請求的超時時間;
這個物件如何使用?
一個ajax請求的流程:傳送請求+接收響應=1.傳送之前+2.傳送請求+3.收到響應+4.收到之後。
1.傳送之前
建立XMLHTTPRequest物件
var xhr=new XMLHttpRequest();//這裡會存在瀏覽器的相容性差異的
設定xhr的引數(如timeout,responseType)
2.傳送請求
xhr.open();//一定要先open了在send,就好比水龍頭必須先開了開關才有水流
xhr.send(data);
3.收到響應和4.收到之後結合起來說
其實就是那個回撥函式,就是根據收到不同的響應來根據業務回撥相應的函式。
接著這裡就要深入瞭解xhr的相關事件(共8個),這裡就直接放連結了
其實基本上網上一搜詳細的知識講解都有的。這裡主要是自己過一遍對這個知識點的理解。
簡言之,ajax的實現基礎就是XMLHTTPRequest物件。
通過原生js實現ajax方法,就可以對ajax有進一步的理解。
這裡簡單說實現思路:
function ajax(){
var ajaxData={
//在這個物件裡就是ajax的引數設定以及傳參
}
//通過上面提到的請求流程,呼叫XMLHTTPRequest物件的方法,並把ajaxData對應的資料傳進去
}
以上內容為個人總結,僅供參考,如有侵權聯絡編者刪除內容
相關推薦
AJAX的實現基礎及Jquery的ajax的原生js程式碼
AJAX的實現基礎是XMLHTTPRequest物件。(使用瀏覽器可以發出http請求和接收http響應) 所以下面先來了解XMLHTTPRequest。 W3C提出了XMLHttpRequest標準,分為Level 1和Level 2。Level 1主要存在以下缺點:
跨站請求資料jsonp手寫原生js程式碼實現
JSONP --來自百度百科JSONP(JSON with Padding)是JSON的一種“使用模式”,可用於解決主流瀏覽器的跨域資料訪問的問題。由於同源策略,一般來說位於 server1.example.com 的網頁無法與不是 server1.example.com的伺
原生js程式碼實現圖片放大境效果
hello 大家好! 這是我的第一篇部落格文章,感謝大家前來閱讀,希望我們都能在這個平臺上相互交流、共同進步、查漏補缺。 今天我給大家分享一下自己用js寫的一個圖片放大器效果,我做了兩種效果的放大,其實它們的原理都差不多,都是採用了兩張圖片給兩張圖片設定相
前端基礎功能,原生js實現輪播圖例項教程
輪播圖是前端最基本、最常見的功能,不論web端還是移動端,大平臺還是小網站,大多在首頁都會放一個輪播圖效果。本教程講解怎麼實現一個簡單的輪播圖效果。學習本教程之前,讀者需要具備html和css技能,同時需要有簡單的javascript基礎。 本例項效果如下圖所示: 根據例項效果,需
實現移動端自適應js程式碼
head里加後,實現移動自適應 <script> var sUserAgent = navigator.userAgent.toLowerCase(); var bIsI
html表格基礎及案例示圖程式碼。
列表標籤 有序列表:標籤<ol></ol> type="">屬性值有A,a,I,i,1 start=”“> 屬性值為數字 有序列表的列表項 <li> 無序列表:標籤<ul></ul
微信分享給朋友及朋友圈JS程式碼
<script> var imgUrl = "圖片地址"; var lineLink = "網址"; var descContent = '描述文字在這裡.....'; var shareTitle
原生JS實現AJAX、JSONP及DOM載入完成事件
JS原生Ajax ajax:一種請求資料的方式,不需要重新整理整個頁面; ajax的技術核心是 XMLHttpRequest 物件; ajax 請求過程:建立 XMLHttpRequest 物件、連線伺服器、傳送請求、接收響應資料; 下面簡單封裝一
原生js實現ajax與jquery的ajax庫,及json
error 直接 ava pre shee initials 服務 表示 http 這是一篇筆記博客, Ajax: 和服務器進行數據交換(異步) 用js實現復雜的原理:用於發送請求的對象在不同的瀏覽器中是不同的 同源策略:ajax發送請求的url地址與服務器地址
原生js實現ajax請求(帶請求頭header)和資料傳參過程程式碼
一、Ajax 概述 Ajax 是 Asynchronous Javascript And XML 的簡寫 Ajax是一門技術,並不是一門語言 使用XHTML+CSS來標準化呈現 使用XML和XSLT進行資料交換及相關操作 使用XMLHttpReques
原生js實現Ajax方法及promise封裝
/* 1. open(method, url, async) 方法需要三個引數: method:傳送請求所使用的方法(GET或POST);與POST相比,GET更簡單也更快,並且在大部分情況下都能用;然而,在以下情況中,請使用POST請求: 無法使用快取檔案
原生JS實現AJAX、JSONP及DOM載入完成事件,並提供對應方法
JS原生AJAX ajax:一種請求資料的方式,不需要重新整理整個頁面; ajax的技術核心是 XMLHttpRequest 物件; ajax 請求過程:建立 XMLHttpRequest 物件、連線伺服器、傳送請求、接收響應資料; 下面簡單封裝一個函式,之後稍作解釋
用原生js實現ajax、jsonp
原生js 斜杠 lang settime 發送數據 tro upper 類型 之前 一、原生js實現ajax $.ajax({ url: ‘‘, type: ‘post‘, data: {name: ‘zhaobao‘, age: 20}, dataTy
原生JS實現ajax省市區三聯
cal tex -type con arr length view thead () <!-- /** * @fileName: linkageUI.class.php * @author: wk * @DateTime: 2017/10/29 17:25 * @De
原生js使用ajax實現省市縣三級聯動
chang onchange mes ror charset += ctype type nload <!DOCTYPE html> <html lang="en"> <head> <meta charset="U
原生js實現Ajax請求
amp 輸入關鍵字 如果 t對象 避免 用戶輸入 hang 更新 gate 總的來說,Ajax是與服務器交換數據並更新部分網頁的藝術,在不重新加載整個網頁的情況下,異步請求數據並刷新頁面。舉一個小的例子:Goole搜索頁面。當用戶在輸入框輸入關鍵字的時候,JavaScrip
原生js實現Ajax
tle 頭部 簡單 代理 字符 pen lis 交換 var 摘自:https://www.cnblogs.com/colima/p/5339227.html 一般來說,大家可能都會習慣用JQuery提供的Ajax方法,但是用原生的js怎麽去實現Ajax方法呢? J
利用原生js實現ajax跨域請求資料
首先,頁面中不需要引入任何的檔案。 1、前臺html頁面 <script> //定義一個ajax var $ = { ajax:function(option){ var url = option.url; var ca
Ajax基礎之原生js封裝
既然要經常用到Ajax請求,封裝函式就很必要了,下面栗子的js程式碼,我們來進行封裝。 window.onload = function() { var oBtn = document.getElementById('bt
用原生JS實現多張圖片上傳及預覽功能(相容IE8)
最近需要做一個圖片上傳預覽的功能(相容IE8-11、chrome、firefox等瀏覽器),網上現有的檔案上傳元件(如webuploader)總是會遇到一些相容性問題。於是我參考了一些博文(連結找不到了⊙o⊙…),自己用原生JS寫了一個支援多張圖片上傳預覽功能的Demo 先通過最終效果看一下功能: