我們都知道input以政,button都可以有disbled屬性钾唬,如果一個(gè)圖標(biāo)上有onclick事件,(PS:本來(lái)以為自己的想法還挺特別孤里,隨便查了點(diǎn)資料就白扯了,革命還需努力啊......)橘洞,我們可以寫成
<input type="image" src="???" id="???">
當(dāng)onclick事件觸發(fā)后捌袜,我們給他加一個(gè)disabled屬性,現(xiàn)在我們通常都是通過(guò)ajax異步發(fā)送請(qǐng)求炸枣,當(dāng)請(qǐng)求成功之后我們?cè)僖瞥齞isabled這個(gè)屬性虏等,這樣可以減輕服務(wù)器壓力,也會(huì)避免前端一些未知的bug
參考網(wǎng)上其他大神的總結(jié):http://www.cnblogs.com/luckyXcc/p/5804650.html
1> 定義標(biāo)志位:
點(diǎn)擊觸發(fā)請(qǐng)求后适肠,標(biāo)志位為false量霍衫;請(qǐng)求(或者包括請(qǐng)求后具體的業(yè)務(wù)流程處理)后,標(biāo)志位為true量侯养。通過(guò)標(biāo)志位來(lái)判斷用戶點(diǎn)擊是否具備應(yīng)有的響應(yīng)敦跌。
2> 卸載及重載綁定事件:
點(diǎn)擊觸發(fā)請(qǐng)求后,卸載點(diǎn)擊事件;請(qǐng)求(或者包括請(qǐng)求后具體的業(yè)務(wù)流程處理)后柠傍,重新載入綁定事件麸俘。
3> 替換(移除)按鈕DOM
點(diǎn)擊觸發(fā)請(qǐng)求后,將按鈕DOM對(duì)象替換掉(或者將之移除)惧笛,自然而然此時(shí)不在具備點(diǎn)擊事件从媚;請(qǐng)求(或者包括請(qǐng)求后具體的業(yè)務(wù)流程處理)后,給新的按鈕DOM定義點(diǎn)擊事件患整。
在項(xiàng)目的具體實(shí)現(xiàn)中拜效,我對(duì)用戶點(diǎn)擊的頻度加了限制,看了以上的總結(jié)知道我的方法原來(lái)有個(gè)名詞叫節(jié)流函數(shù)各谚,eg:
var lastClickTime = new Date().getTime();
function isFastClick(interval){
let time = new Date().getTime();
if(lastClickTime + interval >time){
return false;
}else{
lastClickTime = time;
return true;
}
}