2012-09-10 8 views
2

페이지에서 AJAX 호출을 사용하면 페이지 소스가 그대로 유지됩니다. 이로 인해 문제가 발생할 수 있습니다. 사용자가 브라우저에서 정방향/역방향 조작을 사용하는 경우, 페이지 브라우저로 되돌아 가면 AJAX 컨텐츠가 아닌 원본 HTML 코드를 읽거나 읽습니다. 예를 들어, 재귀 호출 할 수 있습니다, 그것은 BTW (결국 ID = "foo는"와 DIV 태그의 내용을 교체 할 ajaxFunction를 호출합니다,의는 페이지를로드 후에는AJAX 요청의 페이지 소스를 새로 고칩니다.

<div id="foo"> 
<script type="text/javascript"> 
setTimeout('ajaxFunction', ...); 
</script> 
</div> 

있는 페이지를 구성 가정 해 봅시다 게다가). 그러나 브라우저에서 볼 수있는 페이지 소스에는 여전히이 스 니펫이 포함됩니다. 페이지를 다시로드하지 않고 페이지 소스를 새로 고치는 방법이 있습니까?

내 AJAX 코드 안에 페이지를 다시 추가 할 수 있다는 것을 알고 있지만 최종 사용자를 방해하지 않으려 고합니다.

답변

1

마우스 오른쪽 버튼으로 "소스보기"옵션을 사용할 수 있습니다 - 일부 브라우저는 HTML이 아닌 다른 요청을하고 있습니다. Developer Tools/Firebug는 업데이트 된 HTML을 보여 주지만, 다음/앞으로 탐색 초기 HTML (JS/AJAX로 변경하지 않고)이 표시된 후에 나타납니다. 나는 크롬이 동적 인 변화를 역시 캐싱 할 것이라고 생각했다. 그러나 이것 만 확인하면 초기 페이지가 보인다. 이 동작을 변경할 수있는 방법이 없다고 가정 해보십시오. 나에게있어 여기있는 유일한 방법은 document.onload에있는 ajaxFunction을 호출하여 최신 정보가 사용자에게 표시되는지 확인하는 것입니다.

3

브라우저가 HTTP 응답으로 서버로부터받은 콘텐츠를 보여줍니다. DOM의 모든 동적 변경 사항이 여기에 반영되지 않습니다. Chrome의 FF 또는 개발자 도구에서 방화 광을 사용하여 동적 변경 사항을 추적 할 수 있습니다.

+1

나는이 대답을 좋아한다. 동적 소스 코드를 보려면 FF 또는 Chrome 개발자 도구를 사용하는 것이 중요합니다. – Hacknightly

+0

질문은 제가 잘 알고있는 개발자 도구가 아니라 다른 주제에 관한 것이 었습니다. – Valentin

관련 문제