1. 程式人生 > >AJAX的實現基礎及Jquery的ajax的原生js程式碼

AJAX的實現基礎及Jquery的ajax的原生js程式碼

AJAX的實現基礎是XMLHTTPRequest物件。(使用瀏覽器可以發出http請求和接收http響應)

所以下面先來了解XMLHTTPRequest。

W3C提出了XMLHttpRequest標準,分為Level 1Level 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、JSONPDOM載入完成事件

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、JSONPDOM載入完成事件,並提供對應方法

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 先通過最終效果看一下功能: