2013-06-12 7 views
1

모든 것이 웹 기반 인 iPad 용 JavaScript 앱을 만들었습니다. 모든 페이지에는 많은 콘텐츠가 있고 많은 링크가 있습니다. 따라서 링크를 클릭하면 콘텐츠를 표시 (로드)하는 동안 흰색 영역이 표시됩니다. 다음 페이지가로드되는 동안 링크를 클릭하면 이전 페이지에 머물러 있기를 원합니다. 완전히로드 된 경우 다음 페이지를 표시하고 싶습니다. 내가 어떻게 해?페이지가 완전히로드 된 후 링크 페이지로 리디렉션

+0

클릭 한 후로드하지 않는 것이 좋습니다. 어떤 링크가 다음에 프리 페치되는지를 추측하는 것이 좋습니다. 구글 프리 페칭을위한 비트. 두 번째는 페이지 크기를 줄이고 Ajax를 사용하여 파트별로로드하는 것입니다. 페이지가로드 될 때까지 몇 초간 기다리면 많은 사용자가 튀어 오를 것입니다 ... – abimelex

답변

3

내가 아는 한, 이것을 달성하는 유일한 방법은 AJAX를 사용하여 콘텐츠를로드하는 것입니다. 즉, 모든 링크에 대해 전체 페이지를 다시로드하는 대신 클릭 한 링크에 따라 콘텐츠의 일부를 다시로드하기 만하면됩니다. , 당신이 AJAX 실행 (당신이 모든 링크를 발생하지 않으려면 특정 조건에 일치하는) 모든 링크에 대해, 그리고

<div id="content">...</div> 

:

의이 페이지는이 같은 용기를 가지고 있다고 가정 해 봅시다 이 같은 것을 사용하여, 위치의 변화를 반영하도록

$("a").click(function() { 
    $this = $(this); 
    var data = {}; // Put additional parameters here 
    $.get($this.attr("href"), data , function(response) { 
     $("#content").html(response); 
    } 
} 
@rofavadeka 언급했듯이

비슷합니다, 당신은 또한 URL을 수정할 수 있습니다 요청 :

window.history.pushState("object or string", "Title", "/new-url"); 
+1

정확히 똑같은 것에 대답하고 있었습니까? 나는 유일한 해결책이라고 생각한다. 완전히로드되었을 때 javascript를 사용하여 새 내용을 (예 : 본문)에 붙여 넣은 다음 js -> window.history.pushState ("object or string", "Title", " "/ new-url"); – rofavadeka

+2

'pushState'는 IE 10보다 낮은 버전의 IE에서는 지원되지 않습니다. 그러나 그것은 iPad의 문제이므로 아무런 문제가되지 않습니다. – jdepypere

1

jQuery Mobile을 사용해 보셨습니까? 이 라이브러리는 찾고있는 기능을 정확히 갖춘 라이브러리입니다.

+0

문제는 내가 전체 애플 리케이션을 만들었고 나는 jquery로 바꿀 수 없다. –

관련 문제