ajax防止重複提交

Temperature: 0 °C

JuilinChungJuilinChung
會發生重提交的原因,大致上是因為考驗人與系統間的耐性~

AJAX(非同步的JavaScript與XML技術)的好處是可以僅向伺服器傳送並取回必須的資料,並在用戶端採用JavaScript處理來自伺服器的回應。

所以大大減少web的負荷~取資料的速度也變快,因為只取要的資料顯示。

但是卻會遇到一個問題,當使用者透過AJAX傳送需求時,若是系統沒有提醒訊息~

或根本就是網路過慢來不及反應回答使用者的需求時~

使用者通常會沒耐性的多發送了不少次傳送訊息。

而這就會變成,AJAX的請求第一筆還未處理完就接著要處理第二筆第三筆.....最後....當了。

自己就常常遇到這樣的問題。

現在用下列的方式,試著解決這些問題。
page_requestLock = 0;//預設值為解鎖狀態
if(page_requestLock === 1){
return;
}else{
page_requestLock = 1
$.ajax({
async: false,
type: "POST",
url: "$URL",
data: dataString,
success : function(res){
$("#page_list").html(res);
page_requestLock = 0;
},
error: function(){
alert('載入錯誤!');
page_requestLock = 0;
}

})
}

首先先宣告了一個變數 page_requestLock 並將預設值設定為0

把他當作解鎖的狀態。

這樣,當AJAX執行時再將 page_requestLock 的值改變為1

鎖定的狀態。

直到完成訊息提交並顯示時,才又將狀態改回解鎖的狀態。

目前測試執行中~

以上紀錄。

台北市內湖區江南街71巷75弄 Go

作者簡介

JuilinChung

我是chung

網路工作者

主業是網站系統開發建置

副業是做夢,寫故事

作品請參考 / teme.biz

做夢請參考 / innstory.com

聯絡 / chung.teme@gmail.com

訪客留言

留下一些足跡證明你來拜訪過我

推薦閱讀

作者其他相關類別故事

.sql檔過大無法匯入phpMyAdmin

.sql檔過大無法匯入phpMyAdmin

修改phpMyAdmin資料夾中的config.inc.php檔。 打開後找到下列兩行...

使用dp.SyntaxHighlighter 程式碼色彩顯示工具,讓紀錄程式心得更有可看性

使用dp.SyntaxHighlighter 程式碼色彩顯示工具,讓紀錄程式心得更有可看性

說好了要在innstory裡寫下故事紀錄... 所以是不是有方便紀錄的工具或方式,就變...

HTML5 影音手持裝置適應不良篇

HTML5 影音手持裝置適應不良篇

這天下午跟客戶開完會... 客戶針對專案中手持裝置網站適應性做了需調整的說明..另外還...

請選擇選項

執行錯誤

Hi,謝謝你的參與,但無法重複投票哦~