로그인

이메일
비밀번호
왼쪽에 걸리적 거리는 거 숨기기
주옥과 같은 자료
http://www.quirksmode.org/dom/events/index.html

존재조차 몰랐던 이벤트도 많이 있구나.
영양가 있는 포스팅인가요
(아무도 투표를 안 했어요) 0점
2008/05/16 22:15 2008/05/16 22:15

이번 달 카드 요금 청구 자그마치 190만원!
전부 다 내가 쓴 건 아니지만 이대로 쓰다간 살림 말아먹겠네-_-

내일부터 일일 지출 체크 해야겠다-_-
당분간 한 달 기본 생활비 25만원 이하선으로 생활!

가계부 링크 백업 :
http://spreadsheets.google.com/ccc?key=p_zZ8GLrnr9_J_7AKw0IvPg&hl=ko
영양가 있는 포스팅인가요
(아무도 투표를 안 했어요) 0점
2008/05/15 19:21 2008/05/15 19:21

빠르게 클릭해도 문제가 생기지 않도록 만드는게 맞는 방향이긴 하지만,
여러가지 이유로 빠르게 클릭할 수 없게 만들고 싶은 경우 사용할 수 있는 스크립트이다.

몇 달 전에 만들었던 거.

(Language : javascript)
  1. function protectAbusing(oEl) {
  2.  
  3.   var key = oEl.getAttribute('_pabuse');
  4.   var bef = 0;
  5.  
  6.   if (!key) {
  7.  
  8.     key = 'U' + (new Date().getTime() * 1000000 + parseInt(Math.random() * 1000000));
  9.     oEl.setAttribute('_pabuse', key);
  10.    
  11.   } else {
  12.    
  13.     bef = arguments.callee._clickTimes[key];
  14.    
  15.   }
  16.  
  17.   var now = new Date().getTime();
  18.   arguments.callee._clickTimes[key] = now;
  19.  
  20.   // 마지막으로 클릭한지 1초가 넘었으면 true 리턴
  21.   return (now - bef) > 1000;
  22.  
  23. }
  24.  
  25. protectAbusing._clickTimes = {};

사용은 아래처럼 하면 된다.

(Language : html4strict)
  1. <a href="http://hooriza.com/" onclick="return protectAbusing(this);">

끝.
영양가 있는 포스팅인가요
(아무도 투표를 안 했어요) 0점
2008/05/14 15:13 2008/05/14 15:13

만드는 중간에 갈아엎은 것 까지 포함하면 대략 5번째 만드는 CSS 셀렉터 엔진.
맨 처음에 만들었던거는 아마 이거였던 것 같다.

매번 만들때마다 만들고 나서 아쉬움이 남았었는데,
이번에 완성한 셀렉터 엔진은 꽤나 만족스럽다.

속도도 꽤나 향상되서 다른 여타 프레임웍에 있는 셀렉터 엔진과 비견할 만큼의 퍼포먼스는 보이는 듯 하다.

아래는 내 노트북에서 Firefox2 로 속도를 비교해 본 결과. (셀렉터 5회 반복)
맨 오른쪽꺼가 이번에 만든거다.

사용자 삽입 이미지

사용자 환경이나 브라우저, 셀렉터 종류마다 차이는 있겠지만 Firefox 와 IE 에서는 다른 셀렉터 엔진이랑 비교했을때 가장 빠른 속도를 보여준다.

작년 겨울, Ajaxian 에서 DomQuery - A lightweight CSS Selector / Basic XPath implementation 포스팅을 보고 저 속도를 어찌나 동경해 왔던가.

그래서 Ext.DomQuery 랑도 1:1 로 비교해봤다. (Firefox2 - 셀렉터 50회 반복)

사용자 삽입 이미지

엎치락 뒤치락 하더니 마지막 nth-child 가상 클래스 부분에서 선전하면서 승리!
아 좋아~ (하지만 XPath 는 지원하지 않는다..)

이번에 사용상의 지원 범위로 신경 쓴건 :not 가상 클래스의 지원과 [type="val\"ue"] 형태나 :contains('I\'m a boy') 형태의 역슬래시 escape 를 사용한 표현의 지원.

추가적으로 특징적인 기능은 빈칸, >, +, ~ 연결자와 반대되는 기능의 연결자가 있다는거.
이를테면,

(Language : javascript)
  1. cssquery("input ! div"); // input 상위에 있는 div
  2. cssquery("span !> div"); // span 바로 위에 있는 div
  3. cssquery("ul !+ div"); // ul 의 바로 앞에 있는 div
  4. cssquery("p !~ div"); // p 의 앞 쪽에 있는 div

이런 식의 연결자를 (CSS 표준은 아니지만) 사용 할 수 있다.

소스 공개는 사내에서 좀 더 확인 과정을 거치고 할 듯.
영양가 있는 포스팅인가요
(총 2분이 투표해서 2.5점) 2.5점
2008/05/14 11:13 2008/05/14 11:13

어제 저녁, 약속이 있어서 나갔다가

버스가 안 오길래 잠시 편의점에서 가진 돈 현금 3천원 중에서 2천원으로 로또를 사고,
한참 기다리다가 오는 버스를 탔는데,

버스카드를 찍으려고 지갑을 댔는데 안 찍히는 거다.
설마, 살펴봤더니 신용카드를 집에 빼두고 왔어?!

30분마다 한번씩 오는 광역버스라서
여기서 내리고 집에 갖다오면 한시간은 족히 늦을 것 같은데.

후리자 : '저 아저씨 천원밖에 없는데 어떻게 안될까요'
아저씨 : '카드 없어요?'
후리자 : '네 카드를 놔두고 와서요...'
아저씨 : '다 해서 얼마 있어요?'
후리자 : '1000원 이요...'
아저씨 : '...그러세요'

아 싯파.
얼마전 굴욕적인 택시타기를 한데 이어 요즘 왜 이러냐.

버스에서 내릴때 마음을 담은 인사 잊지 않았다.

후리자 : '감사합니다아아~~'

영양가 있는 포스팅인가요
(아무도 투표를 안 했어요) 0점
2008/05/11 09:51 2008/05/11 09:51

◀ PREV : [1] : [2] : [3] : [4] : [5] : ... [229] : NEXT ▶