KR20140116400A - 고능률 캐스케이딩 동작을 가능하게 하는 기법 - Google Patents

고능률 캐스케이딩 동작을 가능하게 하는 기법 Download PDF

Info

Publication number
KR20140116400A
KR20140116400A KR1020147018608A KR20147018608A KR20140116400A KR 20140116400 A KR20140116400 A KR 20140116400A KR 1020147018608 A KR1020147018608 A KR 1020147018608A KR 20147018608 A KR20147018608 A KR 20147018608A KR 20140116400 A KR20140116400 A KR 20140116400A
Authority
KR
South Korea
Prior art keywords
cascading
elements
operations
input
cascading operation
Prior art date
Application number
KR1020147018608A
Other languages
English (en)
Inventor
제이콥 에스 로시
저스틴 이 로저스
네이선 제이이 푸르트벵글러
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20140116400A publication Critical patent/KR20140116400A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

다양한 실시예들은 엘리먼트들 중 하나의 엘리먼트와 연관된 입력을 수신하는 것에 응답하여 계층 트리 내의 지정된 엘리먼트에 대해 캐스케이딩 동작의 서브세트를 선택적으로 적용함으로써 고능률 캐스케이딩 동작이 수행될 수 있게 한다. 다양한 파라미터에 따라, 캐스케이딩 동작의 서브세트를 수행하는 것에 후속하여 캐스케이딩 동작의 풀 세트가 수행될 수 있다. 그러한 파라미터는 예컨대 사용자 상호작용 타이밍, 주어진 엘리먼트에 대한 캐스케이딩 동작의 복잡도, 및/또는 캐스케이딩 동작이 적용될 수 있는 엘리먼트의 개수를 포함할 수 있다.

Description

