2014-11-03 7 views
0

JavaScript 변수 window.history.length에 액세스하면 내 창 기록 크기가 반환됩니다. 한 페이지에서 다른 페이지로 이동 한 다음 다른 페이지로 이동하면 window.history 길이가 증가합니다. 브라우저의 뒤로 버튼을 사용하여 내 기록으로 돌아갈 때, 역사를 통해 뒤로 이동하더라도 window.history의 값은 감소하지 않습니다. 왜 이런거야?왜 내 window.history의 크기가 감소하지 않습니까?

+1

몇 페이지를 탐색 한 다음 이전과 다른 페이지를 방문하면 표시가 줄어들 수 있습니다. StackOverflow에서 몇 번 클릭하고 길이를 확인하십시오. 몇 페이지를 다시 방문하여 길이를 다시 확인하십시오. 동일해야합니다. 다른 길이를 클릭하면 작아집니다. –

답변

3

window.history은 방문하는 논리적으로 증가하는 목록 또는 페이지 배열로 생각하십시오. 초기에는 초기 페이지 만 있습니다. 앞으로 탐색하면 목록의 끝에 새 항목이 추가되고 window.history.length은 1 씩 증가합니다. 페이지를 다시 방문하면 목록에 이 아니라 이전에 제거했던 항목이이됩니다. 대신, 그것은 남아 있으며 앞으로 나아갈 수있는 기회를 갖게됩니다 (방금 돌아온 페이지로 돌아 가기).

여기서 의미하는 것은 window.history의 길이를 브라우징 세션이 시작된 시점까지의 표시기로 사용하면 안된다는 것입니다. 예를 들어, window.history.length의 값이 이 아니고이 아닌 경우 3 페이지를 다시 방문하면 방문한 두 번째 페이지에 있습니다. window.history.length은 순방향으로 방문한 페이지 수의 길이를 나타내지 만 현재 의 위치는입니다.

역방향으로 탐색 한 후 전달 체인에서 이전 페이지와 다른 앞으로 페이지를 방문하면 목록이 변경되므로 더 이상 항목을 전달할 수 없게됩니다 이전에 돌아 왔던

+0

그러면 스택의 첫 페이지에 있는지 확인하는 방법은 무엇입니까? –

관련 문제