2009-05-03 5 views
2

iUI 프레임 워크를 사용하여 사이트를 만듭니다. 이 기사에 익숙하지 않은 경우 div로 구성된 한 페이지가 있고 조각 식별자로 사용자를 탐색합니다.조각 식별자로 리디렉션/새로 고침

사용자가 새로 고칠 때까지 보이지 않는 콘텐츠를 추가하는 경우 문제가 있습니다. 내 sistuation에서는 jquery 게시물을 통해 목록에 데이터를 추가하지만 새로 고칠 때까지 아무 것도 볼 수 없다고 말한 것처럼 #fragment가 손실되면 부모 div에 새로 고침을하면 새로 고침이 수행됩니다.

그래서 나는 window.location = mywebsite.com/#_fragment를 사용하여 업데이트 한 후에 페이지를 mywebsite.com/#_fragment로 이동시킬 수 있었지만 실제로 페이지를 다시로드하지는 않습니다.

누구나 단서를 가지고 페이지를 조각으로 새로 고치는 방법이 있습니까?

답변

7

URI 단편 식별자는 클라이언트 측에만 있고 서버로 전송되지 않습니다. 즉, HTTP 요청 헤더를 검사하면 #_ 단편을 볼 수 없습니다. 또한 단편을 수정하는 URI를 변경하면 DOM 이벤트가 트리거되지 않습니다.

setInterval() 호출을 사용하여 document.location.hash 속성을 적극적으로 모니터링하는 것과 같은 해결 방법이 있지만 가장 쉬운 방법은 쿼리 문자열 arg를 변경하는 것입니다. 대신 예를 들어

window.location = mywebsite.com/?refresh=1#_fragment 

(또는 다른 키/값 쌍)의 원인이됩니다 브라우저의 존재 "= 1 새로 고침?"

window.location = mywebsite.com/#_fragment 

같은 쿼리 문자열 요소를 포함 #hash 식별자를 유지하면서 서버에 요청합니다.

은 JS 위치 개체에 대한 추가 정보를 원하시면 여기를 참조하십시오 : http://docs.sun.com/source/816-6408-10/location.htm

1

난 당신이 아이폰 친화적 인 웹 응용 프로그램을 구축 할 iUI는을 사용하는 것입니다 생각합니다. 동일한 또는 없는지에 대해 이미 iWebkit을 평가했는지 확신 할 수 없습니다. 나는 iUI와 iWebkit을 살펴 보았고 iWebkit이 훨씬 더 기능적이고 안정적이라는 것을 발견했다. &도 쉽게 구현할 수 있었다.

+0

귀하의 게시물 뒤에 iWebkit을 살펴 보았습니다. iUI보다 조금 친숙한 것처럼 보입니다. 단점은 iUI가 iWebkit이 각 페이지의 주소 표시 줄을 드롭하는 곳에서 각 페이지를 멋지게 스크롤한다는 것입니다. 또한 iUI를 사용하면 모든 자바 스크립트를 한 번 다운로드하고 다운로드 할 수 있습니다. 웹킷처럼 보이는 것은 데이터 계획에 따라 방대한 양의 페이지를로드 할 수 있습니다. 당신이 자바 스크립트를 그 페이지에 필요한 것만으로 줄일 수 있다고 말하면서. 스윙과 라운드에 대해. –

+0

jquery 또는 모든 아약스 프레임 워크를 사용하여 주소 표시 줄을 팝업하지 않고 동일한 페이지에 머무를 수 있습니다. 나는 그렇게하고있다. 그래서 기본적으로 나는 iUI에서 iWebkit으로 치명적인 콤보를 만들어 내고 훨씬 더 융통성있게 만들 수있는 조각을 만들었다. – Vikram

+0

내가 iUI의 일부를 말할 때, 주소 표시 줄을 띄우는 대신 오히려 같은 페이지를 유지하는 개념을 의미하며 iUI에서 문자 그대로 코드 조각을 작성하지 않습니다. 당신은 자신의 요구에 맞는 전략을 세울 수 있습니다. – Vikram