Javascript

  • Published on
    일단, 발행하기 전에 정리부터 하자..예제는 나중에 정리하고.. 생각나는대로 써보면,.. 대충 정리해보면 아래와 같다. 1. DOM 노드 캐싱 DOM을 캐싱할때는,.. 캐싱하려는 노드를 cloneNode(true)로 떠서 캐시하자..그렇치 않으면, IE에서는 innerHTML로 해당 노드를 날렸을때,. 캐시한 노드까지 날라간다.반면, IE외의 다른 브라우저에서는 innerHTML로 해당 노드를 날렸을때..해당 노드만 날라가고, 캐시한 노드는 그대로 있다. [하나 더 주의] - cloneNode를 할 경우, 바인딩된 이벤트는 복사되지 않는다.! 2. 메모리 누수모든 브라우저가 innerHTML로 엘리먼트를 교체하면, 엘리먼트가 걸려있는 이벤트 핸들러들이 날아가 버린다. 보다 정확한 의미는 참조를 잃어버린다!!때문에 참조를 잃어버린 이벤트 핸들러들은 영영 해제할 길이 없어 메모리 누수가 생긴다. 따라서, 엘리먼트 교체를 해야할 경우엔, 이벤트 핸들러를 먼저 제거해주거나..앞에서 얘기한
  • Published on
    인코딩 문제로 오늘 또 하루종일 씨름했다. 사실 그닥 어려운게 아닌데.. 처음 설정을 잘못해놓으면,. 고생하기 쉽상이다. 웹개발에서 인코딩과 관련해서 신경써야할 부분 아래와 같은 3가지라고 보면 되겠다. 1. 클라이언트 (javascript) 2. 서버 (apache or tomcat 설정) 3. DB 1. DB 캐릭터셋 설정하기 그중에서 가장 실수하기 쉬운 것중에 하나는 DB 설정. mysql 을 설치하고, 꼭 아래와 같은 명령어로 현재 mysql 의 설정 상태를 확인해야한다. mysql> \s mysql 을 설치할대, 기본 캐릭터셋이 latin1 으로 설정되어 있기때문에 신경써서 설치하지 않으면, 원하는 utf8 설정이 안된다. 설정이 제대로 안되어 있다면, 설치 폴더로 가서 my.ini 파일을 열어 인코딩 관련 부분을 모두 수정해줘야한다. 여기서 그렇게 했는데도 불구하고, \s 명령어를 이용해, mysql 설정상태를 확인 했을때, DB character set 이 latin1
  • Published on
    우리팀에서 나름 유용하게 사용했던 BDLayer (내이름 이니셜을 붙였다..ㅋㅋㅋ) 작년말에 저거 만들때, 나름 설계에 고민을 많이 했는데.. 구조상의 결함과 고치기 힘든 버그때문에.. 결국 오늘 새버전을 만들어 버렸다. 나름 그동안 구상해왔던, 설계로 작성했고,.. "최대한 불필요한 함수들은 노출하지 말자" 라는 기본 원칙을 세웠는데.. 나름 잘 지켜진것 같다. 코드가 아주 심플해졌네~ ^^ 그리고 아직 크로스 브라우징 테스트는 하지 못했다. (Mac버전 FF3, Safari, Opera 만 테스트 했음) 이번 코드는 시작부터 JSSpec을 적극 활용해서 진행했다. 역시나 서비스코드보다는 훨씬 적용하기가 수월했다. AutoHide 플러그인에 잡기 힘든 버그도 잡아서 속이 다 시원하다. 역시나, 타이머는 디버깅이 힘들다..ㅇㅎㅎ 만들면서 느낀 것,.. 역시 자바스크립트는 프레임웍(프로토타입,제이쿼리,진도 등등)을 이용해 클래스를 흉내내는것보다. 그냥 자바스크립트 본연의 모습이 보다
  • Published on
    웹개발자나 UI 개발자에게 없어서는 알될 툴중에 하나가 바로,..HTTP 모니터링툴일것이다. 대표적으로 HttpWatch 와 Fiddler 라는 Http Debugging Tool 이 있다. 두개 모두 내가 유용하게 쓰고 있는 툴인데,..그중에서 피들러가 어느날 갑자기 너무 느려졌다..피들러를 열고, 웹페이지 하나 열라치면,.. 몇 십초나 걸린다.--;..도대체 뭐가 문제인거야? 한참을 고민하다.. 에라이~ 모르겠다.. 접어두고, 그냥 불편한대로 다른 방법을 이용했는데.. 그런데, 이젠 더이상 안되겠다 싶어...Fiddler 관련 메일링 리스트를 뒤졌다..역시 찾으니까 금방 나온다..--;..인터넷옵션 - 연결 - LAN 설정에서 자동 구성의 체크박스를 모두 해제해두면 그걸로 끝!다시 피들러가 제속도를 찾을것이다.그래도 안된다고?.. 그럼 나도몰라!! ㅋㅋ
  • Published on
    항상 이런 이슈는 퇴근쯔음 생긴다..-_- 싫다 정말.. 여튼, 개편이후, PV가 갑자기 줄어서.. 확인해본결과.. 문제는 이미지 태그의 src 이용해 리퀘스트를 날릴때, 그 리퀘스트가 중지되는 현상이 발견됐다. Httpwatcher에서 확인해본결과.. 아래와 같은 코드 사용시에.. (new Image()).src = "로그집계기록" 열에 2~3번은 aborted가 되고 있었다. 위와 같은 상황이라면 PV가 대략 20~30%는 하락할것이다..ㅎㅎ 여튼 수많은 삽질을 통해 대강의 원인을 찾아본결과.. 아래와 같은 이유가 있었다. (이유는 3가진데.. 자세한건 아래 링크 참조) http://blog.httpwatch.com/2008/01/28/what-does-aborted-mean-in-httpwatch/ 그중에서 다운로드 중일때, 리퀘스트를 날리면 요청을 끊어버린다는 것!! 이게 가장 유력한 원인으로 파악되고 있다. 일단.. 내일 다시 테스트해봐야징.. 졸립넹..-_- ----- 최