Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-14.log failed

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
study:javascript:dojo:monitor [2008/12/05 00:27] bananastudy:javascript:dojo:monitor [2010/03/02 12:18] (現在) banana
行 1: 行 1:
-====== Monitor idle state with user events ======+====== Monitor idle state with custom events ======
 최근 ajax 관련 project를 하면서, 유저가 동작을 멈췄는지 계속 조작하고 있는지 모니터링할 필요성이 최근 ajax 관련 project를 하면서, 유저가 동작을 멈췄는지 계속 조작하고 있는지 모니터링할 필요성이
-제기되었다. 이런저런 궁리를 해도 생각되로 되지 않던 차에 Google 검색에서 그럴 듯한 것이  +제기되었다. 이런저런 궁리를 해도 생각되로 되지 않던 차에 Google 검색에서 그럴 듯한 것을 발견하였다.
-있었다. +
 **Kaushal Sheth**씨의 [[http://thinkweb2.com/projects/prototype/detect-idle-state-with-custom-events/|2007/10/17]]일자로 투고된 기사에 유용한 소스가 있었다. 하지만 문제는 project에서 **Kaushal Sheth**씨의 [[http://thinkweb2.com/projects/prototype/detect-idle-state-with-custom-events/|2007/10/17]]일자로 투고된 기사에 유용한 소스가 있었다. 하지만 문제는 project에서
 사용하고 있던 **dojo toolkit**이 아니라 **prototype** 프레임워크로 작성되어 있었다.  사용하고 있던 **dojo toolkit**이 아니라 **prototype** 프레임워크로 작성되어 있었다. 
行 52: 行 51:
 }); });
 </code> </code>
 +
  
 ===== Add Event Listener ===== ===== Add Event Listener =====
行 70: 行 70:
 </code> </code>
 훨씬 깔끔해 보이지 않는가?8-o 훨씬 깔끔해 보이지 않는가?8-o
-이 코드를 dojo toolkit으로 다음과 같이 표현할 수 있다.+이 코드를 **dojo toolkit**으로 다음과 같이 표현할 수 있다.
 <code javascript> <code javascript>
 dojo.addOnLoad(function(){ dojo.addOnLoad(function(){
行 76: 行 76:
 }); });
 </code> </code>
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
  
行 96: 行 110:
 </code> </code>
 여기서 memo는 나중에 event를 통해서 접근할 수 있어서, 어떤 값을 저장하는데 상당히 편리하다. 여기서 memo는 나중에 event를 통해서 접근할 수 있어서, 어떤 값을 저장하는데 상당히 편리하다.
-이에 비해 **dojo toolkit**의 %%Event System%%은 특히 Custom Event를 생성하는 유틸리티 메소드를 
-가지고 있지 않다.  
-DOM의 %%createCustomEventObject%%를 통해 등록하는 방법이 있긴 하지만, 유연성이 떨어진다. 
  
- 하지만, **dojo**는 생성된 event를 어디든 등록 가능한 편리한 시스템을 가지고 있다.  +이에 비해 **dojo toolkit**은 [[http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/event-system/publish-and-subscribe-events|Publish/Subscribe]]라는 강력한 %%Event System%%을 가지고 
-이후 차기 버전서 %%custom event%% 생성을 지원해 줄지 관건이다.+있다. **prototype**의 fire에 해당하는 것이 %%dojo.publish%%이고, event를 listener에 연결하는 
 +것이 %%dojo.subscribe%%이다.  
 + 
 +어떤 의미에서는 [[study:java:design_pattern:observer|Observer Pattern]]이라고 볼 수 있다. publish하는 
 +쪽에서는 누가 subscribe를 도 신경쓸 필요가 없다. \\ 덕분에 event와 listener사의 decoupling(분리) 
 +가 가능하게 되었다. 그만큼 유연하고 강력한 event system이라고 생각한다. 
 + 
 +사용예는 다음과 같다. 
 +<code javascript> 
 + dojo.subscribe("alerts", null, function(caption, message){ alert(caption + "\n" + message); }; 
 + dojo.publish("alerts", [ "read this", "hello world" ]);  
 +// 
 +</code> 
  
 ===== Demo page ===== ===== Demo page =====
行 108: 行 132:
  
 ===== reference ===== ===== reference =====
-  - [[http://thinkweb2.com/projects/prototype/detect-idle-state-with-custom-events/]] : Detect idle state with custom events +  - [[http://thinkweb2.com/projects/prototype/detect-idle-state-with-custom-events/|Detect idle state with custom events]]  
-  - [[http://iolothebard.tistory.com/309]] : Create javascript class+  - [[http://iolothebard.tistory.com/309|Create javascript class]]
  
 ~~DISCUSSION~~ ~~DISCUSSION~~

QR Code
QR Code study:javascript:dojo:monitor (generated for current page)