2008-08-27 2 views
9

저는 ASP.NET Ajax를 사용하여 간단한 사진 앨범 앱을 쓰고 있습니다.
비동기식 Ajax 호출을 사용하여 브라우저의 URL을 변경하지 않고 앨범의 다음 사진을 미리로드합니다.Ajax를 사용할 때 브라우저 기록을 동기화 된 상태로 유지하는 방법은 무엇입니까?

브라우저에서 사용자가 버튼을 클릭하면 응용 프로그램이 이전 사진으로 돌아 가지 않고 응용 프로그램의 홈 페이지로 이동합니다.

브라우저를 속여서 각 Ajax 호출을 검색 기록에 추가하는 방법이 있습니까?

답변

3

많은 웹 사이트가이 작업을 수행하는 숨겨진 iframe을 사용하게 기사를 가지고, 단순히 검색 기록에 추가 새로운 URL로 iframe을 새로 고침. 그런 다음 애플리케이션이 '뒤로 버튼'이벤트에 어떻게 반응하는지 처리해야합니다. iframe의 상태/위치를 감지하거나 해당 URL을 사용하여 페이지를 새로 고침해야합니다.

+0

만약 내가 정확히 이해, iframe은 실제로 비 아약스 요청을 서버에 보냅니다. 이는 서버에 불필요한 부하가됩니다. 트래픽이 적은 사이트는 괜찮을 지 모르지만 요청이있는 경우에는 좋은 해결책이 아닙니다. –

0

3.5 SP1 업데이트는 이제 브라우저 기록과 ASP.NET ajax의 뒤로 가기 단추를 지원합니다.

0

뒤로 버튼에 대한 모든 해결책은 "자동"이 아닙니다. 매 일마다 페이지의 상태를 유지하기 위해 일부 작업을 수행해야합니다. 따라서 브라우저를 "트릭하는"방법이 없지만 뒤로 버튼으로 도움이되는 훌륭한 라이브러리가 있습니다.

14

업데이트 : HTML5 hashchange 기능을 사용 중지하는 HTML5 기록 API (pushState, popState)가 있습니다. History.js은 브라우저 간 호환성을 제공하며 HTML4 브라우저에서는hashchange 대체 버전을 제공합니다.

이 질문에 대한 대답은 이러한 질문에 대한 내 대답으로 다소 동일합니다 : 요약

, 당신은 확실히하고 싶을 것이다 전체 hashync 프로세스를 설명하고 믹스에 ajax를 추가하는이 두 프로젝트를 확인하십시오.

  • jQuery History (페이지 상태를 관리하고 페이지를 업데이트하기 위해 변경 사항에 바인딩하기 위해 해시 사용).

  • jQuery Ajaxy (jQuery History의 경우 ajax 확장으로 완벽한 아약스 웹 사이트를 허용하면서 눈에 거슬리지 않고 잘 분해 할 수 있음).

1

간단한 & 경량 PathJS lib를 사용할 수 있습니다.

사용 예 :

Path.map("#/page1").to(function(){ 
    ... 
}); 

Path.map("#/page2").to(function(){ 
    ... 
}); 

Path.root("#/mainpage"); 
Path.listen(); 
관련 문제