2013-05-22 4 views
0

사용자가 navbar 링크를 누를 때마다 모든 페이지를 다시로드하지 않는 웹 사이트를 구축하려고합니다. 그래서 jQuery와 AJAX를 GET으로 사용하여 해당 HTML 파일을 div 태그에로드합니다.AJAX 탐색을 만드는 가장 좋은 방법은 무엇입니까?

history.pushState() 

그리고 읽어 :

location.href() 

내가 내 htaccess로을 수정할 수 있습니다 나는 그것을 아래의 코드를 작성하는 데 사용할 수 있습니다

는 다음 나는 URL을 변경해야 같은 URL을 리디렉션 : 내 유일한 html 파일에

mysite.com/home 
mysite.com/contact 

을하는 I 그것이 읽혀지고로드 될 곳이 있습니다.

내 질문은 : 이것은 괜찮습니다? 이것은 최선의 방법이며, 수정하거나 제거하거나 추가 할 수 있습니까?

당신이 줄 수있는 도움이나 조언은 감상적 일 것이며 자세한 정보가 필요하면 알려 주시면 해당 게시물을 편집하겠습니다.

+1

왜 jQuery를 사용하여 window.location.href를 읽습니까? 이상하게 보입니다. – epascarello

+0

글쎄, 나는 그것을 위해 다른 것을 사용한다 ... 그래서 도서관은 이미 추가되었다. – harrison4

+1

@ Joëlle -'location.href'는 코드가 적고'$ (location) .attr ('href');보다 함수 호출이 적습니다. 왜냐하면'location'은 HTML 요소 노드가 아니기 때문에 의미가 없습니다. – Quentin

답변

4

하나의 URI로 리디렉션 한 다음 자바 스크립트로 페이지를 다시 작성하면 자바 스크립트에 의존하지 않는 실제 URL을 사용하는 히스토리 API를 사용하는 지점을 놓치게됩니다. 삽입을위한 페이지 삽입없이 JS로 콘텐츠를 가져 오기 전에 - 트위터의 문제 였기 때문에 역사 API로 옮겼습니다.) 검색 엔진에 좋은 음식입니다.

+1

@quintin 나는 이것에 대해서도 궁금해하고 있었다. javaScript를 통해 기사를로드하는 페이지가있는 경우 서버 측 로직을 사용하여이 기사에 직접 연결해야합니다 (예 : http://www.mysite.org/20130105/goog). 직접 해당 기사에 북마크를 지정 하시겠습니까? – HMR

+1

예. 참조를 위해 [프로그레시브 개선] (http://en.wikipedia.org/wiki/Progressive_enhancement) 및 [Unobtrusive JavaScript] (http://en.wikipedia.org/wiki/Unobtrusive_JavaScript) – Quentin

+0

+1을 참조하십시오. Symfony와 같은 mv 프레임웍은 ajaxcall이 만들어 질 때 다른 응답/컨트롤러를 가능하게함으로써이 문제를 해결할 수 있다고 생각합니다. 그런 다음 JS가 페이지의 일부 내용을 설정할 수 있도록 템플릿의 일부만 렌더링 할 수 있습니다. – HMR

관련 문제