강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

mouse wheel
작성자 : 13 김영철
등록날짜 : 2009.01.29 16:53
3,072

Ajax에서 mouse wheel의 문제는

휠이 매우연속적이고 다량이 발생한다는 점이다.

이런 휠이베트를 받아서 서버에 갔다와야 한다는 점은

첫번째 요청후 아직 첫번째 요청에 대한 response가 오지않은 상황에서

다음 요청이 오고 이를 block시키는 경우에

사용자에게 좋은 feedback을 주기가 어렵다.

 

rico live grid에서는 이런한 경우에

다음 요청을 바로 처리하지는 못하지만,

unprocessedRequest에 저장해 두었다가

첫번째 결과 처리후 다시 처리할수 있게 한다.

 

scroll의 경우는 요청이 1,2,3,4,5가 연속으로 들어 온 경우에

2,3,4를 무시하고 5만 처리하면 된다.

하지만 mouse wheel을 통해서 지도를 확대 축소하는 경우에는

2, 3, 4, 5의 wheelDelta를 합산에서 저장해 주어야 할 것으로 보인다.

 

 

 

 

 

rico live grid에서 가져옮

 

   fetchBuffer: function(offset) {
      if ( this.buffer.isInRange(offset) &&
         !this.buffer.isNearingLimit(offset)) {
         return false;
      }
      if (this.processingRequest) {
         this.unprocessedRequest = new LiveGridRequest(offset);
         return false;
      }

 

      this.processingRequest = new LiveGridRequest(offset);

...

      Object.extend(options,this.options);
      options.onComplete = this.ajaxUpdate.bind(this);
      this.timeoutHandler = setTimeout( this.handleTimedOut.bind(this), this.options.requestTimeout );
      new Ajax.Request(this.url, options);
   },


   requestContentRefresh: function(contentOffset) {
      return this.fetchBuffer(contentOffset);
   },

   ajaxUpdate: function(ajaxResponse) {
      try {
        clearTimeout( this.timeoutHandler );

...


      }
      catch(err) {}
      finally {
        this.processingRequest = null;
      }
     
      this.processQueuedRequest();
   },


 

   processQueuedRequest: function() {
      if (this.unprocessedRequest != null) {
        this.requestContentRefresh(this.unprocessedRequest.requestOffset);
        this.unprocessedRequest = null
      } 
   }

 

-- MSDN --

http://msdn.microsoft.com/workshop/samples/author/dhtml/refs/onmousewheelEX.htm

 

<HTML>
<HEAD>
<SCRIPT>
var count = 10;
function Picture()
{
   count = Counting(count);
   Resize(count);
   return false;
}
function Counting(count){  
    if (event.wheelDelta >= 120)
        count++;
    else if (event.wheelDelta <= -120)
        count--;  
    return count;
}
function Resize(count){   
    oImage.style.zoom = count + '0%';   
}
</SCRIPT>
</HEAD>
<BODY>
<img id="oImage" src="Sample.jpg" onmousewheel="Picture()" width="283"
height="212" >
</BODY>
</HTML>


출처 : Tong - 드렁크수달스님의 ■ AJAX ■통

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3165 vb 마우스휠 2 아론k 06.24 4012
3164 간단한 windows 스케줄 2 아론k 06.24 2997
3163 한글 영문변환 참고 문자표 2 아론k 06.24 4918
3162 자바 스윙 단축키 설정 2 나야나 05.26 3702
3161 자바 리플렉션 관련 2 나야나 05.26 2948
3160 간단한 sugest 기능 2 kkkkkkk 02.16 3572
3159 유니코드 사용하기 13 김영철 01.29 3218
3158 msxml 사용준비~!(checklist& 설정사항) 13 김영철 01.29 4177
3157 AJAX으로 놀자~ (채팅) 13 김영철 01.29 3320
3156 XML을 해야 하는 이유 13 김영철 01.29 6997
3155 AJAX 강의 2장 - XMLHttpRequest 오브젝트 사용하기 13 김영철 01.29 4841
3154 A Simpler Ajax Path 13 김영철 01.29 3203
3153 [AJAX] 한글지원문제 해결방법 13 김영철 01.29 3219
3152 [팁] XMLHttpRequest를 사용할 때 한글 파라미터의 인코딩 처리 방법 13 김영철 01.29 4410
3151 ServerXMLHTTP의 인코딩 문제 13 김영철 01.29 3723
3150 prototype.js 13 김영철 01.29 2807
3149 AJAX 관련 새로운 url 정리 13 김영철 01.29 3907
3148 Ajax를 쓰는 이유라고 할까나? 13 김영철 01.29 3153
3147 Ajax [www.atmarkit.co.jp] 13 김영철 01.29 3311
3146 Daum의 Ajax 개발 사례 13 김영철 01.29 4179
3145 AJAX관련 IE 버그. -1072896658 13 김영철 01.29 3362
3144 PHP 설정과 MySQL에 따른 Ajax 사용하기 13 김영철 01.29 3211
열람중 mouse wheel 13 김영철 01.29 3073
3142 Ajax 간단한 예제(우편번호검색) 13 김영철 01.29 4019
3141 Prototype활용 (prototype속성) 13 김영철 01.29 2793
3140 [문서] prototype.js v1.4.0 13 김영철 01.29 2930
3139 동적테이블 속성도 복사 13 김영철 01.29 2885
3138 Aqua data studio 한글 깨짐 설정 13 김영철 01.29 9021
3137 삭제페이지 소스 13 김영철 01.29 2842
3136 c강좌 (20) 자기참조 구조체 13 김영철 01.29 3543
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취