原生Ajax的幾種實現方法
ajax({
type:"post",//post或者get,非必須
url:"test.jsp",//必須的
data:"name=dipoo&info=good",//非必須
dataType:"json",//text/xml/json,非必須
success:function(data){//回撥函式,非必須
alert(data.name);
}
});
功能該如何辦呢?下面和大家分享幾種利用javascript實現原生ajax的方法。
一、首先實現ajax之前必須要建立一個 XMLHttpRequest 物件的。如果不支援建立該物件的瀏覽器,則需要建立 ActiveXObject,具體方法如下:
|
二、下面使用上面建立的xmlHttp實現最簡單的ajax get請求:
|
三、使用上面建立的xmlHttp實現最簡單的ajax post請求:
|
四、下面再分享一個從網上看到的模擬jquery的$.ajax方法的封裝:
var createAjax=function(){
var xhr=null;
try{//IE系列瀏覽器
xhr=new ActiveXObject("microsoft.xmlhttp");
}catch(e1){
try{//非IE瀏覽器
xhr=new XMLHttpRequest();
}catch(e2){
window.alert("您的瀏覽器不支援ajax,請更換!");
}
}
return xhr;
};
var ajax=function(conf){
var type=conf.type;//type引數,可選
var url=conf.url;//url引數,必填
var data=conf.data;//data引數可選,只有在post請求時需要
var dataType=conf.dataType;//datatype引數可選
var success=conf.success;//回撥函式可選
if(type==null){//type引數可選,預設為get
type="get";
}
if(dataType==null){//dataType引數可選,預設為text
dataType="text";
}
var xhr=createAjax();
xhr.open(type,url,true);
if(type=="GET"||type=="get"){
xhr.send(null);
}else if(type=="POST"||type=="post"){
xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
xhr.send(data);
}
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
if(dataType=="text"||dataType=="TEXT"){
if(success!=null){//普通文字
success(xhr.responseText);
}
}else if(dataType=="xml"||dataType=="XML"){
if(success!=null){//接收xml文件
success(xhr.responseXML);
}
}else if(dataType=="json"||dataType=="JSON"){
if(success!=null){//將json字串轉換為js物件
success(eval("("+xhr.responseText+")"));
}
}
}
};
};
五、該方法使用也很簡單,和jquery的$.ajax方法一樣,不過沒那麼多的引數。僅僅是簡單的實現了一些基本的ajax功能。使用方法如下:
|
以上這幾種javascript實現原生ajax的方法你們學會了嗎?
相關推薦
原生Ajax的幾種實現方法
在基於資料的應用中,使用者需求的資料如聯絡人列表,可以從獨立於實際網頁的服務端取得並且可以被動態地寫入網頁中,給緩慢的Web應用體驗著色使之像桌面應用一樣。自從js有了各種框架之後,比如jquery,使用ajax已經變的
多線程有幾種實現方法?同步有幾種實現方法?(被問到)
所有 正在 () read 異常 同步 -h 競爭 sync 多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口 同步的實現方面有兩種,分別是synchronized,wait與notify wait():使一個線程處於等待狀態,並且釋放所持有的對象的
關於python單例的常用幾種實現方法
let 多個 ember 裝飾 但是 odi code cls 就會 這兩天在看自己之前寫的代碼,所以正好把用過的東西整理一下,單例模式,在日常的代碼工作中也是經常被用到, 所以這裏把之前用過的不同方式實現的單例方式整理一下 裝飾器的方式 這種方式也是工作中經常
Android MaterialDesign之水波點選效果的幾種實現方法
什麼是水波點選的效果? 下面是幾種不同的實現方法的效果圖以及實現方法 Video_2016-08-31_003846 如何實現? 方法一 使用
淺談深拷貝和淺拷貝及幾種實現方法
rgb bsp for ace onos 都是 UNC get con 討論深拷貝與淺拷貝之前,要先回顧一下值傳遞與引用傳遞: 值傳遞: var a = 10; var b = a; b++; //console.log(a,b)//a:10 b:11 引用傳遞: v
圓角ImageView的幾種實現方法
①自定義View import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.grap
C語言中求字串長度的函式my_strlen()的幾種實現方法
C語言中求字串長度的函式的幾種實現方法 1.最常用的方法是建立一個計數器,判斷是否遇到‘\0’,不是’\0’指標就往後加一。 int my_strlen(const char *str) { assert(str != NULL);//此句判段str是否為空指標(事實上這條語
java.util.Timer、Quartz與Spring task定時器任務的幾種實現方法
轉載:https://www.jb51.net/article/106445.htm 一.分類 從實現的技術上來分類,目前主要有三種技術(或者說有三種產品): 1.Java自帶的java.util.Timer類,這個類允許你排程一個java.util.TimerTask任務。使用這種方式
回到頂部的幾種實現方法
【1】使用預設連結錨點 新增一個a連結,設定a連結的href屬性值為"#top"即可實現 <body> <div>我在頂部</div> <!-- 很多內容 --> <br><br&g
JAVA之多執行緒概念及其幾種實現方法優劣分析
1. 多執行緒 程式:指令集,靜態的概念 程序:作業系統調動程式,是程式的一次動態執行過程,動態的概念 執行緒:在程序內的多條執行路徑 Ps:單核的話程序都是虛擬模擬出來的,多核處理器才可以執行真正的多執行緒 單核通過CPU排程時間片實現虛擬模擬的多執行緒,比如執行main函式和GC在底層就是多執行
Java將資料資訊寫入檔案檔案的幾種實現方法
Java將資料資訊寫入文字檔案的幾種實現方法 一,FileWritter寫入檔案 FileWritter, 字元流寫入字元到檔案。預設情況下,它會使用新的內容取代所有現有的內容,然而,當指定一個true (布林)值作為FileWritter建構函式的第二個引數,它會保留現有的內容,並追加新內
分散式鎖的幾種實現方法:redis實現分散式鎖
使用失效的方式實現分散式鎖(推薦) import redis.clients.jedis.Jedis; /** * 使用redis實現分散式鎖(推薦) * */ public class JedLock { private static final String LOCK_KEY =
java多執行緒的幾種實現方法
方法一:繼承Thread類,覆蓋方法run(), public class MyThread extends Thread { int count= 1, number; public MyThread(int num) { number = num;
多執行緒有幾種實現方法?同步有幾種實現方法?
為何要使用同步? java允許多執行緒併發控制,當多個執行緒同時操作一個可共享的資源變數時(如資料的增刪改查), 將會導致資料不準確,相互之間產生衝突,因此加入同步鎖以避免在該執行緒沒有完成操作之前,被其他執行緒的呼叫, 從而保證了該變數的唯一性和準確性。 同步的
C++返回字串函式的幾種實現方法
C++返回字串函式有四種方式: 1。使用堆空間,返回申請的堆地址,注意釋放 2。函式引數傳遞指標,返回該指標 3。返回函式內定義的靜態變數(共享) 4。返回全域性變數 1.使用堆空間,返
多執行緒同步和互斥有哪幾種實現方法?
執行緒間的同步方法大體可分為兩類:使用者模式和核心模式。顧名思義,核心模式就是指利用系統核心物件的單一性來進行同步,使用時需要切換核心態與使用者態,而使用者模式就是不需要切換到核心態,只在使用者態完成操作。使用者模式下的方法有:原子操作(例如一個單一的全域性變數),臨界區。核
JS陣列去重的幾種實現方法
//使用indexOf function unique1(arr) { var result=[]; for(var i=0;i<arr.length;i++){ if(result.indexOf(arr[i])==-1){ result.push(ar
JavaScript訪問後臺方法的幾種實現方法
最近的專案中需要在客戶端使用JavaScript訪問後臺的方法,嘗試了以下幾種方法: 1.在<%%>中直接書寫程式碼段 2.通過js直接執行button的click()方法 觸發後臺程式碼 3.Ajax 4.將該方法釋出為webservice 通過javascr
【Unity Shader】手遊中高光效果的幾種實現方法
前言 由於手機裝置的效能限制,很多效果的計算都得精簡和優化才能達到目地。而在Unity中的高光效果,也給予了多種不同的方案,有用於主機的,用於手機的,有限制一盞畫素燈的,開發者可以根據
Map執行緒安全幾種實現方法
如果需要使 Map 執行緒安全,大致有這麼四種方法: 1、使用 synchronized 關鍵字,程式碼如下 synchronized(anObject) { value = map.get(key); } 2、使用 JDK1.5提供的鎖(j