고능률 캐스케이딩 동작을 가능하게 하는 기법{ENABLING PERFORMANT CASCADING OPERATIONS}
웹 상에서 소비될 수 있는 컨텐츠를 설계하는 사람들이 직면하는 하나의 과제는 이들 컨텐츠가 다양한 장치 상에서 인지할 수 있을 정도로 빠른 방식으로 실행될 수 있게 하는 것으로, 이들 장치는 반드시 그에 상응하게 빠른 방식으로 실행되도록 설계될 필요는 없을 수 있는 그러한 유형의 장치도 포함한다. 예를 들어, 웹 컨텐츠는 통상적으로, 자손 엘리먼트(descendent elements) 및 조상 엘리먼트(ancestor elements)를 갖는 엘리먼트를 포함하는 계층적 문서 객체 모델(DOM; document object model)로 표현된다.
특정 엘리먼트에 대한 입력이 수신되는 흔한 경우에 있어서, 그 입력은 관련 동작을 터널(tunnel) 또는 캐스케이드(cascade)하거나 또는 다른 조상 엘리먼트로의 계층 트리 이벤트를 작동시키기 위한 기초(basis)로서 사용될 수 있다. 대형 트리(large tree)의 경우, 특정 동작을 적용할 엘리먼트가 어느 것인지 결정하는 것은 고비용 작업(expensive operation)이다. 따라서, 사용자의 경험이 효율적이고 잘 인지되도록 보장하기 위한 과제들이 계속해서 존재한다.
본 요약은 이하의 상세한 설명에서 보다 자세히 설명될 개념들 중 선택된 것들을 단순화된 형태로 소개하고자 제공된다. 본 요약은 청구 대상의 필수 특성 또는 핵심 특성을 나타내고자 하는 것이 아니며, 청구 대상의 범위를 한정하기 위해 사용되는 것도 아니다.
다양한 실시예들은 엘리먼트들 중 하나의 엘리먼트와 연관된 입력을 수신하는 것에 응답하여 계층 트리 내의 지정된 엘리먼트에 대해 캐스케이딩 동작의 서브세트를 선택적으로 적용함으로써 고능률 캐스케이딩 동작(performant cascading operation)이 수행될 수 있게 한다. 다양한 파라미터에 따라, 캐스케이딩 동작의 서브세트를 수행하는 것에 후속하여 캐스케이딩 동작의 풀 세트가 수행될 수 있다.
하나 이상의 실시예에서, 캐스케이딩 동작의 서브세트는 수신된 입력에 대해, 예컨대 사용자 상호작용 타이밍, 주어진 엘리먼트에 대한 캐스케이딩 동작의 복잡도, 및/또는 캐스케이딩 동작이 적용될 수 있는 엘리먼트의 개수를 포함하는 파라미터에 기초하여 결정될 수 있다.
상세한 설명은 첨부 도면을 참조하여 설명한다. 도면에서 도면 부호의 맨 좌측 숫자는 이 도면 부호가 처음 나타나는 도면의 번호를 나타낸다. 상세한 설명의 상이한 예에서 동일한 참조 부호를 사용한 것은 유사하거나 또는 동일한 항목을 나타낼 수 있다.
도 1은 하나 이상의 실시예에 따른 예시적인 구현 환경을 도시한 것이다.
도 2는 도 1을 보다 상세히 보여주는 시스템의 구현예를 도시한 것이다.
도 3은 캐스케이딩 동작이 적용될 수 있는 실시예를 도시한 것이다.
도 4는 캐스케이딩 동작이 적용될 수 있는 실시예를 도시한 것이다.
도 5는 캐스케이딩 동작이 적용될 수 있는 실시예를 도시한 것이다.
도 6은 캐스케이딩 동작이 적용될 수 있는 실시예를 도시한 것이다.
도 7은 하나 이상의 실시예에 따른 방법의 단계들을 도시한 흐름도이다.
도 8은 하나 이상의 실시예에 따른 방법의 단계를 도시한 흐름도이다.
도 9는 하나 이상의 실시예에 따른 구현예를 도시한 것이다.
도 10은 본 명세서에 기재된 다양한 실시예를 구현하는데 이용될 수 있는 예시적인 컴퓨팅 장치를 도시한 것이다.
개요
다양한 실시예들은 엘리먼트들 중 하나의 엘리먼트와 연관된 입력을 수신하는 것에 응답하여 계층 트리 내의 지정된 엘리먼트에 대해 캐스케이딩 동작의 서브세트를 선택적으로 적용함으로써 고능률 캐스케이딩 동작이 수행될 수 있게 한다. 다양한 파라미터에 따라, 캐스케이딩 동작의 서브세트를 수행하는 것에 후속하여 캐스케이딩 동작의 풀 세트가 수행될 수 있다.
하나 이상의 실시예에서, 캐스케이딩 동작의 서브세트는 수신된 입력에 대해, 예컨대 사용자 상호작용 타이밍, 주어진 엘리먼트에 대한 캐스케이딩 동작의 복잡도, 및/또는 캐스케이딩 동작이 적용될 수 있는 엘리먼트의 개수를 포함하는 파라미터에 기초하여 결정될 수 있다.
이하의 논의에서, 본 명세서에 기술된 기법들을 이용하도록 동작가능한 예시적인 환경을 먼저 설명한다. 그 다음에 이 예시적인 환경 및 다른 환경에 이용될 수 있는 다양한 실시예에 대한 예시를 설명한다. 따라서, 예시적인 환경은 기술된 실시예를 수행하는 것에 한정되지 않고, 기술된 실시예는 예시적인 환경 내에서의 구현으로 한정되지 않는다.
예시적인 동작 환경
도 1은 본 문서에 기재된 기법들을 이용하여 동작할 수 있는 예시적인 구현에서의 환경(100)의 일례이다. 도시된 환경(100)은 다양한 방법으로 구성될 수 있는 컴퓨팅 장치(102)의 일례를 포함한다. 예를 들어, 컴퓨팅 장치(102)는 통상의 컴퓨터(예컨대, 데스크탑 개인용 컴퓨터, 랩탑 컴퓨터 등), 모바일 스테이션, 엔터테인먼트 기기, 텔레비전에 통신가능하게 연결된 셋탑 박스, 무선 전화기, 넷북, 게임 콘솔, 핸드헬드 장치 등으로 구성될 수 있으며, 이들은 도 2에 추가로 설명된다. 따라서, 컴퓨팅 장치(102)는 물리적 메모리 및 프로세서 자원을 갖는 충분한 자원 장치(full resource device)(예컨대, 개인용 컴퓨터, 게임 콘솔)로부터 제한된 메모리 및/또는 처리 자원을 갖는 저자원 장치(low-resource device)(예컨대, 통상의 셋탑 박스, 핸드헬드 게임 콘솔)에까지 이른다. 컴퓨팅 장치(102)는 또한 컴퓨팅 장치(102)로 하여금 후술하는 하나 이상의 동작을 수행하게 하는 소프트웨어를 포함한다.
컴퓨팅 장치(102)는, 보다 상세히 후술하는 바와 같이 사용자의 경험을 향상시키도록 설계되는 효율적인 방식으로 고능률 캐스케이딩 동작이 수행될 수 있게 하도록 구성된 캐스케이딩 동작 모듈(104)을 포함한다. 적어도 일부 실시예에서, 캐스케이딩 동작 모듈(104)은 타이머를 이용하여 하나 이상의 수신된 제스처 입력과 연관된 시간을 측정하고, 그 응답으로 캐스케이딩 동작을 수행한다. 예를 들어, 적어도 일부 실시예에서, 캐스케이딩 동작 모듈은 제스처 입력과 같이 엘리먼트들 중 하나와 연관된 입력의 수신에 응답하여, 캐스케이딩 동작의 서브세트를 계층 트리 내의 지정된 엘리먼트에 선택적으로 적용함으로써 고능률 캐스케이딩 동작이 수행될 수 있게 할 수 있다. 그 후 다양한 파라미터에 따라서, 캐스케이딩 동작의 서브세트를 수행한 후에 캐스케이딩 동작의 풀 세트가 수행될 수 있다. 캐스케이딩 동작의 서브세트는 수신된 입력에 대해, 예컨대 사용자 상호작용 타이밍, 주어진 엘리먼트에 대한 캐스케이딩 동작의 복잡도, 및/또는 캐스케이딩 동작이 적용될 수 있는 엘리먼트의 개수를 포함하는 파라미터에 기초하여 결정될 수 있다.
컴퓨팅 장치(102)는 또한, 하나 이상의 손가락에 의해 수행될 수 있는 입력 포인터 제스처를 인식하고 그 제스처에 상응하는 조작 또는 액션이 수행되게 하는 제스처 모듈(105)을 포함한다. 제스처는 다양한 방식으로 모듈(105)에 의해 인식될 수 있다. 예를 들어, 제스처 모듈(105)은 터치스크린 기능을 이용하는 컴퓨팅 장치(102)의 디스플레이 장치(108)에 인접한 사용자의 손(106a)의 손가락 또는 예컨대, 니어필드(near field) 기술을 이용하여, 반드시 디스플레이 장치(108)를 물리적으로 터치하지 않아도 되는, 사용자의 손가락 접근을 감지하는 기능과 같은, 터치 입력을 인식하도록 구성될 수 있다. 모듈(105)은 단일 손가락 제스처와 베젤(bezel) 제스처, 복수 손가락/동일 손 제스처와 베젤 제스처, 및/또는 복수 손가락/다른 손 제스처와 베젤 제스처를 인식하는데 이용될 수 있다. 캐스케이딩 동작 모듈(104) 및 제스처 모듈(105)이 별개의 모듈로 표현되지만, 이들 모두에 의해 제공된 기능은 단일의 통합된 제스처 모듈로 구현될 수 있다. 모듈(104 및/또는 105)에 의해 구현된 기능은 예컨대 웹 브라우저와 같은 임의의 적절히 구성된 애플리케이션에 의해 구현될 수 있다. 다른 애플리케이션이 청구 대상의 사상 및 범주로부터 벗어나지 않고 이용될 수 있다.
컴퓨팅 장치(102)는 또한 (예컨대 사용자의 손(106a)의 하나 이상의 손가락에 의해 제공된)터치 입력 및 (예컨대 스타일러스(116)에 의해 제공된) 스타일러스 입력을 검출하고 이들을 구별하도록 구성될 수 있다. 이러한 구별은 다양한 방법으로, 예컨대 사용자의 손(106a)의 손가락에 접촉되는 디스플레이 장치(108)의 부분 대 스타일러스(116)에 의해 접촉되는 디스플레이 장치(108)의 부분을 검출함으로써 수행될 수 있다.
따라서, 제스처 모듈(105)은 스타일러스 및 터치 입력 간의 구분 뿐만 아니라 상이한 유형의 터치 입력 및 비터치 입력의 인식 및 이용을 통해 다양한 제스처 기법들을 지원할 수 있다.
도 2는 복수의 장치가 중앙 컴퓨팅 장치를 통해 상호연결되는 환경에서 구현되는 캐스케이딩 동작 모듈(104) 및 제스처 모듈(105)을 보여주는 예시적인 시스템(200)을 도시한 것이다. 중앙 컴퓨팅 장치는 복수의 장치에 대해 로컬일 수 있거나 또는 복수의 장치로부터 원격으로 위치할 수 있다. 일실시예에서, 중앙 컴퓨팅 장치는 "클라우드" 서버 팜이며, 이것은 네트워크 또는 인터넷 또는 다른 수단을 통해 복수의 장치에 연결되는 하나 이상의 서버 컴퓨터를 포함한다.
일실시예에서, 이 상호접속 아키텍처는 복수의 장치의 사용자에게 공통의 끊김없는 경험을 제공하기 위한 기능이 복수의 장치에 걸쳐 전달되게 할 수 있다. 복수의 장치 각각은 상이한 물리적 요건 및 능력을 가질 수 있고, 중앙 컴퓨팅 장치는 플랫폼을 사용하여 장치에 맞춤화되고 아직 모든 장치에 공통인 경험을 그 장치에 전달할 수 있다. 일실시예에서, 타겟 장치의 클래스(class)가 생성되고 경험은 장치의 포괄적 클래스에 맞추어진다. 장치의 클래스는 장치의 물리적 특징 또는 용도 또는 기타 일반적인 특징에 의해 정의될 수 있다. 예를 들어, 전술한 컴퓨팅 장치(102)는 모바일(202)용, 컴퓨터(204)용, 및 텔레비전(206)용과 같이 다양한 방식으로 구성될 수 있다. 이들 구성 각각은 일반적으로 대응하는 스크린 사이즈를 가지며, 따라서 컴퓨팅 장치(102)는 이 예시적인 시스템(200)에서 이들 장치 클래스 중 하나로서 구성될 수 있다. 예를 들어, 컴퓨팅 장치(102)는 모바일 전화기, 뮤직 플레이어, 게임 장치 등을 포함하는 장치의 모바일(202) 클래스를 취할 수 있다. 컴퓨팅 장치(102)는 또한 개인용 컴퓨터, 랩탑 컴퓨터, 넷북 등을 포함하는 장치의 컴퓨터(204) 클래스를 취할 수 있다. 텔레비전(206) 구성은, 예컨대, 텔레비전, 셋탑 박스, 게임 콘솔 등 일상적인 환경에서의 디스플레이를 포함하는 장치의 구성을 포함한다. 따라서, 본 명세서에 기술된 기법은 컴퓨팅 장치(102)의 이들 다양한 구성에 의해 지원될 수 있으며 이하의 섹션에서 기술되는 특정 예들로 한정되지 않는다.
클라우드(208)는 웹 서비스(212)를 위한 플랫폼(210)을 포함하는 것으로 도시되어 있다. 플랫폼(210)은 클라우드(208)의 하드웨어(예컨대, 서버) 및 소프트웨어 자원의 기본적인 기능을 추상화하며 따라서 "클라우드 운영 체제" 역할을 할 수 있다. 예를 들어, 플랫폼(210)은 컴퓨팅 장치(102)를 다른 컴퓨팅 장치와 연결하기 위해 자원들을 추상화할 수 있다. 플랫폼(210)은 또한 플랫폼(210)을 통해 구현되는 웹 서비스(212)에 대한 요구에 대해 대응하는 스케일 레벨을 제공하도록 자원의 스케일링을 추상화할 수도 있다. 서버 팜 내에서의 서버들의 로드 밸런싱, 악성 부분들(예컨대, 스팸, 바이러스, 및 기타 멀웨어)에 대한 보호 등과 같이, 다양한 다른 예들도 고려할 수 있다.
따라서, 클라우드(208)는 인터넷 또는 네트워크를 통해 컴퓨팅 장치(102)에 이용가능하게 되는 소프트웨어 및 하드웨어 자원과 관련된 전략의 일부로서 포함된다.
캐스케이딩 동작 모듈(104) 및 제스처 모듈(105)에 의해 지원된 제스처 기법들은 모바일 구성(202) 내 터치스크린 기능, 특정 입력 장치와 접촉하지 않는 NUI(natural user interface)의 지원의 일부로서 카메라에 의해 검출된 컴퓨터(204) 구성의 트랙 패드 기능 등을 사용하여 검출될 수 있다. 또한, 특정 제스처를 식별하기 위해 입력을 검출하고 인식하는 동작의 실행은, 예컨대, 컴퓨팅 장치(102) 및/또는 클라우드(208)의 플랫폼(210)에 의해 지원된 웹 서비스(212)에 의해, 시스템(200) 전체에 걸쳐 분산될 수 있다.
일반적으로, 본 명세서에 기술된 기능들 중 임의의 기능은 소프트웨어, 펌웨어, 하드웨어(예컨대, 고정된 로직 회로), 수동 처리, 또는 이들 구현들의 조합을 이용하여 구현될 수 있다. 본 명세서에 사용된 "모듈", "기능(functionality)", 및 "로직"이란 용어들은 일반적으로, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 의미한다. 소프트웨어 구현의 경우에, 모듈, 기능, 또는 로직은 프로세서(예컨대 CPU 또는 CPU들) 상에서 또는 프로세서에 의해 실행될 경우 지정된 태스크를 수행하는 프로그램 코드를 의미한다. 프로그램 코드는 하나 이상의 컴퓨터 판독가능 메모리 장치에 저장될 수 있다. 후술하는 제스처 기술들의 특징들은 플랫폼 독립적인데, 이는 기술들이 다양한 프로세서를 갖는 다양한 상용 컴퓨팅 플랫폼 상에서 구현될 수 있다는 것을 의미한다.
이하의 논의에서, 다양한 섹션들이 다양한 실시예를 설명한다. "예시적인 캐스케이딩 동작"이란 제목의 섹션은 하나 이상의 실시예에 따라 캐스케이딩 동작이 수행될 수 있는 실시예를 기술한다. 그 다음에, "단일 타이머를 사용하는 예"란 제목의 섹션은 하나 이상의 실시예에 따라 단일 타이머가 사용될 수 있는 예를 기술한다. 그 다음에, "복수의 타이머를 사용하는 예"란 제목의 섹션은 하나 이상의 실시예에 따라 복수의 타이머가 사용될 수 있는 예를 기술한다. 이어서, "기타 파라미터들"이란 제목의 섹션은 하나 이상의 실시예에 따라서 캐스케이딩 동작을 수행하기 위해 타이밍 파라미터에 더하여 또는 이와 별개로 다른 파라미터들을 이용할 수 있는 실시예를 기술한다. 그 다음에 "예시적인 방법들'이란 제목의 섹션은 하나 이상의 실시예에 따른 예시적인 방법들을 기술한다. 마지막으로, "예시적인 장치"란 제목의 섹션은 하나 이상의 실시예를 실시하는데 이용될 수 있는 예시적인 장치의 측면들을 기술한다.
고능률 캐스케이딩 동작 기능이 활용될 수 있는 예시적인 동작 환경을 설명하였으므로, 이제 예시적인 실시예에 대해 검토해 보자.
예시적인 캐스케이딩 동작
전술한 바와 같이, 다양한 실시예들은 엘리먼트들 중 하나의 엘리먼트와 연관된 입력을 수신하는 것에 응답하여, 계층 트리 내의 지정된 엘리먼트에 대해 캐스케이딩 동작의 서브세트를 선택적으로 적용함으로써 고능률 캐스케이딩 동작이 수행되도록 할 수 있다. 다양한 파라미터에 따라, 캐스케이딩 동작의 서브세트를 수행하는 것에 후속하여 캐스케이딩 동작의 풀 세트가 수행될 수 있다. 하나 이상의 실시예에서, 캐스케이딩 동작의 서브세트는 수신된 입력에 대해, 예컨대 사용자 상호작용 타이밍, 주어진 엘리먼트에 대한 캐스케이딩 동작의 복잡도, 및/또는 캐스케이딩 동작이 적용될 수 있는 엘리먼트의 개수를 포함하는 파라미터에 기초하여 결정될 수 있다.
후술하는 실시예는 캐스케이딩 효과를 갖는 어떠한 유형의 동작에도 적용될 수 있다. 한 유형의 캐스케이딩 동작은 사용자에 의해 감지될 수 있는 시각화의 결과를 가져오는 동작과 관련된다. 이들 시각화는 임의의 적절한 방법으로 정의될 수 있다. 그러한 시각화가 정의될 수 있는 한 방법은 의사 클래스(pseudo-class)를 이용하는 CSS(Cascading Style Sheet)의 사용을 통해서이다. 의사 클래스의 2개의 예로는 :hover 및 :active 의사 클래스가 있다. 그러나, 이러한 CSS 의사 클래스는 기술된 실시예의 주제일 수 있는 시각화의 일례를 나타낼 뿐인데, 보다 구체적으로는 DOM(document object model) 트리와 같은 계층 트리 내에서 나타나는 엘리먼트에 적용될 수 있는 캐스케이딩 동작을 나타낼 뿐임을 이해해야 한다. 따라서, 청구 대상의 사상 및 범주를 벗어나지 않고, 시각화를 제시하는 동작을 포함하는 다른 캐스케이딩 동작이 이용될 수 있다.
전술한 CSS 의사 클래스와 관련하여 다음 사항들을 고려해 보자.
선택자(delector) 상의 CSS :hover 및 :active 의사 클래스는, 호버링되고 있거나(포인팅되거나) 또는 활성화되고 있는(예컨대 클릭되거나 또는 이와 다르게 지정되고 있는) 선택자에 의해 선택된 엘리먼트들 중 임의의 엘리먼트에 포맷이 적용되도록 허용하거나 또는 호버링 또는 활성화되고 있는 자손 엘리먼트를 갖는다. 이 동작은 통상적으로 포인팅 기기에 의해 지정되는 엘리먼트로부터 조상 트리 위로 호버/활성(hover/active) 상태를 터널링함으로써 구현되는데, 이 포인팅 기기는 사용자의 손가락(디스플레이 스크린을 터치하거나 또는 근접하게 위치하는), 스타일러스, 마우스, 또는 내츄럴 사용자 인터페이스(natural user interface)를 통해 수신된 입력일 수 있다. 따라서, 지정된 엘리먼트의 조상 트리 내의 임의의 엘리먼트는 또한 지정된 엘리먼트와 동일한 호버/활성 상태인 것으로 간주된다.
대형 문서 트리 및 복잡한 CSS 선택자의 경우, 어느 엘리먼트가 호버 상태에 있는지를 판정하는 것 및 적절한 포맷을 적용하는 것은 전술한 바와 같이 고비용 동작일 수 있다. 예컨대, 터치를 이용할 경우, 사용자 상호작용은 흔히 매우 간단하다. 예를 들어, 엘리먼트 상의 탭(tap)은 사용자가 화면에 터치한 시간부터 사용자가 들어올리는 시간까지 수십 밀리초로 짧을 수 있다. 많은 경우에, :hover 및 :active 선택자로 인해 포맷을 적용하는데 걸리는 시간은 실제로 사용자 상호작용 기간을 초과할 수 있다. 이것은 사용자가 자신의 상호작용 후 소정의 지연 후에 호버/활성 스타일이 깜빡이는 것을 보게 한다.
하나 이상의 실시예에서, 사용자의 상호작용에 응답하여 일반적으로 즉각 감지되는 시각적 피드백을 제공하기 위해, 호버 상태에 있는 엘리먼트의 서브세트를 렌더링하기 위해 터널링 동작의 일부가 부분적으로 행해질 수 있다. 소정 시간 후에 또는 다른 파라미터와 함께, 사용자가 여전히 포인팅 장치로 엘리먼트를 지정하고 있는 것으로 시스템에 의해 감지되면, 호버/활성 상태는 모든 조상 엘리먼트에 완전히 적용하도록 터널링될 수 있다.
고속 상호작용 동안, 사용자는 지정된 엘리먼트에 대한 즉각적인 시각적 피드백을 볼 것이며, 따라서 이들의 터치 상호작용이 성공했음을 확인할 것이다. 소정 기간 후에 지속되는 링거링(lingering) 상호작용 동안, 사용자는 예상대로 포맷의 완전한 적용을 볼 것이다.
일부 예시적인 캐스케이딩 동작을 고려하였으므로, 이제 고능률 캐스케이딩 동작을 가능하게 하기 위해 단일 타이머를 사용하는 일례를 고려해 보자.
단일 타이머를 사용하는 예
도 3은 하나 이상의 실시예에 따라, 단일 타이머를 이용하는 DOM 트리 내의 엘리먼트들의 트리에 캐스케이딩 동작이 어떻게 적용될 수 있는지를 나타내는 도식적 표현이다. 먼저 일반적으로 300으로 도시된 동심 원들의 집합을 고려해 보자. 이 예에서, 각각의 원은 DOM 트리 내의 특정 엘리먼트를 나타낸다. 각각의 보다 큰 원들은 하나 이상의 원을 포함하며 포함된 원의 조상으로 간주될 수 있다. 이와 같이, 이 예에서는, 예시적인 웹페이지가 일반적으로 302로 표현된다. 웹페이지(302)는 304, 306, 308, 및 310에서 다수의 활성화가능한 엘리먼트를 포함한다. 활성화가능한 엘리먼트는 웹페이지의 최상단에 나타날 수 있는 아이템을 나타낸다. 맨 안쪽의 원은 엘리먼트(304)를 나타내도록 대응된다.
또한 동심 원들의 집합에 의해 표현된 엘리먼트들에 대해, 캐스케이딩 동작이 엘리먼트(304)에 대해 정의되었다고 생각해 보자. 이 캐스케이딩 동작은 DOM 트리에 나타나는 엘리먼트(304)의 다른 조상에까지 터널링될 수 있다. 이 특정 예에서, 캐스케이딩 동작이 CSS :hover 의사 클래스의 사용을 통해 정의된다고 가정한다.
이 점에서, 웹페이지(302)에 나타나는 엘리먼트들 중 임의의 엘리먼트와 관련하여 아무런 입력도 수신되지 않았다.
이제, 도 4에서, 이 예에서, 표시된 바와 같이 엘리먼트 상에서 아래로 터치함으로써 사용자가 엘리먼트(304) 상에서 호버링하였다고 가정한다. 그러나, 호버 기능을 호출하기 위해 임의의 적절한 유형의 제스처 입력이 이용될 수 있다. 엘리먼트(304)를 지정하는 입력이 수신되면, 단일 타이머가 시동될 수 있으며 엘리먼트(304)에 대해 정의된 호버 스타일이 즉각 적용될 수 있다. 이 특정 실시예에서, 호버 스타일은 결국 표시된 바와 같이 엘리먼트(304)에 대한 컬러 변화를 만들어 낸다. 소정 기간 후에, 예를 들어 사전 정의된 시간 또는 동적으로 선택가능한 시간이 경과한 후에, 엘리먼트(304)가 여전히 제스처 입력에 의해 지정되고 있으면, 엘리먼트(304)의 다른 조상 엘리먼트는 자신에게도 적용되는 스타일을 정의할 수 있을 것이다.
엘리먼트(304)는 자신의 컬러 변화를 포함하며, 또한, DOM 트리 내의 자신의 조상들 중 하나 이상이 자신에게 적용된 :hover 의사 클래스에 의해 정의된 스타일을 갖는다. 이 특정 예에서, 엘리먼트(304)의 하나의 조상은 이제 보이게 되는 지정가능한 아이템들의 메뉴이다. 정의된 스타일 또는 스타일들의 적용은 DOM 트리 내 지정된 엘리먼트들의 부모 트리에 보이는 조상 엘리먼트 전부에게 적용될 수 있다.
도시 및 기술된 실시예에서, 임의의 적절한 시간, 예컨대 사전 정의된 시간이 이용될 수 있다. 적어도 일부 실시예에서, 고능률 캐스케이딩 동작을 가능하게 하기 위해 300 ms의 사전 정의된 시간이 적용될 수 있다. 적어도 일부 실시예에서, 연구에 따르면 거의 모든 탭이 존속기간이 300 ms보다 작다는 것을 보여주기 때문에 300 ms가 사용될 수 있다.
반면에, 소정 시간 또는 사전에 정의된 시간 내에 사용자가 엘리먼트(304)로부터 자신의 손가락을 치움에 따라 입력 지정 엘리먼트(304)가 제거되면, 스타일은 조상 엘리먼트의 집합에 적용되지 않는다. 이런 방식으로, 반드시 즉각적으로 스타일을 지정된 엘리먼트의 DOM 트리 내에 보이게 되는 엘리먼트들 모두에 적용시키지 않고도, 스타일이 정의된 시각화에 사용자를 점진적으로 몰입시킴으로써 효율성이 얻어진다. 이런 방법으로, 적절히 구성된 웹 브라우저(또는 다른 애플리케이션)가, 엘리먼트의 DOM 트리 내에 다른 포맷을 렌더링할지 여부를 결정하기 위해 소정 기간 대기하는 동안, 로컬라이즈된 포맷을 렌더링함으로써 기본 레벨의 순간적인 시각적 피드백을 제공할 수 있다. 또한, 터치 홀딩 제스처와 같은 보다 긴 사용자 상호작용이 애플리케이션의 호버/활성 포맷의 충분한 효과를 가져오기 때문에 HTML/CSS 프로그래밍 모델과의 호환성이 유지된다.
이 특정 예에서, 엘리먼트(304)를 지정하는 입력의 수신에 응답하여, 스타일 포맷이 처음에 엘리먼트(304)에 적용된 반면에, 타이머의 동작 동안에는 엘리먼트의 조상에 대해 정의된 스타일 포맷이 적용되지 않았다. 적어도 일부 실시예에서, 엘리먼트의 지정 시에, 정의된 엘리먼트 수에 도달하거나 이를 초과하는 엘리먼트의 서브세트를 식별하기 위해 엘리먼트의 DOM 트리를 위쪽으로 가로질러 올라갈 수 있다. 그러면, 처음에 스타일 포맷이 DOM 트리 내의 다른 조상들에게 적용되어야 하는지 확인하기 위해 타이머의 만료를 대기하는 동안 이 엘리먼트의 서브세트에 대해 정의된 스타일 포맷이 일반적으로 즉각 적용될 수 있다.
복수의 타이머를 사용하는 예
일실시예에서, 지정된 엘리먼트와 연관된 DOM 트리 내에 나타나는 조상 엘리먼트에 대해 정의된 스타일 포맷을 언제 적용할지를 결정하기 위해 복수의 타이머가 사용될 수 있다. 일례로서, 일련의 동심 원들의 집합(이들 각각은 600으로 표시되어 있다)을 보여주는 도 6을 고려해 보자. 동심의 집합 내의 각각의 원은 DOM 트리 내의 엘리먼트를 나타낸다. 각각의 개별 동심 원들의 집합은 상이한 시간에서의 지정된 엘리먼트와 연관된 DOM 트리에 나타나는 동일한 복수의 엘리먼트를 나타낸다. 제1 엘리먼트를 지정하는 입력 검출 시에, 제1 엘리먼트에 대해 정의된 스타일 포맷이 적용될 수 있다. 이것은, 맨 안쪽의 원이 음영으로 표시되는 맨 위쪽의 동심 원들의 집합으로 표시된다 제1 엘리먼트가 지정될 때, 제1 타이머가 시동된다. 제1 타이머의 만료 후에, 제1 엘리먼트는 호버 선택의 주체(subject)가 됨으로써 지정된 채로 남으면, 하나 이상의 추가 조상 엘리먼트가 또한 자신에게 적용된 스타일 포맷을 가질 수 있다. 이것은 2개의 추가적인 원이 음영화된 동심 원들의 제2 집합으로 표시된다. 제2 타이머의 만료 시에, 제1 엘리먼트가 지정된 채로 남으면, 하나 이상의 조상 엘리먼트가 자신에게 또한 적용된 스타일 포맷을 가질 수 있다. 이것은 추가적인 원이 음영화된 동심 원의 제3 집합으로 표시된다. 추가적인 타이머 또는 타이머들의 만료 시, 보다 많은 조상 엘리먼트가 자신에게 적용된 스타일 포맷을 가질 수 있다. 이것은 모든 원이 음영으로 표시된 동심 원들의 맨 아래 집합으로 표시된다.
기타 파라미터들
전술한 바와 같이, 캐스케이딩 동작을 점진적으로 적용하는 방법을 확인하기 위해 시간 파라미터 이외의 또는 추가적인 다른 파라미터들이 이용될 수 있다. 예를 들어, 타이머 기반 방식에서, 타이머는 사용자 입력이 어떻게 수신되는지 및/또는 장치의 동작 특성과 같은 것들에 맞게 조정가능할 수 있다. 예를 들어, 타이머는 사용자 입력이 발생하는 속도를 고려하여 조정될 수도 있다. 구체적으로, 일부 사용자는 탭 입력과 같이 다른 사용자보다 더 빨리 입력을 제공할 수도 있다. 이들 예에서, 타이머 또는 타이머들은 보다 빠른(또는 보다 느린) 입력을 고려하여 하향으로(또는 상향으로) 조정될 수 있다. 이에 갈음하여 또는 이에 더하여, 보다 느린 동작 특성을 갖는 것으로 감지되는 장치는 보다 느린 동작 특성을 고려하여 연장된 자신의 관련 타이머 또는 타이머들을 가질 수 있다.
이에 갈음하여 또는 이에 더하여, 최초 또는 후속적인 스타일 포맷이 적용되는 엘리먼트의 수를 선택하기 위해 다양한 휴리스틱(heuristic)이 이용될 수 있다. 예를 들어, 일부 휴리스틱은 스타일 포맷의 엘리먼트 또는 멀티 엘리먼트 단위 마다에 얼마나 복잡한 적용이 있을 수 있는지를 고려할 수 있다. 구체적으로, 이들 예에서, 스타일 포맷의 적용이 통상적으로 얼마나 오래 걸리는지와 연관된 데이터에 기초하여 최초 스타일 포맷 적용에 대해 엘리먼트의 설정 개수가 선택될 수 있다. 예를 들어, 최초 타이머에 대해 300 ms의 사전 정의된 시간을 사용하여, 평균적으로 엘리먼트가 스타일 포맷이 적용되게 하는데 100 ms를 취할 경우, 사용자는 처음에 스타일 포맷을 적용하기 위해 DOM 트리에서 나타나는 첫 번째 2개의 엘리먼트를 선택할 수 있다. 이런 식으로, 사용자가 비주얼 피드백을 감지하는 상호작용 동안 남는 시간으로 포맷이 렌더링될 수 있다. 하나의 타이머만 사용되면, 그 타이머의 만료 후에 조상 트리 내의 나머지 엘리먼트가 스타일 포맷 적용 동안 선택될 수 있다. 복수의 타이머 실시예에서, 최초 타이머의 만료 후에, 조상 트리 내에 나타나는 엘리먼트의 다음 서브세트가 선택될 수 있으며, 이것이 반복된다.
이에 갈음하여 또는 이에 더하여, 스타일 포맷이 적용되는 엘리먼트의 설정 개수를 선택하는 대신, 조상 트리가 횡단됨에 따라, 스타일 포맷을 특정 엘리먼트에 적용하는 것과 연관된 코스트가 계산될 수 있다. 코스트가 소정의 임계치를 초과할 경우, 스타일 포맷의 적용이 종료될 수 있다. 예를 들어 포괄적 작업 단위, CPU 사이클 등을 포함하는 코스트를 계산하기 위해 임의의 적절한 파라미터가 이용될 수 있다.
캐스케이딩 동작이 수행될 수 있는 예시적인 실시예를 살펴봤으므로, 이제 하나 이상의 실시예에 따른 일부 예시적인 방법을 고려해 보자.
예시적인 방법들
도 7은 하나 이상의 실시예에 따른 방법의 단계들을 기술하는 흐름도이다. 이 방법은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합과 관련하여 수행될 수 있다. 적어도 일부 실시예에서, 이 방법은 일부 유형의 컴퓨터 판독가능 저장 매체 상에 구현되어 하나 이상의 프로세서의 영향 하에서 수행될 수 있는 컴퓨터 판독가능한 명령어의 형태로 소프트웨어에 의해 수행될 수 있다. 기술될 기능을 수행할 수 있는 소프트웨어의 예로는 전술한 캐스케이딩 동작 모듈(104) 및 제스처 모듈(105)이 있다.
단계(700)는 캐스케이딩 동작이 정의된 엘리먼트와 연관된 입력을 검출한다. 임의의 적절한 유형의 입력이 이용될 수 있다. 이러한 입력은 예를 들어 터치 제스처 또는 스타일러스 제스처에 의해 수신될 수 있는 터치 입력을 포함한다. 이에 갈음하여 또는 이에 더하여, 이러한 입력은 내츄럴 사용자 인터페이스를 통해 제공된 제스처, 니어 필드 기법을 통해 확인될 수 있는 비터치 제스처, 마우스 클릭 등에 의해 수신될 수 있다. 또한, 예를 들어 CSS 의사 클래스를 통해 정의되는 캐스케이딩 동작을 포함하는 임의의 적절한 유형의 캐스케이딩 동작이 이용될 수 있다.
단계(702)는 단계(700)에서 입력이 검출된 엘리먼트에 대해 캐스케이딩 동작을 적용한다. 단계(704)는 캐스케이딩 동작이 정의된 관련 트리 내의 모든 조상 엘리먼트보다 적은 엘리먼트에 하나 이상의 캐스케이딩 동작을 적용한다. 이 단계는 캐스케이딩 동작이 적용되는 엘리먼트를 확인하기 위해 임의의 적절한 파라미터를 사용하는 임의의 적절한 방법으로 수행될 수 있다. 이러한 파라미터는, 예를 들어, 시간 기반 파라미터 및/또는 시간 기반 파라미터 이외의 다른 파라미터를 포함할 수 있다. 또한, 단계(704)를 처음 수행한 후에, 그러한 단계는 추가적인 엘리먼트 및 관련 트리 내의 모든 조상 엘리먼트보다 적은 엘리먼트, 또는 모든 나머지 조상 엘리먼트 상에서 후속적으로 수행될 수 있다.
도 8은 하나 이상의 실시예에 따른 다른 방법에서의 단계들을 기술하는 흐름도이다. 이 방법은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합과 관련항 수행될 수 있다. 적어도 일부 실시예에서, 이 방법은 일부 유형의 컴퓨터 판독가능 저장 매체 상에 구현되어 하나 이상의 프로세서의 영향 하에서 수행될 수 있는 컴퓨터 판독가능한 명령어의 형태로 소프트웨어에 의해 수행될 수 있다. 기술될 기능을 수행할 수 있는 소프트웨어의 예로는 전술한 캐스케이딩 동작 모듈(104) 및 제스처 모듈(105)이 있다.
단계(800)는 캐스케이딩 동작이 정의된 엘리먼트와 연관된 입력을 검출한다. 임의의 적절한 유형의 입력이 이용될 수 있다. 이러한 입력은 예를 들어 터치 제스처 또는 스타일러스 제스처에 의해 수신될 수 있는 터치 입력을 포함한다. 이에 갈음하여 또는 이에 더하여, 이러한 입력은 내츄럴 사용자 인터페이스를 통해 제공된 제스처, 니어 필드 기법을 통해 확인될 수 있는 비터치 제스처, 마우스 클릭 등에 의해 수신될 수 있다. 또한, 예를 들어 CSS 의사 클래스를 통해 정의되는 캐스케이딩 동작을 포함하는 임의의 적절한 유형의 캐스케이딩 동작이 이용될 수 있다.
단계(802)는 타이머를 시동시킨다. 임의의 적절한 유형의 타이머가 이용될 수 있으며, 그 예는 위에 제시되어 있다. 단계(804)는 단계(800)에서 입력이 검출된 엘리먼트에 대해 캐스케이딩 동작을 적용한다. 단계(806)는 타이머가 만료되었는지 여부를 확인한다. 타이머가 만료되지 않았으면, 단계(808)는 단계(800)로부터의 입력이 여전히 검출되는지 여부를 확인한다. 입력이 검출되지 않으면, 단계(810)는 캐스케이딩 동작의 적용을 중지한다. 반면에, 단계(808)에서 입력이 여전히 검출되면, 단계(812)는 적용된 캐스케이딩 동작을 계속하고 단계(806)로 리턴한다.
단계(806)에서, 타이머가 만료되면, 단계(814)는 단계(800)로부터의 입력이 엘리먼트 상에서 여전히 검출되는지 여부를 확인한다. 입력이 검출되지 않으면, 단계(816)는 적용된 캐스케이딩 동작을 중지한다. 반면에, 단계(800)로부터의 입력이 여전히 검출되면, 단계(818)는 단계(804)에서 캐스케이딩 동작이 적용된 엘리먼트의 하나 이상의 제각기의 조상 엘리먼트에 적어도 하나의 캐스케이딩 동작을 적용한다. 단계(818)에 의해 적용된 캐스케이딩 동작은 조상 엘리먼트의 서브세트에 적용될 수 있다. 이에 갈음하여 또는 이에 더하여, 캐스케이딩 동작은 모든 조상 엘리먼트에 적용될 수 있다. 어떻게 이것이 행해질 수 있는지에 대한 예는 위에 제공되어 있다.
하나 이상의 실시예에 따른 예시적인 방법을 검토하였으므로, 이제 구현예를 살펴보기로 하자.
구현예
전술한 바와 같이, 웹 페이지에서, 사용자는 포인팅 장치 또는 다른 기구를 사용하여 엘리먼트를 지정할 수 있다. 엘리먼트가 지정될 경우, 그 엘리먼트는 CSS "호버" 상태에 있는 것으로 간주된다. 또한, 전술한 바와 같이, 주어진 엘리먼트가 "호버 상태"로 지정되면 그것의 모든 조상이 호버 상태에 있는 것으로 간주되도록 CSS는 이 정의를 확장한다. "호버" 상태를 지정된 엘리먼트의 부모 또는 조상에게 전파하는 프로세스는 "호버 터널링(tunneling the hover)"으로 알려져 있다. 그래서 컨텐츠 저작자는 :hover CSS 의사 선택자를 사용하여 스타일 포맷 규칙을 호버 상태에 있는 엘리먼트에 적용할 수 있다. 예를 들어, 다음의 CSS는 모든 DIV 엘리먼트가 호버 상태에 있는 동안 이들에게 경계(border)를 적용할 것이다.
div:hover {border: lpx solid black;}
주어진 엘리먼트가 반드시 그 부모가 차지하는 공간의 서브세트를 차지하지는 않는다는 점에 주의하라. 예를 들어, 다음의 코드 샘플과 관련하여 도 9를 검토해보자.
Figure pct00001
여기서, 900에서 지정된 최상위 엘리먼트 A 및 B에서, 엘리먼트 A는 엘리먼트 B의 부모 엘리먼트이다. 그러나, 엘리먼트들은 렌더링에서 완전히 상이한 공간을 차지한다. 이 때문에, 그리고 CSS 호버 상태가 터널링하기 때문에, 엘리먼트가 포인팅 장치에 의해 특별히 지정되지 않음에도 불구하고 호버 스타일 포맷을 갖는 것이 가능하다. 사용자가 엘리먼트 A에 대해 입력을 제공할 경우, 그 포맷은 902에서 지정된 가장 중간 엘리먼트 A 및 B에서와 같이 적용된다. 이제, 사용자가 904에서 지정된 최하위 엘리먼트 A 및 B에서와 같이 엘리먼트 B에서 "click Me" 링크를 지정하면, 포맷이 "Click Me" 링크에 그리고 적용될 엘리먼트 A에 대한 호버 규칙 내의 배경색 포맷에 대해 적용된다.
전술한 방법을 이용하여, "Click Me" 링크의 호버 스타일이 처음에 적용된 후에 조상 호버 스타일(B 및 A에 대한)이 타이머 후에 적용된다. 일실시예에서, 단일 엘리먼트가 최초 포맷 애플리케이션에 사용된다.
구현예를 검토하였으므로, 이제 전술한 하나 이상의 실시예를 구현하는데 이용될 수 있는 예시적인 장치를 살펴보자.
예시적인 장치
도 10은 본 명세서에 기재된 애니메이션 라이브러리의 실시예를 구현하기 위해 도 1 및 2를 참조하여 설명한 임의의 유형의 휴대용 및/또는 컴퓨터 장치로서 구현될 수 있는 예시적인 장치(1000)의 다양한 컴포넌트를 도시한 것이다. 장치(1000)는 장치 데이터(1004)(예컨대, 수신된 데이터, 수신 중인 데이터, 브로드캐스트를 위해 스케줄된 데이터, 데이터의 데이터 패킷 등)의 유선 및/또는 무선 통신을 가능하게 하는 통신 장치(1002)를 포함한다. 장치 데이터(1004) 또는 다른 장치 컨텐츠는 장치의 환경 설정, 장치에 저장된 미디어 컨텐츠, 및/또는 장치의 사용자와 연관된 정보를 포함할 수 있다. 장치(1000)에 저장된 미디어 컨텐츠는 임의의 유형의 오디오, 비디오, 및/또는 이미지 데이터를 포함할 수 있다. 장치(1000)는 하나 이상의 데이터 입력부(1006)를 포함하는데, 이를 통해 사용자 선택가능한 입력, 메시지, 음악, 텔레비전 미디어 컨텐츠, 녹화된 비디오 컨텐츠, 및 임의의 컨텐츠 및/또는 데이터 소스로부터 수신된 오디오, 비디오, 및/또는 이미지 데이터와 같이, 임의의 유형의 데이터, 미디어 컨텐츠, 및/또는 입력이 수신될 수 있다.
장치(1000)는 또한 하나 이상의 직렬 및/또는 병렬 인터페이스, 무선 인터페이스, 임의의 유형의 네트워크 인터페이스, 모뎀, 및 임의의 다른 유형의 통신 인터페이스 중 하나 이상으로서 구현될 수 있다. 통신 인터페이스(1008)는 장치(1000)와 통신망 사이에 다른 전자, 컴퓨팅, 및 통신 장치가 장치(1000)와 데이터를 통신하게 하는 접속 및/또는 통신 링크를 제공한다.
장치(1000)는 장치(1000)의 동작을 제어하고 전술한 실시예를 구현하기 위한 다양한 컴퓨터 실행가능 또는 판독가능 명령어를 처리하는 하나 이상의 프로세서(1010)(예컨대, 마이크로프로세서, 컨트롤러 등 중 어느 하나)를 포함한다. 이에 갈음하여 또는 이에 더하여, 장치(1000)는 일반적으로 1012로 표시된 프로세싱 및 제어 회로와 관련하여 구현되는 하드웨어, 펌웨어 또는 고정된 로직 회로 중 어느 하나 또는 이들의 조합으로 구현될 수 있다. 도시되어 있지는 않지만, 장치(1000)는 장치 내에서 다양한 컴포넌트들을 결합하는 시스템 버스 또는 데이터 전송 시스템을 포함할 수 있다. 시스템 버스는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, USB(universal serial bus), 및/또는 다양한 버스 구조들 중 어느 하나를 이용하는 프로세서 또는 로컬 버스와 같은 상이한 버스 구조들 중 어느 하나 또는 이들의 조합을 포함할 수 있다.
장치(1000)는 또한 하나 이상의 메모리 컴포넌트와 같은 컴퓨터 판독가능 매체(1014)를 포함하는데, 그 예로는 RAM(random access memory), 비휘발성 메모리(예컨대, ROM(read-only memory), 플래시 메모리, EPROM, EEPROM 등), 및 디스크 저장 장치를 들 수 있다. 디스크 저장 장치는 하드 디스크 드라이브, 기록가능(recordable) 및/또는 재기록가능(rewriteable) 컴팩트 디스크(CD)와 같은 임의의 유형의 자기 또는 광학 저장 장치, 임의의 유형의 DVD(digital versatile disc) 등으로 구현될 수 있다. 장치(1000)는 또한 대용량 기억 매체 장치(1016)를 포함할 수 있다.
컴퓨터 판독가능 매체(1014)는 장치 데이터(1004)와, 다양한 장치 애플리케이션(1018) 및 임의의 다른 유형의 정보 및/또는 장치(1000)의 동작 특성과 관련된 데이터를 저장하기 위한 데이터 저장 메커니즘을 제공한다. 예를 들어, 운영 체제(1020)는 컴퓨터 판독가능 매체(1014)에 의해 그리고 프로세서(1010) 상에서 실행되는 컴퓨터 애플리케이션으로서 유지될 수 있다. 장치 애플리케이션(1018)은 장치 관리자(예컨대, 제어 애플리케이션, 소프트웨어 애플리케이션, 신호 처리 및 제어 모듈, 특정 장치에 고유한 코드, 특정 장치에 대한 하드웨어 추상화 계층 등)와, 웹 브라우저, 이미지 처리 애플리케이션, 인스턴트 메시징 애플리케이션과 같은 통신 애플리케이션, 워드 프로세싱 애플리케이션 및 다양한 다른 애플리케이션을 포함할 수 있는 기타 애플리케이션을 포함할 수 있다. 장치 애플리케이션(1018)은 또한 본 명세서에 기술된 기법들의 실시예를 구현하는 임의의 시스템 컴포넌트 또는 모듈을 포함할 수 있다. 이 예에서, 장치 애플리케이션(1018)은 소프트웨어 모듈 및/또는 컴퓨터 애플리케이션으로서 보여지는 인터페이스 애플리케이션(1022) 및 제스처 캡처 드라이버(1024)를 포함한다. 제스처 캡처 드라이버(1024)는 터치스크린, 트랙 패드, 카메라 등과 같은 제스처를 캡처하도록 구성된 장치와의 인터페이스를 제공하는데 사용되는 소프트웨어의 전형이다. 이에 갈음하여 또는 이에 더하여, 인터페이스 애플리케이션(1022) 및 제스처 캡처 드라이버(1024)는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로서 구현될 수 있다. 또한, 컴퓨터 판독가능 매체(1014)는 전술한 바와 같이 기능하는 캐스케이딩 동작 모듈(1025a) 및 제스처 모듈(1025b)을 포함할 수 있다.
장치(1000)는 또한 오디오 데이터를 오디오 시스템(1028)에 제공하고/또는 비디오 데이터를 디스플레이 시스템(1030)에 제공하는 오디오 및/또는 비디오 입력-출력 시스템(1026)을 포함한다. 오디오 시스템(1028) 및/또는 디스플레이 시스템(1030)은 오디오, 비디오, 및 이미지 데이터를 처리, 디스플레이, 및/또는 렌더링하는 임의의 장치를 포함할 수 있다. 비디오 신호 및 오디오 신호는 RF(radio frequency) 링크, S-비디오 링크, 합성 비디오 링크, 컴포넌트 비디오 링크, DVI(digital video interface), 아날로그 오디오 커넥션, 또는 기타 유사한 통신 링크를 통해 장치(1000)로부터 오디오 장치 및/또는 디스플레이 장치로 전달될 수 있다. 일실시예에서, 오디오 시스템(1028) 및/또는 디스플레이 시스템(1030)은 장치(1000)에 대한 외부 컴포넌트로서 구현된다. 또는 오디오 시스템(1028) 및/또는 디스플레이 시스템(1030)은 예시적인 장치(1000)의 통합된 컴포넌트로서 구현된다.
결론
다양한 실시예들은 엘리먼트들 중 하나의 엘리먼트와 연관된 입력을 수신하는 것에 응답하여 계층 트리 내의 지정된 엘리먼트에 대해 캐스케이딩 동작의 서브세트를 선택적으로 적용함으로써 고능률 캐스케이딩 동작(performant cascading operation)이 수행될 수 있게 한다. 다양한 파라미터에 따라, 캐스케이딩 동작의 서브세트를 수행하는 것에 후속하여 캐스케이딩 동작의 풀 세트가 수행될 수 있다.
하나 이상의 실시예에서, 캐스케이딩 동작의 서브세트는 수신된 입력에 대해, 예컨대 사용자 상호작용 타이밍, 주어진 엘리먼트에 대한 캐스케이딩 동작의 복잡도, 및/또는 캐스케이딩 동작이 적용될 수 있는 엘리먼트의 개수를 포함하는 파라미터에 기초하여 결정될 수 있다.
구조적 특징 및/또는 방법론적 동작에 특정된 언어로 실시예들을 설명하였지만, 첨부된 청구범위에 정의된 실시예들은 반드시 기술된 특정한 특징 또는 동작으로 제한되지는 않는다. 오히려, 특정한 특징들 및 동작들은 청구된 실시예를 구현하는 예시적인 형태로서 기술되어 있다.

