일반적인 처리 폼 중복 제출 방식
2. 해결 방법
1. 다른 페이지로 전송하지 않고 방향을 바꾸는 방식으로 목표 페이지로 이동
2. JS 스크립트 방식
JS 스크립트 방식은 장면 1의 여러 번의 클릭만 제한할 수 있고 서버 방식과 결합하여 사용해야 한다.JS 제한에는 다음과 같은 몇 가지 방법이 있습니다. (1) 전역 변수를 정의하고form 제출 전에 제출한 적이 있는지 판단합니다.
var checkSubmitFlg = false;
function checkSubmit() {
if (checkSubmitFlg == true) {
return false;
}
checkSubmitFlg = true;
return true;
}
document.ondblclick = function docondblclick() {
window.event.returnValue = false;
}
document.onclick = function doconclick() {
if (checkSubmitFlg) {
window.event.returnValue = false;
}
}
(2) 제출 단추를 누르면 바로 수정 단추를 사용하지 않습니다 (3) 제출 단추를 누르면 차단층이 튀어나와 사용자가 두 번 클릭하지 않도록 합니다
3. 서비스 측 방식
페이지를 열 때 token을 생성하여 세션에 저장하고 페이지의form에 숨겨진 영역을 설정합니다. 폼을 제출할 때 백엔드에서 세션에 이 token이 있는지 확인하고, 존재하면 세션에서remove를 제거한 다음 정상적인 업무 논리 작업을 진행합니다. (예를 들어 업무 논리 작업이 실패하면 이 token을 세션에 추가하여 사용자가 데이터를 수정한 후에 제출하는 데 편리합니다.)이 token이 없으면 중복 제출 알림을 되돌려줍니다.서비스 측 방식은 폼 중복 제출을 방지하면 대부분의 폼 중복 제출 문제를 해결할 수 있지만 일부 결함도 존재한다.예를 들어 같은 표를 신속하게 중복 제출하는 경우 한 개의 요청만 정상적으로 처리된다는 것을 정확하게 보장할 수 없다.세션에 token을 저장하는 것은 하나의 폼만 사용할 수 있습니다. 만약에 사용자가 같은 세션에서 여러 개의form 폼을 동시에 열면 마지막으로 열린form 페이지만 정확하게 처리할 수 있습니다. (데이터베이스에 저장된 token이remove를 대체하는 방식은 사용할 수 있지만 이 방식은 비교적 좋지 않기 때문에 추천하지 않습니다.)
4. 고유 구속
데이터베이스에 유일성 제약 제한을 추가하는 것이 폼의 중복 제출을 방지하는 가장 효과적인 방법이다.
3. 일반적인 상황에서 JS 스크립트 방식과 서버 방식 두 가지를 결합하면 표의 중복 제출을 방지할 수 있고 특수한 업무 요구에 대한 데이터베이스 유일성 제약 제한 등 방식으로 업무 논리상의 데이터 유일성을 강제적으로 확보할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.