ajax的全稱是asynchronous javascript and XML ,它是非同步js和XML。它是局部重新整理,非同步作業。本文給大家介紹了ajax的特性及亂碼問題,感興趣的朋友一起看看吧,希望能協助到大家。
在講解之前我先給大家說一下線性資料結構吧,我們可以把單線性資料結構當成一條線段,線段是有頭有尾的大家總知道吧,單線程就是線段的頭部沒有前區,尾部沒有後區,中間的每個元素前後都各有兩個元素,少了一個元素的時候,同時會有兩個元素知道並且告訴你。而且是缺一個元素都不行。
回呼函數就是把函數A當做參數傳遞給函數B,函數B執行這個函數A。回呼函數最常見的用法就是我們ajax請求資料時用到的succes() and error()這兩個函數,還有setInterval裡面的第一個參數,也是用了回呼函數。回呼函數,回呼函數,回調的字面意思可不就是掉個頭回去再把那條路走一遍嘛。所以ajax在回呼函數success()或者error被觸發的時候掉過頭去又走了一次,然後他就是非同步了,同時ajax是非同步,跟他類似的還有es6的promise(非同步同步操作)。
瀏覽器的進程是多進程的,至於為什麼就跟你為什麼叫XXX是一個道理呦~
第二個問題,當萬能的前端遇到ajax擷取後台資料時亂碼是怎麼回事應該是大家很糾結的。
-或許是網速問題,網太慢。
-或許是編碼格式不統一,你的後台兄弟坑了你,哈哈哈哈
ajax原生代碼都可否記得,不如我帶你們捋一遍呀,看代碼:
//1.建立xmlhttpRequest對象var xhr;try{ xhr = new XMLHttpRequest(); console.log(5555)}catch(e){//ie瀏覽器低版本相容 xhr = new ActiveXobject("Microsoft.XMLHTTP");}finally{ console.log(1111)}// try{} catch{} finally{}在這裡是處理異常的方法,用if{}else{}也ok //if(window.XMLHttpRequest){ // xhr = new XMLHttpRequest();// }else{ //ie瀏覽器低版本的相容 // xhr = new ActiveXobject("Microsoft.XMLHTTP")//}//2.建立非同步串連xhr.open("get","url/+string",true/false);//true是非同步,false是同步//xhr.open("post","url",true/false)//3.發送非同步請求 xhr.send(null);//get xhr.send(string);//post//4.擷取返回資料 xhr.onreadystatechange = function (){ if((xhr.readystate)==4&&(xhr.status==200)){ var data = xhr.responseText; var data = JSON.parse(data); show(data);}}function show(data){ document.getElementById("p1").innerHTML = data;}