티스토리 뷰
<script>
function form_submit(form){
...생략...
form.submit();
}
</script>
<form>
... 생략 ...
<input type="submit" onclick="form_submit(this.form)" />
</form>
위처럼 할 경우
submit이 두번일어날 수 있다.
이럴경우 브라우저마다 2번 URL을 호출하는 경우가 생길 수 있는데, 문제가 가장 되는것은 IE6이다.
(submit 말고 일반 페이지 이동과 form의 submit일 같이 발생되도 비슷하다)
IE6의 경우 저렇게 호출할 경우 서버쪽에서는 SYN_RECV 상태가 생겨버린다.(안 생길 수도 있다.)
(동시에 두번 호출 시 처음 호출된게 IE에서는 abort 가 되는데, 이때 따로 서버에 TCP 응답을 안줘서 서버에서는 SYN_RECV 상태로 계속 유지된다.)
SYN_RECV 상태가 계속 유지되면 타임아웃으로 밖에 안 없어진다.
타임아웃도 시간도 길어서....
즉, SYN_RECV가 계속 쌓이면 서버가 서비스 못할 경도가 되버릴 수도 있다.
IE외의 브라우저에서도 문제가 되는데
submit 할 때 중간에 action을 바꾼다면, 어느 페이지로 이동되는지를 정확하게 선택할 수 없을 수 있다.
추천하는 처리방법
<script>
function form_submit(form){
...생략...
return true;
}
</script>
<form onsubmit="return form_submit(this.form)">
... 생략 ...
<input type="submit" />
</form>
이렇게하면 submit 이벤트에 따라 동작하고, 다른 submit은 하지 않게 된다.
즉, 1번만 submit이 일어나게 된다.
'Project > JAVA&Jsp' 카테고리의 다른 글
JAVA 문자열 연결 방법 비교 (0) | 2020.08.20 |
---|---|
JAVA 스트림 Stream 사용방법 (0) | 2020.08.20 |
[JAVA] Map에서 키나 값이 있는지 없는지 확인(containsKey,containsValue) (0) | 2020.08.13 |
JAVA 진수변환 (0) | 2020.08.13 |
Popup창에 Post 방식으로... (0) | 2008.07.26 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Letsencrypt wildcard auto renew
- Letsencrypt+nginx
- 마이바티스CamelCase
- camelcase
- letsencrypt
- 마이바티스
- SSL
- Letsencrypt wildcard
- Intellj들여쓰기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함