1. ajax 是什么?有什么作用?
ajax:
Ajax的全稱是Asynchronous JavaScript and XML 中文名稱定義為異步的JavaScript和XML,就是不關閉不轉跳不刷新的情況下,在網頁后臺提交數據,部分更新頁面內容。
就好比要求10個人拍集體照,只來了9個。沒參與照相的人也想出現在照片中,該怎么辦呢?
傳統方法:把大家再召集起來,再拍一次。
ajax:把缺席的人PS上去。
作用:
可以節省網絡帶寬,提高頁面的加載速度,從而縮短用戶等待時間,改善用戶體驗。
2.前后端開發聯調需要注意哪些事情?后端接口完成前如何 mock 數據?
前后端開發聯調需要注意事項:
- 約定數據:有哪些需要傳輸的數據,數據類型是什么;
- 約定接口:確定接口名稱及請求和響應的格式,請求的參數名稱、響應的數據格式;
- 根據這些約定整理成接口文檔
后端接口完成前mock數據:
可以根據接口文檔,使用假數據來驗證我們制作的頁面響應和接口是否正常。可以搭建php本地服務器用,php寫腳本提供臨時數據;也可使用Mock.js,它能攔截ajax請求并根據請求中的內容來隨機生成符合你要求的假數據,模擬后端環境讓你完成對頁面和接口的測試。+
3. 點擊按鈕,使用 ajax 獲取數據,如何在數據到來之前防止重復點擊?
基礎方法:
- 點擊提交后,將按鈕disabled掉,等請求結束了沒再置回來
- 在外部設置一個狀態鎖:
var status = false
btn.onclick = function (){
if(!status){
status = true
var xhr = new XMLHttpRequest()
xhr.onreadystatechange = function(){
if( xhr.readyState == 4 ){
// to do
status = false
}
}
}
xhr.open('get','xxx/?')
xhr.send()
}
還可以:
- 無限制的提交,但是以最后一次操作為準
- 無論提交如何頻繁,任意兩次有效提交的間隔時間必定會大于或等于某一時間間隔;即以一定頻率提交
- 任意兩次提交的間隔時間,必須大于一個指定時間,才會促成有效提交
參考文章