흔히 location.href 와 location.replace() 모두 페이지를 이동시킬 때 사용한다.
하지만 둘 사이에는 분명한 차이점이 있으며, 이를 알고 적절히 사용하는 것이 좋겠다.
개념의 차이
href 는 객체의 상태를 나타내는 프로퍼티이며, replace()는 객체의 동작을 명령하는 메소드이다.
기능의 차이
쉽게 간과할 수 있는 부분이지만, 프로퍼티와 메소드라는 차이 외에도 아래와 같은 차이점이 있다.
location.href : 페이지를 이동 시킨다.
location.replace : 현재 페이지를 바꿔준다.
무슨말인가 싶겠지만 매우 중요한 차이점이다.
location.href는 페이지를 이동 시키면서 히스토리를 남긴다.
따라서, A페이지 -> B페이지 이동 후 뒤로가기를 통해 A페이지로 돌아갈 수가 있다.
반면, location.replace()는 히스토리를 남기지 않는다.
따라서, location.href와 달리 A페이지 -> B페이지 이동 후 뒤로가기를 통해 A페이지로 돌아갈 수 없다.
또한, location.replace()는 캐시(인터넷 임시파일)를 쓰지 않는 점이 location.href와 다르다.
하지만 둘 사이에는 분명한 차이점이 있으며, 이를 알고 적절히 사용하는 것이 좋겠다.
개념의 차이
href 는 객체의 상태를 나타내는 프로퍼티이며, replace()는 객체의 동작을 명령하는 메소드이다.
location.href = url;
location.replace(url);
location.replace(url);
기능의 차이
쉽게 간과할 수 있는 부분이지만, 프로퍼티와 메소드라는 차이 외에도 아래와 같은 차이점이 있다.
location.href : 페이지를 이동 시킨다.
location.replace : 현재 페이지를 바꿔준다.
무슨말인가 싶겠지만 매우 중요한 차이점이다.
location.href는 페이지를 이동 시키면서 히스토리를 남긴다.
따라서, A페이지 -> B페이지 이동 후 뒤로가기를 통해 A페이지로 돌아갈 수가 있다.
반면, location.replace()는 히스토리를 남기지 않는다.
따라서, location.href와 달리 A페이지 -> B페이지 이동 후 뒤로가기를 통해 A페이지로 돌아갈 수 없다.
또한, location.replace()는 캐시(인터넷 임시파일)를 쓰지 않는 점이 location.href와 다르다.
'dev' 카테고리의 다른 글
EUC-kr, Unicode, UTF-8 (1) | 2008.08.20 |
---|---|
ejb (0) | 2008.08.05 |
jms (0) | 2008.08.04 |
expression pattern (0) | 2008.08.01 |
script class (0) | 2008.08.01 |