Claims (10)

  1. 캐스케이딩 동작(cascading operation)이 정의된 엘리먼트와 연관된 입력을 검출하는 단계와,
    상기 캐스케이딩 동작을 상기 엘리먼트에 적용하는 단계와,
    하나 이상의 캐스케이딩 동작을 캐스케이딩 동작이 정의된 관련 트리 내의 모든 조상 엘리먼트보다 적은 엘리먼트에 적용하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 검출하는 단계는 터치 입력을 검출하는 단계를 포함하는
    방법.
  3. 제1항에 있어서,
    상기 검출하는 단계는 비터치 입력을 검출하는 단계를 포함하는
    방법.

  4. 제1항에 있어서,
    상기 캐스케이딩 동작은 적어도 하나의 CSS 의사 클래스(pseudo-class)를 통해 정의된 캐스케이딩 동작을 포함하는
    방법.
  5. 제1항에 있어서,
    상기 하나 이상의 캐스케이딩 동작은 상기 하나 이상의 캐스케이딩 동작을 언제 적용할지 확인하기 위해 시간 기반 파라미터를 사용함으로써 수행되는
    방법.
  6. 제1항에 있어서,
    상기 하나 이상의 캐스케이딩 동작을 적용하는 단계는 상기 하나 이상의 캐스케이딩 동작을 적용할 조상 엘리먼트를 확인하기 위해 적어도 시간 기반 파라미터 이외의 다른 파라미터를 사용함으로써 수행되는
    방법.

  7. 제1항에 있어서,
    상기 하나 이상의 캐스케이딩 동작을 적용한 후에 하나 이상의 추가적인 캐스케이딩 동작을 추가적인 조상 엘리먼트에 적용하는 단계를 더 포함하는
    방법.
  8. 실행될 경우 방법을 구현하는 컴퓨터 판독가능한 명령어를 포함하는 하나 이상의 컴퓨터 판독가능한 저장 매체로서,
    상기 방법은
    캐스케이딩 동작이 정의된 엘리먼트와 연관된 입력을 검출하는 단계와,
    상기 검출에 응답하여, 타이머를 시동시키는 단계와,
    상기 캐스테이딩 동작을 상기 엘리먼트에 적용하는 단계와,
    상기 타이머의 만료 및 상기 입력이 여전히 검출되고 있는 것에 응답하여, 입력이 검출된 상기 엘리먼트의 하나 이상의 제각기의 조상 엘리먼트에 적어도 하나의 캐스케이딩 동작을 적용하는 단계
    를 포함하는 컴퓨터 판독가능한 저장 매체.
  9. 제8항에 있어서,
    상기 검출하는 단계는 터치 입력을 검출하는 단계를 포함하는
    컴퓨터 판독가능한 저장 매체.
  10. 제8항에 있어서,
    상기 캐스케이딩 동작은 적어도 하나의 CSS 의사 클래스를 통해 정의된 캐스케이딩 동작을 포함하는
    컴퓨터 판독가능한 저장 매체.
