2006년 8월 25일 금요일

navigator.userAgent를 체크할 것인가?

브라우저마다 구현이 다른 코드를 사용하게 되는 경우 체크를 하는 방법에는 두 가지가 있습니다.
  • 하나는, navigator.userAgent같은 코드를 사용하여서 브라우저를 체크하여서 이를 사용하는 방법
  • 또 다른 하나는, 브라우저해서 해당하는 구현이 존재하는 지 여부를 체크하는 코드
두가지의 방법은 나름대로 장단점이 있습니다.
첫 번째의 경우, 장점은 로딩시 한번만 체크하면 확인하는 코드 없이 사용이 가능하다는 점입니다. 단점은 브라우저 종류별, 버전별 체크가 지속적으로 업데이트 되지 않으면 코드가 실행할 수 없는 문제가 발생할 수 있습니다.

if(document.implementation && document.implementation.createDocument){
   ...
}
두 번째의 경우, 장점은 브라우저의 종류, 버전에 상관없이 실행가능한지 여부를 체크하여 새버전 또는 새 브라우저가 나오는 경우 코드 수정없이 코드 실행이 가능하게 됩니다. 단점은, 항상 체크하는 코드를 실행해야 한다는 점과 구현이 안된 코드가 들어있는 경우 예외 상황이 발생할 수도 있습니다.

(이전에, WebKit을 이용하여 테스트를 했을 때, window.event를 사용하여서 체크하는 코드가 있었는데 구현이 안되어 있음에도 window.event가 존재하여서 예외가 발생한 경우가 있었습니다. ^^;; 정식 빌드가 아니긴 했지만요.)

두 번째의 경우는 object detection이라고도 합니다.

댓글 없음:

댓글 쓰기