我用得最多的大概就是jquery中的ajax了吧,就從ajax總結起走:
一、ajax:
參數解釋:(主要就用到url、type、data、dataType、success、error等,其他的看需求而定)
$.ajax({ url:" ", //請求的地址,類型為string type:" ", //請求方式,兩種“get”或者“post”,默認為“get” timeout: //要求為Number類型的參數,設置請求超時時間(毫秒)。此設置將覆蓋$.ajaxSetup()方法的全局設置。 async: //要求為Boolean類型的參數,默認設置為true,所有請求均為異步請求。 data: //要求為Object或String類型的參數,發送到服務器的數據。 dataType: //服務器返回的數據類型。 beforeSend: //要求為Function類型的參數,發送請求前可以修改 complete: //要求為Function類型的參數,請求完成后調用的回調函數(請求成功或失敗時均調用)。 success: // 請求成功后調用的回調函數 error: //要求為Function類型的參數,請求失敗時被調用的函數。該函數有3個參數,即XMLHttpRequest對象、錯誤信息、捕獲的錯誤對象(可選) contentType: //要求為String類型的參數,當發送信息至服務器時,內容編碼類型默認為"application/x-www-form-urlencoded"。該默認值適合大多數應用場合。 })
常用可選參數:
type
類型:String
默認值: "GET")。請求方式 ("POST" 或 "GET"), 默認為 "GET"。注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。
url
類型:String
默認值: 當前頁地址。發送請求的地址。
contentType
類型:String
默認值: "application/x-www-form-urlencoded"。發送信息至服務器時內容編碼類型。
默認值適合大多數情況。
常用值參考
【
application/x-www-form-urlencoded:數據被編碼為名稱/值對。這是標准的編碼格式
application/json:消息主體是序列化后的 JSON 字符串
multipart/form-data: 需要在表單中進行文件上傳時,就需要使用該格式。常見的媒體格式是上傳文件之時使用的
text/plain:數據以純文本形式(text/json/xml/html)進行編碼,其中不含任何控件或格式字符。
】
async
類型:Boolean
默認值: true。默認設置下,所有請求均為異步請求。如果需要發送同步請求,請將此選項設置為 false。
注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執行。
context
類型:Object
這個對象用於設置 Ajax 相關回調函數的上下文。也就是說,讓回調函數內 this 指向這個對象(如果不設定這個參數,那么 this 就指向調用本次 AJAX 請求時傳遞的 options 參數)。比如指定一個 DOM 元素作為 context 參數,這樣就設置了 success 回調函數的上下文為這個 DOM 元素。
data
類型:String
發送到服務器的數據。將自動轉換為請求字符串格式。GET 請求中將附加在 URL 后。查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。如果為數組,jQuery 將自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'
dataType
類型:String
預期服務器返回的數據類型。如果不指定,jQuery 將自動根據 HTTP 包 MIME 信息來智能判斷,比如 XML MIME 類型就被識別為 XML。在 1.4 中,JSON 就會生成一個 JavaScript 對象,而 script 則會執行這個腳本。隨后服務器端返回的數據會根據這個值解析后,傳遞給回調函數。可用值:
- "xml": 返回 XML 文檔,可用 jQuery 處理。
- "html": 返回純文本 HTML 信息;包含的 script 標簽會在插入 dom 時執行。
- "script": 返回純文本 JavaScript 代碼。不會自動緩存結果。除非設置了 "cache" 參數。注意:在遠程請求時(不在同一個域下),所有 POST 請求都將轉為 GET 請求。(因為將使用 DOM 的 script標簽來加載)
- "json": 返回 JSON 數據 。
- "jsonp": JSONP 格式。使用 JSONP 形式調用函數時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數名,以執行回調函數。
- "text": 返回純文本字符串
jsonp
類型:String
在一個 jsonp 請求中重寫回調函數的名字。這個值用來替代在 "callback=?" 這種 GET 或 POST 請求中 URL 參數里的 "callback" 部分,比如 {jsonp:'onJsonPLoad'} 會導致將 "onJsonPLoad=?" 傳給服務器。
二、axios
vue2.0之后,就不再對vue-resource更新,而是推薦使用axios。基於 Promise 的 HTTP 請求客戶端,可同時在瀏覽器和 Node.js 中使用。
特點:
(1)在瀏覽器中發送 XMLHttpRequests 請求
(2)在 node.js 中發送 http請求
(3)支持 Promise API
(4)攔截請求和響應
(5)轉換請求和響應數據
(6)取消請求
(7)自動轉換為JSON數據
(8)客戶端支持保護安全免受 CSRF/XSRF 攻擊
安裝:
使用 npm:$ npm install axios
使用 bower:$ bower install axios
使用cdn:<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
GET方式:
axios.get().then().catch()
注:get方式傳參數可以直接跟在url后面,也可以通過param對象傳
POST方式:
axios.post().then().catch()
注:post方式傳參必須用對象傳
執行多個並發請求:
function A(){ return axios.get() } function B(){ return axios.post() } axios.all([A,B]).then(axios.spread(()=>{}))
還有一些詳細配置:https://www.cnblogs.com/peachmeimei/p/8916098.html
與axios一起用的qs,用qs庫對數據進行編碼,有單獨筆記。
三、websocket
vue中使用的小demo:
export default{ data(){ return { webSocket:null } }, created(){ //頁面剛進入時開啟長連接 this.initWebSocket(); }, destroyed(){ //頁面銷毀時關閉長連接 this.webSocketClose(); }, methods: { initWebSocket(){ //初始化websocket const url='ws://121.40.165.18:8800'; this.webSocket=new WebSocket(url); this.webSocket.onopen=this.socketOpen; this.webSocket.onerror=this.socketError; this.webSocket.onmessage=this.socketMessage; this.webSocket.onclose=this.webSocketClose; }, socketOpen(){ console.log('socket open'); }, socketError(e){ console.log('socket error'); }, socketMessage(e){ /* const redata = JSON.parse(e.data);*/ //獲取數據並且處理數據的地方 console.log(e); }, websocketsend(agentData){//數據發送 this.websock.send(agentData); }, webSocketClose(e){ console.log("connection closed"); } } }
轉載於:https://www.cnblogs.com/nanyang520/p/11206290.html
https://www.cnblogs.com/zyl96/p/10254421.html
https://www.cnblogs.com/yoissee/p/5901677.html