locatin 속성

dev 2008. 9. 12. 16:50
흔히 location.href 와 location.replace() 모두 페이지를 이동시킬 때 사용한다.
하지만 둘 사이에는 분명한 차이점이 있으며, 이를 알고 적절히 사용하는 것이 좋겠다.


개념의 차이

href 는 객체의 상태를 나타내는 프로퍼티이며, replace()는 객체의 동작을 명령하는 메소드이다.

location.href = 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
Posted by 으랏차
,