2010-05-31 11 views
2

지금 당황 스럽다. 나는 시간을 잃었고 왜 이런 일이 일어날 지 모른다. 그것의 반 호언 장담하지만 난이 짧은파이어 폭스 + 내 코드가 파이어 폭스 새로 고침을 없애는 이유

가 가
  1. 내 코드는 심지어 나에게 아무 것도 변경하지 않고 작동을 멈 춥니 다 있기 때문에 내 코드를 고정 또는 그래서 내가 생각
  2. 깨진 된 상쾌한 후, 작동하지 않을 것입니다 유지하려고합니다 (당신은 내가 이것을 상상하고 있다고 생각할 것이다 ...)
  3. 나는 어떻게 든 새 창이나 탭을 만들고 내 코드를 실행하여 작동하는지 확인한다.
  4. 나는 더 많은 코드를 작성하고 모든 것을 내가 알
  5. 내가 내 코드 나던 작업과 방화 광
  6. 을 도움이되지 않는 새 창에서 테스트를 작성하고 내가 볼
  7. 일을 내 코드 않습니다보고 다시 깨진 볼 때 모든 탭을 새로 작성하십시오.
  8. 새로 고침이 작동하지 않으며 작동하도록 코드를 작성해야합니다.

그런 다음 문제가 무엇인지 즉시 알았습니다. 디스플레이를 수정합니다 : 텍스트 상자가 없지만 값을 잘못 설정했습니다. 그것이 숨겨져 있기 때문에 나는 그것을 볼 수 없습니다. 이제 여러분 중 일부는 내 잘못을 말 할 수도 있습니다. 왜냐하면 모든 데이터를 새로 고침 할 때 캐시가 될 수 있기 때문입니다. 그러나 여기에 키커가 있습니다. POST 데이터를 사용하고있었습니다. 나는 매회마다 새로 고침을하던 중 게시했다.

동일한 데이터가 캐시되고 어쨌든 사용되는 경우 POST를 사용할 때의 이점은 무엇입니까? 검색 엔진이 block user 링크를 따를 수있는 기회가 없다면 보안 또는 반복 작업이 문제가되지 않을 때 왜 게시해야합니까? POST는 아무 것도하지 않는 것 같습니다.

+0

Firefox 웹 개발자 툴바 https://addons.mozilla.org/ko-KR/firefox/addon/60/에는 숨겨진 요소 표시 옵션이 있습니다. 도와 줘야 할 것 같아. –

답변

5

form-field-value-remembering에 시달리는 것과 같은 소리가납니다.

bfcache가있는 브라우저에서 bfcache를 사용하지 않는 경우 또는 bfcache를 사용하면 일부 브라우저에서는 다시로드 할 때 브라우저가 다음과 같이 각 양식 필드의 값을 유지하려고 시도합니다. 페이지가 마지막으로 언로드되었습니다. 이 기능은 사용자가 힘들이지 않고 입력 한 모든 데이터를 잃지 않고 양식을 탐색하고 새로 고칠 수 있도록하기위한 기능입니다.

그래서 HTML 소스에서 가져온 페이지로드 시간과 동일한 양식 필드의 값에 의존 할 수 없습니다. 양식 필드의 값에 따라 DOM 상태가있는 경우 (예 : 다른 필드의 값에 따라 일부 필드가 숨겨 지거나 비활성화 된 양식) 페이지로드시 해당 상태를 반영하여 반영해야합니다 브라우저가 자동으로 자리에 놓인 필드 값 (onchange 이벤트가 발생 함). 은 스크립팅 변수를 저장하기 위해 숨겨진 입력을 사용하지 않습니다..

정확한 동작은 브라우저마다 다릅니다. 예를 들어 일부 브라우저는 숨겨진 필드의 값을 유지하지만 일부는 숨겨진 필드의 값을 유지합니다. Mozilla와 WebKit은 필드가 DOM으로 파싱됨에 따라 IE가 단지 window.onload ...과 Opera에서 악의적으로 수행하는 동안 window.onload 바로 뒤에 새로운 값을 넣었으므로 0- onload 이후 상태를 업데이트하는 시간 초과. 심한 엉망이야.

+0

나는 많은 것을 알았지 만, 나를 귀찮게하는 것은 심지어 내가 뭔가 잘못된 값을 설정했다는 사실조차도 아니다. 나는 예외를 가져야 만하지만 사실 나는 POST 이벤트 이후에 새로 고침을한다.심지어 페이지 업데이트에서 다른 값을 보았고 새로운 양식이 추가되었습니다. 나는 dom의 값이 재설정되면 충분하다고 생각한다. 그 너무 많은 것들이 내 하루를 정말 고통스럽게 만들었습니다. ( –