ProgramingTip

페이지를 새로 고침 할 때 선택이 선택 상태로 유지되는 이유는 무엇입니까?

bestdevel 2020. 10. 20. 07:55
반응형

페이지를 새로 고침 할 때 선택이 선택 상태로 유지되는 이유는 무엇입니까?


다음 코드가있는 웹 페이지를 다시로드하고 있습니다.

<label for="showimage">Show Image</label>
<input id="showimage" name="showimage" type="checkbox" value="1" />

페이지를 다시로드 할 때마다 HTML이 브라우저로 전송 된 상태로 유지 할 때 선택은 항상 새로 고침을 수행 할 때 선택한 값을 사용합니다. 즉, 사용자가 선택하고 다시로드하면 여전히 선택되어 있습니다.

여기에 캐싱이 진행되고 있습니까?

편집 : 나는 아래에서 Gordon Bell의 시도를 시도했고 value = "1"을 여전히 일어나고 있음을 발견했습니다. 내가 놓친 다른 서열 있습니까?

<label for="showimage">Show Image</label> 
<input id="showimage" name="showimage" type="checkbox" /> 

예, 캐싱이라고 생각합니다. 예를 들어 Firefox에서 동작을 볼 수 있습니다. (Safari가 아니라 그 가치가 있습니다. :).

당신은 페이지를 다시로드 캐시 우회 (파이어 폭스)를 사용 할 수 있습니다 CTRL- SHIFT- R당신은 체크 값이 수행되지 않습니다 볼 수 있습니다 (일반 CTRL- R그러나 캐시에서 정보를 사로 잡고)

편집 : Firefox 에서이 서버 측을 탐색하여 캐시 제어를 접근 수 있습니다.

Cache-Control: no-store

이것은 Firefox의 "양식 값 기억"기능을 강화하는 것입니다


autocomplete="off"양식 요소의 페이지에 추가 하십시오. 어려운 것은 이것이 유효한 XHTML이 복잡한 자바없이 문제를 해결하는 것입니다.


js로 set autocomplete = "off"도 잘 작동합니다.

예를 들어 jquery 사용 :

$(":checkbox").attr("autocomplete", "off");

Firefox의 멋진 기능입니다. 작업을 입력하고 페이지를 다시로드하면 텍스트가 텍스트 영역에 남아 있습니다. 선택한 다른 설정에 대한 Idem.

아아, 그것은 SO (아마 JS로 그대로)와 IE와 같은 멍청한 브라우저에서 작동하지 않습니다.

제안을 제안합니다. 그렇게해야하는 경우 JS로 양식을 적절하게하십시오. form.reset ()이 작업을 수행 할 수 있습니다 (입력 상황 버튼처럼 작동).


또는 f5 대신 주소 표시 줄에서 키를 입력합니다. :)


브라우저 캐싱 때문일 수 있습니다. 너무 자주 변경되지 않는 정적 웹 사이트에 매우 유용하고 동적 웹 애플리케이션에는 매우 좋지 않습니다.
페이지의 헤드 섹션에있는 두 개의 메타 태그를 검색합니다. 두 번째 메타 태그는 "no-cache"메타 태그를 인식하지 않는 이전 브라우저 (IE5) 용이며 서로 다른 결과는 동일하지만 각 요청은 서버로 전달됩니다.

<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Expires" CONTENT="-1">

$ ( "# showimage"). prop ( "checked", false);


그것을 해결하기위한 대중의 생각

양식 작성 및 준비 버튼

<form>
<checkbox>
<reset>
</form>

$(reset).trigger("click");//to clear the cache and input 
$(checkbox).trigger("click");//to mark checkbox

이것은 오래된 질문이지만 파이어 폭스에게는 여전히 활활 한 문제입니다. 내가 시도한 응답 중 어느 것도 해결 될 것 입니다.

    document.getElementById('formId').reset();

이렇게하면 페이지가로드 될 때마다 양식이 기본 옵션으로 마련됩니다. 세분화 된 제어를 잃어 버리기 때문에 해결이지는 않지만 문제를 해결하는 유일한 방법입니다.

참고 URL : https://stackoverflow.com/questions/299811/why-does-the-checkbox-stay-checked-when-reloading-the-page

반응형