2017-03-27 4 views
0

현재 MEAN.js 웹 응용 프로그램을 설계하고 있으며 어떤 이유로 경로 또는 window.reload에서 페이지를 새로 고칠 때마다 페이지를 다시 렌더링하지 않고 현재 경로에서 발견 된 JSON 파일 만 반환합니다.평균 스택 응용 프로그램 : 새로 고침시 페이지가 다시 렌더링되지 않고 JSON 만 반환됩니다

예를 들어

, 나는 로컬 호스트에있을 때 : 8080/명 :

내가 메인 페이지에서 여기를 클릭하면, 나는

Picture of home page

을 얻을하지만 히트 경우 새로 고침 또는 다시로드 나는 사람이 어떤 이런 일이 왜 아이디어와 시간이 있습니까

Picture of result

을 얻을 어떤 이유로 페이지 그걸 고치려고?

답변

1

아마도 각도 전화의 html5Mode routing을 사용하고 계신 것 같습니다.

여기에는 pushState and friends이 사용됩니다. 이것은 고유 한 실제 URL이 인 별도의 페이지 인 이있는 웹 응용 프로그램을 만들 수 있도록 설계된 브라우저 기능입니다. 그러나 페이지를 변경하면 실제로 현재 페이지의 DOM을 (상태 B로) 수정하는 대신 처음부터 새로로드하기.

pushState과 친구들의 디자인 의도는 상태 B에 매핑되는 고유하고 실제적인 URL을 요청하면 서버가 상태 B에 대한 HTML을 브라우저에 직접 제공한다는 것입니다.

먼저 홈페이지로 이동하지 않고 현장을 방문하는 경우
  • , 당신은 당신이 홈페이지를로드 한 후 수정하는 것보다 더 빠른 인 (직접로드하려고하는 내용을로드 :

    이는 것을 의미한다 자바 스크립트와 함께). 당신이 for many reasons 할 수있는 (자바 스크립트가 작동하지 않고 현장을 방문하는 경우

  • , 다음 모든 여전히 작동합니다. 또한 Progressive EnhancementUnobtrusive JavaScript를 참조하십시오.
  • 당신이 잘못한 무엇

이 URL이 당신의 JSON에 매핑 할 것입니다

Accept header을 사용하면 URL을 API와 공유 할 수 있으므로 (서버가 JSON 또는 HTML을 반환 함) 페이지를 생성 할 때 서버 측 프로세스를 작성해야합니다. 클라이언트가 받아들이라고 말한 것)

+0

각도 라우팅 서비스를 사용하고 있으므로이 문제를 해결할 수있을 것으로 생각하십니까? –

+0

@RonaldDuquette - 각도 코드가 포함 된 HTML 문서를 제공하지 않는 URL을로드하기 때문에 : 아니오 (그리고 JS로 문서를 생성하는 클라이언트 측 라우팅 코드에 따라 설명 된대로 pushState 사용 시점을 놓치고 있습니다. 이 대답에서). – Quentin

+0

나는 나의 HTTP 요청에 Accept 헤더를 추가했고, 이제 의도 한대로 작동한다. 고맙습니다! –