KR1020147018608A 2012-01-06 2013-01-06 고능률 캐스케이딩 동작을 가능하게 하는 기법 KR20140116400A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CA2763316 2012-01-06
CA2763316A CA2763316C (en) 2012-01-06 2012-01-06 Enabling performant cascading operations
US13/363,046 2012-01-31
US13/363,046 US20130179776A1 (en) 2012-01-06 2012-01-31 Enabling Performant Cascading Operations
PCT/US2013/020430 WO2013103926A1 (en) 2012-01-06 2013-01-06 Enabling performant cascading operations

Publications (1)

Publication Number Publication Date
KR20140116400A true KR20140116400A (ko) 2014-10-02

Family

ID=45874481

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147018608A KR20140116400A (ko) 2012-01-06 2013-01-06 고능률 캐스케이딩 동작을 가능하게 하는 기법

Country Status (7)

Country Link
US (1) US20130179776A1 (ko)
EP (1) EP2801018A4 (ko)
JP (1) JP6175682B2 (ko)
KR (1) KR20140116400A (ko)
CN (1) CN104025008A (ko)
CA (1) CA2763316C (ko)
WO (1) WO2013103926A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150161087A1 (en) * 2013-12-09 2015-06-11 Justin Khoo System and method for dynamic imagery link synchronization and simulating rendering and behavior of content across a multi-client platform
US10282402B2 (en) 2017-01-06 2019-05-07 Justin Khoo System and method of proofing email content
US11102316B1 (en) 2018-03-21 2021-08-24 Justin Khoo System and method for tracking interactions in an email

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2236063C (en) * 1998-04-28 2005-07-12 Ibm Canada Limited-Ibm Canada Limitee Multi-variable graphical interface and method
US6741967B1 (en) * 1998-11-02 2004-05-25 Vividence Corporation Full service research bureau and test center method and apparatus
US7086060B2 (en) * 2001-02-15 2006-08-01 Sun Microsystems, Inc. Method for programmatic representation and enforcement of resource controls
US7058902B2 (en) * 2002-07-30 2006-06-06 Microsoft Corporation Enhanced on-object context menus
US20040168005A1 (en) * 2003-02-21 2004-08-26 Sun Microsystems, Inc. Methods for interrupting a program and for obtaining program execution acquisition
US7480863B2 (en) * 2003-11-26 2009-01-20 International Business Machines Corporation Dynamic and intelligent hover assistance
US7523413B2 (en) * 2004-06-14 2009-04-21 At&T Intellectual Property I, L.P. Organizing session applications
JPWO2006137562A1 (ja) * 2005-06-24 2009-01-22 株式会社ジャストシステム 文書処理装置及び文書処理方法
US20070106667A1 (en) * 2005-11-10 2007-05-10 Microsoft Corporation Generalized deadlock resolution in databases
EP1969452A2 (en) * 2005-12-30 2008-09-17 Apple Inc. Portable electronic device with multi-touch input
US7714864B2 (en) * 2006-11-16 2010-05-11 Microsoft Corporation Visual resource profiler for graphical applications
US20080320408A1 (en) * 2007-06-21 2008-12-25 Dziezanowski Joseph J Devices, Systems, and Methods Regarding Machine Vision User Interfaces
US8086957B2 (en) * 2008-05-21 2011-12-27 International Business Machines Corporation Method and system to selectively secure the display of advertisements on web browsers
KR101446141B1 (ko) * 2008-06-02 2014-10-01 삼성전자주식회사 트리 구조의 메뉴 브라우징 방법 및 장치
US20100107067A1 (en) * 2008-10-27 2010-04-29 Nokia Corporation Input on touch based user interfaces
US9542222B2 (en) * 2008-11-14 2017-01-10 Oracle International Corporation Resource broker system for dynamically deploying and managing software services in a virtual environment based on resource usage and service level agreement
KR101069294B1 (ko) * 2009-02-11 2011-10-05 주식회사 아이리버 휴대용 멀티미디어 단말기 및 그 바탕화면 구성방법
JP5523090B2 (ja) * 2009-12-25 2014-06-18 キヤノン株式会社 入力装置、入力装置の制御方法、プログラムおよび記憶媒体

