삽질의 현장/- Javascript와 HTML

[삽잡이::javascript] 새로운 페이지를 가져다주는 href와 replace

shovelman 2016. 6. 6. 11:17


javascript를 야매(?)로 살금살금 가져다가 사용하다보니,

그냥 아무 생각없이 쓰던 메서드들에 대한 대충 기능들만 알고 있지

비슷한 기능인데 뭔 차이가 있는지 생각해본 적이 그리 많지 않습니다.


하지만 역시,,, 언젠간 

왜!? 안되!!!! 라는 미스테리를 던져주고 기다리지요...



글쎄, jQuery로 작업 처리를 했는데,

뒤로 가면 이전 주소가 남아있지 않는게 아니겠습니까...


왜...

왜...

왜!?!?!?!?!?


페이지 이동 시킬 때 많이들 href를 사용합니다.

그런데, 제가 위에서도 말씀드렸듯이 야매(?)로 가져다 쓰다보니

작업 처리를 하고 replace를 사용하여 새로운 페이지로 변경시키고 있었습니다.


그런데, 뒤로가기 버튼을 누르니... 이전 페이지는 행방불명이 되버렸지요...


그러한 이유는 바로! 

두 녀석의 차이가 존재하기 때문이었습니다...


href는 속성입니다. replace는 메서드이구요.


아래 w3sschools.com에 명시되있는 것과 같이 

이 둘은 property와 method로 다릅니다.


 

[href]

 
[replace]

href는 새로운 페이지로 이동시킵니다.


하지만, location은 

현재 document 기록을 지우고 덮어 쓰는 것과 같습니다.
즉, 뒤로가기 버튼을 눌러도 이전 페이지로 갈 수 없다 이거지요.

헷갈리지 말자구요~