1. ajax 是什么瓷蛙?有什么作用厌衙?
- AJAX全稱是 Asynchronous JavaScript and XML(異步的 JavaScript 和 XML ),它是一種無須刷新頁面就可以為頁面中的某一部分加載數(shù)據(jù)的技術(shù),數(shù)據(jù)通常以JSON的格式來進(jìn)行傳送,是一種創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)丢习。
- 作用:AJAX通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,可以使網(wǎng)頁實(shí)現(xiàn)異步更新淮悼。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下咐低,對(duì)網(wǎng)頁的某部分進(jìn)行更新,會(huì)帶來更好的用戶體驗(yàn)袜腥。
2. 前后端開發(fā)聯(lián)調(diào)需要注意哪些事情见擦?后端接口完成前如何 mock 數(shù)據(jù)?
- 注意事情:
- 約定雙方需要傳輸?shù)臄?shù)據(jù)格式和接口參數(shù)羹令,在接口文檔中確定好參數(shù)的名稱鲤屡、格式等。
- 約定好前后端聯(lián)調(diào)的時(shí)間福侈。
- 約定請(qǐng)求和響應(yīng)的格式和內(nèi)容酒来。
- MOCK數(shù)據(jù):
- 使用server-mock或mock.js搭建模擬服務(wù)器,進(jìn)行模擬測試肪凛。
- 使用XAMPP等工具堰汉,編寫PHP文件來進(jìn)行測試。
3. 點(diǎn)擊按鈕伟墙,使用 ajax 獲取數(shù)據(jù)翘鸭,如何在數(shù)據(jù)到來之前防止重復(fù)點(diǎn)擊?
- 狀態(tài)鎖:當(dāng)發(fā)起一個(gè)ajax請(qǐng)求的時(shí)候把狀態(tài)鎖關(guān)閉,狀態(tài)鎖關(guān)閉期間的點(diǎn)擊事件都不執(zhí)行戳葵,請(qǐng)求完成的時(shí)候再把狀態(tài)鎖給打開就乓。
<pre>var isLoading = false;//設(shè)置狀態(tài)鎖 btn.addEventListener("click",function(){ if (isLoading) { alert('等待中。拱烁。生蚁。'); return; } else{ isLoading = true邻梆;//打開狀態(tài)鎖 //狀態(tài)鎖打開后守伸,執(zhí)行代碼 isLoading = false;//執(zhí)行完代碼后,需要在回調(diào)函數(shù)的最后將狀態(tài)鎖關(guān)閉 } },false);
</pre> - 定時(shí)器:讓ajax請(qǐng)求在多少毫秒后發(fā)出浦妄,中間只要重復(fù)點(diǎn)擊就清空定時(shí)器尼摹,以最后一次點(diǎn)擊事件為準(zhǔn)。
<pre>var timer = null; btn.addEventListener("click",function(){ if(timer){ clearTimeout(timer); } timer=setTimeout (function(){ //to do... //開啟定時(shí)器剂娄,執(zhí)行代碼 },3000);//3秒內(nèi)提交一次蠢涝,重復(fù)點(diǎn)擊重新計(jì)時(shí)
</pre> - 禁用按鈕:當(dāng)請(qǐng)求發(fā)起的時(shí)候禁用掉按鈕,當(dāng)請(qǐng)求成功的時(shí)候按鈕才能繼續(xù)使用阅懦。
<pre>function myFunc(){ var btn=document.getElementById('btn'); //to do... btn.removeAttr("disabled");//執(zhí)行 指定代碼后可選擇移除disabled屬性和二,讓按鈕可以再次被點(diǎn)擊 } btn.click(function(){ btn.attr("disabled",true);//讓按鈕無法再次點(diǎn)擊 myFunc();//執(zhí)行其他代碼,比如提交事件等 });
</pre>
本文版權(quán)歸本人和饑人谷所有耳胎,轉(zhuǎn)載請(qǐng)注明來源惯吕。