Also Published As

Publication number Publication date
JP2015531086A (ja) 2015-10-29
CA2763316A1 (en) 2012-03-22
EP2801018A4 (en) 2015-11-25
CN104025008A (zh) 2014-09-03
US20130179776A1 (en) 2013-07-11
CA2763316C (en) 2014-09-30
EP2801018A1 (en) 2014-11-12
JP6175682B2 (ja) 2017-08-09
WO2013103926A1 (en) 2013-07-11

Similar Documents

Publication Publication Date Title
CA2798507C (en) Input pointer delay and zoom logic
US9152529B2 (en) Systems and methods for dynamically altering a user interface based on user interface actions
US7480863B2 (en) Dynamic and intelligent hover assistance
US20140372923A1 (en) High Performance Touch Drag and Drop
WO2019184490A1 (zh) 用于显示寄宿应用的图标的方法、设备和存储介质
KR20140058510A (ko) 온디맨드 탭 리하이드레이션 기법
US20130063446A1 (en) Scenario Based Animation Library
US20120131503A1 (en) Application displaying method for touch-controlled device and touch-controlled device thereof
WO2014089741A1 (en) Techniques and apparatus for managing touch interface
US20130201107A1 (en) Simulating Input Types
RU2600544C2 (ru) Навигационный пользовательский интерфейс с поддержкой сосредоточенного на странице восприятия просмотра на основе распознавания прикосновений или жестов
KR20140109926A (ko) 입력 포인터 지연 기법
EP2801012B1 (en) Supporting different event models using a single input source
JP6175682B2 (ja) 効率的なカスケードオペレーションの実現
US20130067315A1 (en) Virtual Viewport and Fixed Positioning with Optical Zoom
US20090083757A1 (en) Computer system and program plug-in management method thereof

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application