91、ajax的優點
a、提高執行效率
b、提高使用者體驗,讓多件事情同時發生
c、在不重新整理頁面的情況下可以對區域性資料進行載入和重新整理
92、ajax請求的流程
1、建立通訊物件
a、ie7及其以上版本中支援原生的 xhr 物件,因此可以直接使用
b、ie6及其之前版本中,xhr物件是通過msxml庫中的乙個activex物件實現的
2、鏈結和傳送
xhr.open('get','',true)
b、get 請求方式是通過url引數將資料提交到伺服器的,post則是通過將資料作為 send的引數傳遞
c、xhr.send() 傳送請求
3、監聽伺服器是否返回資料
a、使用onreadystatechange事件監聽伺服器返回狀態
xhr.onreadystatechange = function()
93、http的狀態有哪些(常用的)?(xml.status)
100——客戶必須繼續發出請求
101——客戶要求伺服器根據請求轉換http協議版本
200——交易成功
304——客戶端已經執行了get,但檔案未變化
404——沒有發現檔案、查詢或url
500——伺服器產生內部錯誤
505——伺服器不支援或拒絕支請求頭中指定的http版本
94、ajax的狀態值有哪些?(xml.readystate)
0-未初始化,尚未呼叫open()方法
1-啟動,呼叫open()方法,已呼叫send()的方法,正在傳送請求
2-傳送,已經呼叫send()方法,已接受到響應
3-解析 正在解析響應資料
4、完成,響應資料解析完成,客戶端可以呼叫;(我們都是使用xhr.readystate == 4 判斷ajax請求是否結束)
95、什麼是同源策略?
同源指的是網域名稱、協議、埠號相同
同源策略規定了js**的訪問許可權,只能訪問和自己同源的頁面。
同源策略是一種約定,它是瀏覽器最核心也最基本的安全功能
96?什麼是跨域?如何解決跨域? jsonp的原理?
1、由於瀏覽器的同源策略,即屬於不同域的頁面之間不能相互訪問各自的頁面內容。
2、cors和jsonp
3、利用瀏覽器的"漏洞" src不受同源策略的影響,可以請求任何鏈結 。動態建立script標籤,將事先寫好的函式名傳給伺服器,供伺服器使用
97、什麼是jsonp?
jsonp是一種非正式傳輸協議,用於解決跨域問題
98、jsonp跨域的流程
1、建立乙個全域性函式
2、建立乙個script標籤
3、給script新增src
4、給src新增**函式test(callback=test) callback是傳給後端的乙個引數
5、將script放到頁面上
6、script請求完成,將自己從頁面上刪除
99、簡術你對promise的理解
1、什麼是promise?
非同步操作的同步**
2、promise的基本使用
通過new promise建立乙個promise物件,裡面有乙個引數,引數是乙個**函式,**函式中有2個引數,resolve,reject resolve()當非同步執行成功的時候呼叫的方法,reject()當非同步失敗的時候呼叫的方法。
除此之外promise有乙個then方法,當成功的時候執行第乙個**函式,當失敗的時候執行第二個**函式。第二個**函式也可以通過promise物件.catch呼叫
3、promise.all():當所有的非同步**都執行完畢以後才會執行.then中的操作
4、promise.race():只要有乙個promise執行完畢後就會執行.then操作
100、如何實現多個非同步同步執行
var p1 = new promise(function(resolve,reject),3000)
})function p2(),2000)})}
function p3(),1000)})}
function p4(),500)})}
p1.then(function())
.then(function())
.then(function())
原生js大總結十一
101 請簡述prototype proto constructor三者的關係 1 prototype 每乙個函式都有乙個prototype這個屬性,而這個屬性指向乙個物件,這個物件我們叫做原型物件 作用 a 節約記憶體 b 擴充套件屬性和方法 c 可以實現類之間的繼承 2 proto 1 每乙個物...
原生js大總結五
041 在js中如何用方法將10進製的字元轉換成16進製制和8進製 數字.tostring 16 數字.tostring 8 042 如何建立時間物件 new date 043 如何建立未來或者過去的時間物件 var d new date 2017 10 20 22 22 22 var d new ...
原生js總結 乾貨
1.js基本資料型別 number string boolean underfined null 2.查詢文件中的特定元素 document.getelementbyid id document.getelementbytagname div document.getelementbyclassna...