본문 바로가기

DOM, Script14

uploadify를 사용한 ajax 파일 업로드 처리 ajax가 웹에 많은 발전을 기여 한게 사실이지만 파일처리에 있어서는 항상 걸림돌이였다. 우선 먼저 짚고 넘어가야할게 ajax에서는 XMLHttpRequest프로토콜을 사용하는데 알다시피 파일업로드는 되지 않는다. 그렇다면 제목에서 말하는 ajax 파일 업로드가 과연 맞는것인가에 대한 의문이 드는게 사실인데.. 혹자는 XMLHttpRequest을 사용하지 않는다면 결국 자바스크립트일뿐이라고도 한다. (기존에 비슷한 기능을 iframe으로 구현을 많이 했으니 틀린말은 아니군요..) 하지만 결국 비동기식으로 보이게끔(-_-;) 구현을 해주니 ajax파일업로드라 하겟다..;;;.. 파일업로드를 ajax방식으로 처리해주는 스크립트 라이브러리는 여러개가 있다. jQuery가 유행하다보니 유난히 jQuery플러그인.. 2011. 8. 2.
ZeroClipboard를 사용한 Cross-Browser 클립보드 기능 사용하기. 기존에 웹서비스에서 흔히 사용했던 퍼가기 기능을 구현가능하도록 해줬던 window.clipboardData.setData() 메소드는 알다시피 IE전용의 비표준함수이다. 이에 대한 대응으로 flash를 사용한 클립보드기능을 사용하였으나 이마저 flash10버젼이 나오면서 보안상의 이유로 막혀버렸다.;; 방법이 없을까 찾던중 "zeroclipboard" 라는 걸 발견. 바로 샘플확인후 적용해보았고 잘 돌아가는걸 확인했다. zeroclipboard도 결국 JavaScript와 Flash의 연계를 통해 동작을 하는데 JavaScript-to-Flash interface인 ("ExternalInterface") 을 사용하는데 이는 오직 ONLINE상태에서만 가능하기에 로컬베이스로는 작동하지 않는다..;; 간략한.. 2011. 2. 16.
Javascript 의 parseInt 함수 흔히 자바스크립트에서 문자열을 정수로 캐스팅할때 사용하는 parseInt함수. 얼마전에 년월일 정보를 가져와서 잘라서 월과 일을 나눠서 계산할 부분이 필요해서 사용했는데 parseInt("08"), parseInt("09") 의 리턴값이 동일한게 0 이 반환이 된다.;; 원인은 parseInt는 변환할 값이 처음에 "0"으로 시작하면 8진수로 변환하기때문에 08과 09의 리턴값이 0이다. 다행히 parseInt에 진수값을 지정이 가능하다. 흔히 사용하는 10진수로 변환을 할경우는 아래와같이 사용한다 var month = parseInt("08", 10); 당연하겟지만 항상 parseInt를 사용할경우엔 "0"으로 시작할경우 두번째 매개인자에 진법을 넣는코딩을 하자. 2011. 1. 14.
오랜 시간 동작되는 스크립트에 대한 브라우져별 대처와 원인?? 간혹 웹서핑중에 이 페이지의 스크립트로 인해 Internet Explorer 실행의 속도가 느려질 수 있습니다. 스크립트를 계속 실행할 경우 컴퓨터가 응답하지 않을 수 있습니다. 스크립트 실행을 중단하시겠습니까? 위와 같은 알렛창을 본적이 잇을것이다. 아쉽게도 이런메시지가 나온다면 십중팔구는 스크립트가 무한루프에 빠졋다고 봐도 되지 싶다.;; 브라우져별로 위와같이 무한루프 또는 너무 오랫동안 실행중임을 알려주는 알렛을 보여주는거는 브라우져마다 차이가 있다. 1. IE - ie의 경우는 스크립트에 의해 실행된 문장의 수를 모니터링한다. 이후 실행된 문장의 수가 최대수(기본값 5백만) 보다 많이 실행된다면 위와같은 알렛이 뜨는것이다. 혹시나 무한루프는 아니지만 스크립트가 완료되는데 더 문장의 수를 늘려야 한.. 2010. 12. 8.