[firefox] 페이지를 다시로드 할 때 확인란이 선택된 상태로 유지되는 이유는 무엇입니까?

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

<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가 아니라 가치가 있습니다. :).

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

편집 : 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 ()이 작업을 수행 할 수 있습니다 (입력 재설정 버튼처럼 작동).


답변

이것은 오래된 질문이지만 파이어 폭스에게는 여전히 활발한 문제입니다. 내가 시도한 응답 중 어느 것도 해결 되지 않았지만 나를 위해 해결 한 것은 단순히 다음과 같습니다.

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

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


답변

또는 f5 대신 주소 표시 줄에서 Enter 키를 누릅니다. 🙂


답변

브라우저 캐싱 때문일 수 있습니다. 너무 자주 변경되지 않는 정적 웹 사이트에 매우 유용하고 동적 웹 애플리케이션에는 매우 좋지 않습니다.

페이지의 헤드 섹션에있는 두 개의 메타 태그를 사용해보십시오. 두 번째 메타 태그는 “no-cache”메타 태그를 인식하지 않는 이전 브라우저 (IE5) 용이며 서로 다른 결과는 동일하지만 각 요청은 서버로 전달됩니다.

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