KR20130103450A - 프로그레스 바 - Google Patents

프로그레스 바 Download PDF

Info

Publication number
KR20130103450A
KR20130103450A KR1020130025869A KR20130025869A KR20130103450A KR 20130103450 A KR20130103450 A KR 20130103450A KR 1020130025869 A KR1020130025869 A KR 1020130025869A KR 20130025869 A KR20130025869 A KR 20130025869A KR 20130103450 A KR20130103450 A KR 20130103450A
Authority
KR
South Korea
Prior art keywords
task
progress
progress bar
completion status
threshold
Prior art date
Application number
KR1020130025869A
Other languages
English (en)
Other versions
KR101562098B1 (ko
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 KR20130103450A publication Critical patent/KR20130103450A/ko
Application granted granted Critical
Publication of KR101562098B1 publication Critical patent/KR101562098B1/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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials

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)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)
  • Debugging And Monitoring (AREA)

Abstract

일부 실시예들은 그래픽 사용자 인터페이스에서의 향상된 프로그레스 표시자를 제공하는 것에 관한 것이다. 사용자에게 태스크의 완료 상태를 전달하는 것 이외에, 향상된 프로그레스 표시자는 일부 실시예들에서 사용자에게 태스크에 관한 부가적인 정보를 전달할 수 있다. 예를 들어, 일부 실시예들은 태스크가 "실질적으로 완료"임을 표시하는 트리비얼리티 임계값이 충족될 때 시각적 신호를 디스플레이할 수 있다.
향상된 프로그레스 바는 사용자의 예상들을 적절하게 관리하는 방식으로 사용자에게 태스크의 완료 상태를 전달할 수 있다. 브라우저 애플리케이션은 웹페이지를 로딩하기 위한 시간을 초과 추정하고, 이로써 프로그레스 바에서의 완료 상태 표시자가 더 느린 레이트로 증분하도록 할 수 있다. 완료 상태 표시자가 증분하는 레이트는 브라우저 애플리케이션이 남아있는 로드 시간의 추정을 업데이트할 때 조절될 수 있다. 태스크(즉, 웹페이지의 로딩)의 완료 상태를 언더 리포트함으로써, 프로그레스 바의 끝을 향해 멈추는 완료 상태 표시자의 가능성이 최소화되고, 이로써 태스크의 완료에 대한 사용자의 예상들이 적절하게 관리될 수 있게 한다.
사용자에게 태스크의 완료 상태를 전달하는 것 이외에, 프로그레스 바는 태스크가 실질적으로 완료되었다는(예를 들어, 웹페이지의 필수 요소들이 로딩되었다는) 시각적 표시 다음에, 특정 피처 또는 기능이 인에이블되었다고 사용자에게 통지하는 다른 시각적 표시를 디스플레이할 수 있다. 예를 들어, 트리비얼리티 임계값이 태스크가 임계값 정도로 완료되었음을 표시할 때 시각적 신호(예를 들어, 로켓 효과)를 디스플레이하는 것 이외에, 피처의 상태가 수정되었다고 결정하는 것에 응답하여 다른 표시자가 디스플레이될 수 있다. 트리비얼리티 임계값이 충족될 때 피처의 상태가 수정되었다고 결정하는 것 및 따라서 시각적 표시를 바로 뒤따르는 다른 시각적 표시자를 디스플레이하는 것은 피처의 시각적 인에이블먼트(visual enablement)에 사용자의 주의를 유도함에 있어서 극적인 시각적 신호를 생성한다.
사용자에게 태스크의 완료 상태를 전달하는 것 이외에, 향상된 프로그레스 바는 사용자에게 태스크에 관한 부가적인 정보를 전달할 수 있다. 예를 들어, 일부 실시예들은 태스크가 완료되고 있는 레이트를 전달하는 프로그레스 바에서의 애니메이션의 타입을 제시할 수 있다. 상이한 타입의 애니메이션은 상이한 레이트에서 태스크의 수행을 나타낼 수 있다. 예를 들어, 웹페이지가 .5 Gb/s로 로딩하고 있을 때와 달리 웹페이지가 5 Mb/s로 로딩하고 있을 때에 상이한 애니메이션이 디스플레이될 수 있다. 또한, 일부 실시예들에서, 상이한 타입들의 애니메이션은 상이한 타입들의 태스크들을 나타낼 수 있다.

Description

프로그레스 바{PROGRESS BAR}
본 개시는 일반적으로 프로그레스 바(progress bar)들에 관한 것이고, 특히, 사용자의 경험을 향상시킬 수 있는 프로그레스 바들에 대한 다양한 개선들에 관한 것이다.
프로그레스 바(때때로 상태 표시줄, 또는 완료 상태 표시줄이라고도 함)는 보통 웹페이지의 로딩, 파일 다운로드, 데이터 전송 등과 같은 태스크 또는 프로세스의 완료 상태를 전달하는 데 이용된다. 상이한 애플리케이션 프로그램들은 다양한 상이한 문맥들에서 프로그레스 바들을 이용할 수 있다. 일 예에서, 브라우저 애플리케이션은 사용자에게 제시를 위해 로딩되는 웹페이지의 완료 상태를 표시하기 위해 프로그레스 바를 이용할 수 있다. 웹페이지를 위한 URL(uniform resource locator)의 사용자 선택에 응답하여, 브라우저 애플리케이션은 웹페이지의 로딩에 대한 완료 상태를 전달하는 프로그레스 바를 디스플레이할 수 있다. 프로그레스 바는 웹페이지의 로딩에 대한 완료 상태가 변함에 따라 업데이트될 수 있다. 이와 같이, 프로그레스 바를 통해, 사용자는 웹페이지의 로딩을 위한 총 완료 시간을 대략 추정할 수 있다.
프로그레스 바는 통상적으로 수행되는 태스크 또는 동작의 완료 상태를 시각적으로 나타내는 완료 상태 표시자를 포함한다. 완료 상태 표시자는 예를 들어, 시작 위치로부터 종료 위치를 향해 이동하는 슬라이더 바의 형태로 될 수 있고, 여기서 종료 위치에 도달하는 것은 태스크 또는 동작의 완료를 표시한다. 이러한 실시예에서, 완료 상태 표시자의 위치는 사용자에게 태스크 또는 동작의 완료 상태(예를 들어, 태스크가 완료되고 있는 퍼센티지)를 전달할 수 있다. 사용자는 태스크 또는 동작을 위한 완료 시간의 근사치를 내기 위해 완료 상태 표시자에 의해 전달된 정보를 이용할 수 있다.
종래의 프로그레스 바들은 많은 문제가 있다. 먼저, 현대 컴퓨팅 시스템들의 복잡성으로 인해, 디스크, 메모리, 프로세서, 대역폭 및 다른 인자들을 변화시키는 것은, 기존의 프로그레스 바들이 가속, 감속, 및 일시정지와 같은 비선형 거동들을 나타내도록 할 수 있다. 이러한 프로그레스 바들의 불규칙 거동은 사용자에게 추정된 완료 시간을 전달함에 있어서 프로그레스 바들이 느리고, 투박하고, 부정확하게 보이도록 할 수 있다.
본 발명의 특정 실시예들은 사용자의 컴퓨팅 경험을 향상시키는 그래픽 사용자 인터페이스(GUI) 상의 개선된 프로그레스 바를 디스플레이하기 위한 기법들을 제공한다.
일부 실시예들에서, 트리비얼리티 임계값(triviality threshold)이 충족될 때 사용자에게 경보하기 위해 프로그레스 바에 시각적 신호(cue)가 제공될 수 있다. 트리비얼리티 임계값은 태스크가 실제로 완료되었는지에 상관없이 보통 사람이 태스크를 완료된 것으로 생각하는 임계값을 가리킬 수 있다. 예를 들어, 보통 사람은 다양한 이미지들, 광고들, 하이퍼링크들 등을 포함하여 페이지의 나머지 요소들이 로딩되었는지에 상관없이, 하나 이상의 스포츠 용품이 가시적으로 된 순간에 충족될 특정 스포츠 웹페이지를 로딩하기 위한 트리비얼리티 임계값을 고려할 수 있다. 시각적 신호는 프로그레스 바에서의 완료 상태 표시자의 가속 진행의 애니메이션일 수 있다. 트리비얼리티 임계값이 충족될 때 시각적 신호를 제공함으로써, 사용자는 전체 페이지가 로딩될 때까지 기다려야 하는 대신에, 전체 페이지가 로딩되었는지에 상관없이 페이지의 "필수" 부분들을 볼 수 있는 때를 통지받을 수 있다.
프로그레스 바는 진행중인 태스크의 완료 상태를 언더 리포트(underreport)하는 완료 상태 표시자를 디스플레이할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션은 웹페이지에 대한 로딩 시간을 초과 추정하고(overestimate) 이로써 추정된 로드 시간에 따른 레이트에서 프로그레스 바에서의 완료 상태 표시자를 증분(increment)할 수 있다. 예를 들어, 브라우저 애플리케이션은 로딩 시간을 10초인 것으로 초과 추정하고, 프로그레스 바가 태스크의 완료를 10초 내로 나타내도록 하는 방식으로(예를 들어, (프로그레스 바에서의 총 픽셀 수)/10s의 레이트에서) 프로그레스 바에서의 완료 상태 표시자를 증분할 수 있다. 프로그레스 바에서 태스크의 실제 상태를 언더 리포트함으로써 완료 상태 표시자가 프로그레스 바의 끝을 행해 멈추는 가능성을 최소화한다. 또한, 일부 실시예들은 프로그레스 바에서의 완료 상태 표시자를 매끄러운(smooth) 방식으로 업데이트할 수 있다. 일부 실시예들에서, 선형 함수들은 특정 간격들 내에서 완료 상태 표시자의 진행을 애니메이션할 위치를 결정하는 데 이용될 수 있다. 이것은 불연속 점프들(discrete jumps)을 없애고 리포트된 상태의 진행에 유동성을 추가하여 프로그레스 바가 사용자에게 더욱 직관적으로 보일 수 있게 한다.
일부 실시예들에서, 태스크가 임계값 정도로 완료됨을 표시하는 임계값(트리비얼리티 임계값이라고도 함)이 충족되면 사용자에게 경보하기 위해 시각적 신호가 제공될 수 있다. 시각적 신호는 프로그레스 바의 완료 상태 표시자의 가속 진행의 애니메이션일 수 있다. 일부 실시예들에서, 사용자 인터페이스(UI) 요소가 디스플레이되는 방식은 프로그레스 바의 디스플레이와 관련이 있을 수 있다. 예를 들어, GUI 요소는 프로그레스 바에서의 완료 상태 표시자에 의해 표시된 위치 또는 완료 상태에 응답하여 시각적으로 인에이블(enable)될 수 있다. 일부 예들에서, GUI는 트리비얼리티 임계값이 충족되고 완료 상태 표시자가 완료된 상태를 보여주기 위해 애니메이션되면 시각적으로 인에이블되는(즉, 그의 기능이 인에이블되는) 버튼(예를 들어, 판독기 기능에 대응하는 버튼)을 포함할 수 있다. 이러한 식으로, UI 요소의 시각적 디스플레이는 프로그레스 바에 의해 표시되는 완료 상태에 응답하여 변화될 수 있다. 일 실시예에서, UI 요소는 UI 요소에 대한 사용자의 주의를 끌기 위한 방식으로 시각적으로 디스플레이 및 수정될 수 있다.
태스크 또는 동작의 완료 상태를 디스플레이하는 것 이외에, 프로그레스 바는 일부 실시예들에서 특정 시점에서 태스크가 수행되고 있는 속도를 시각적으로 표시할 수 있다. 상이한 타입들의 애니메이션들은 태스크가 수행되고 있는 속도 및/또는 태스크를 나타낼 수 있다. 예를 들어, 프로그레스 바는 수행되고 있는 특정 태스크 또는 동작의 속도를 표시하는 웨이브 또는 리플의 속도로 애니메이션된 웨이브 또는 리플을 디스플레이할 수 있다. 이 예에서, 더 높은 주파수(즉, 더 짧은 파장)의 웨이브 또는 리플은 태스크가 수행되고 있는 더 빠른 속도 또는 더 높은 레이트를 표시한다(예를 들어, 웹페이지가 .5MB/s에서 로딩되고 있을 때, 웨이브 또는 리플은 한 애니메이션 속도에서 디스플레이될 수 있고, 로딩 레이트가 1GB/s에 있을 때, 웨이브 또는 리플은 더 빠른 애니메이션 속도에서 디스플레이될 수 있다). 애니메이션의 속도는 태스크 또는 동작이 수행되고 있는 레이트에 대해 사용자에게 시각적 신호를 제공할 수 있다.
일부 실시예들은, 컴퓨팅 장치에 의해, 수행되고 있는 태스크에 대한 완료 상태 표시자를 시각적으로 디스플레이하는 프로그레스 바를 디스플레이하는 방법을 제공하고, 상기 완료 상태 표시자는 상기 태스크의 완료 상태를 표현한다. 일부 실시예들에서, 상기 방법은 상기 프로그레스 바가 상기 태스크의 완료를 나타내는 것으로서 디스플레이될 때를 표시하는 트리비얼리티 임계값을 결정한다. 상기 트리비얼리티 임계값은 상기 태스크의 완료 이전 시간을 표시할 수 있다. 상기 트리비얼리티 임계값에 도달하면, 상기 방법은 일부 실시예들에서 상기 프로그레스 바가 상기 태스크의 완료를 나타내도록 한다.
일부 실시예들에서, 상기 프로그레스 바가 상기 태스크의 완료를 나타내도록 하는 방법은, 상기 프로그레스 바에서의 상기 완료 상태 표시자의 현재 위치를 결정하는 단계 및 상기 태스크의 완료를 표시하기 위해 상기 프로그레스 바에서의 상기 완료 상태 표시자를 상기 현재 위치로부터 상기 프로그레스 바의 한쪽 끝으로 진행하는 단계를 포함한다. 일부 실시예들에서, 상기 트리비얼리티 임계값은 메트릭 세트(a set of metrics)를 이용하여 결정된다. 특정 실시예들에서, 상기 태스크는 웹페이지를 디스플레이하는 것이고, 상기 방법은, 상기 웹페이지를 보기 위한 사용자 요구를 수신한다. 상기 메트릭 세트는 상기 웹페이지의 URL(uniform resource locator), 상기 웹페이지의 콘텐츠가 속하는 카테고리, 상기 웹페이지에 포함된 다수의 아이템, 또는 상기 웹페이지의 콘텐츠가 로딩될 소스 중 적어도 하나를 포함할 수 있다. 일부 실시예들에서, 상기 방법은 다른 프로그레스 값을 수신하고, 상기 다른 프로그레스 값에 기초하여 상기 프로그레스 바에서의 상기 완료 상태 표시자를 업데이트한다.
일부 실시예들은, 컴퓨팅 장치에 의해, 태스크에 대한 완료 상태 표시자를 포함하는 프로그레스 바를 디스플레이하는 방법을 제공한다. 상기 방법은 상기 태스크에 대한 기준의 세트(a set of criteria)를 결정하고, 상기 기준의 세트를 만족하면, 상기 태스크는 "본질적으로 완료"임을 표시한다. 상기 방법은 상기 태스크와 연관된 프로그레스 값들의 세트를 수신한다. 상기 방법은 상기 프로그레스 값들의 세트에 기초하여 상기 기준의 세트가 충족되었는지를 결정한다. 상기 방법은 상기 기준의 세트가 충족되었을 때 상기 프로그레스 바에 애니메이션 효과의 타입을 디스플레이한다.
일부 실시예들에서, 상기 기준의 세트는 임계 데이터 양(threshold amount of data)을 포함할 수 있고, 상기 프로그레스 값들의 세트가 상기 임계 데이터 양이 수신되었음을 표시할 때 상기 기준의 세트는 충족된다. 특정 실시예들에서, 상기 애니메이션 효과의 타입은 사용자 구성 가능하다. 일 실시예에서, 상기 애니메이션 효과의 타입은 객체의 모션 블러(motion blur) 또는 라이트 블러(light blur) 중 적어도 하나이다. 일부 실시예들에서, 상기 완료 상태 표시자는 주 프로그레스 표시자이다. 프로그레스 바는 또한 일부 실시예들에서 상기 태스크가 수행되고 있는 속도를 표시하는 보조 프로그레스 표시자를 시각적으로 디스플레이할 수 있다.
일부 실시예들은, 실행될 때, 컴퓨팅 장치 내의 프로세서로 하여금, 수행되고 있는 태스크에 대한 완료 상태 표시자를 시각적으로 디스플레이하는 프로그레스 바를 디스플레이하는 방법을 실행하도록 하는 프로그램 명령어들로 인코딩된 컴퓨터 판독 가능한 저장 매체를 제공한다. 상기 방법은 상기 프로그레스 바가 상기 태스크의 완료를 나타내는 것으로서 디스플레이될 때를 표시하는 임계값을 결정할 수 있고, 상기 임계값은 상기 태스크의 완료 이전 시간을 표시한다. 상기 임계값에 도달하면, 상기 방법은 상기 프로그레스 바가 상기 태스크의 완료를 나타내도록 할 수 있다.
일부 실시예들에서, 상기 방법은 프로그레스 값을 수신한다. 상기 방법은 상기 프로그레스 바의 부분 내의 위치에 상기 프로그레스 값을 맵핑할 수 있고, 상기 부분은 상기 프로그레스 바의 전체 길이보다 작다. 상기 방법은 상기 맵핑된 위치에 기초하여 상기 프로그레스 바에서의 상기 태스크의 상기 완료 상태를 디스플레이할 수 있다. 일부 실시예들에서, 상기 태스크는 신문과 연관된 웹페이지를 렌더링하는 것을 포함하고, 상기 임계값은 상기 웹페이지와 연관된 특정 기사를 로딩시에 도달된다. 일부 실시예들에서, 상기 태스크는 서브태스크들의 세트를 포함할 수 있고, 상기 임계값은 상기 서브태스크들의 세트보다 작은 상기 서브태스크들의 서브세트를 완료시에 도달된다. 특정 실시예들에서, 상기 태스크는 객체들의 세트를 포함하는 웹페이지를 렌더링하는 것을 포함하고, 각각의 서브태스크는 상기 객체들의 세트 내의 객체의 로딩을 포함하고, 상기 임계값은 상기 서브태스크들의 상기 서브세트 내의 각각의 객체를 로딩시에 도달된다.
일부 실시예들은, 프로세서 및 상기 프로세서에 결합된 메모리 장치를 포함하는 전자 장치를 제공한다. 상기 메모리 장치는 프로세서 바에서의 태스크의 완료 상태를 디스플레이하기 위해 실행될 명령어들을 포함할 수 있고, 상기 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 수행되고 있는 태스크에 대한 완료 상태 표시자를 시각적으로 디스플레이하는 프로그레스 바를 디스플레이하도록 한다. 상기 명령어들은, 상기 프로세서로 하여금, 상기 프로그레스 바가 상기 태스크의 완료를 나타내는 것으로서 디스플레이될 때를 표시하는 임계값을 결정하도록 할 수 있고, 상기 임계값은 상기 태스크의 완료 이전 시간을 표시한다. 상기 명령어들은, 또한 상기 프로세서로 하여금, 상기 임계값에 도달하면, 상기 프로그레스 바가 상기 태스크의 완료를 나타내게 하도록 할 수 있다.
일부 실시예들에서, 상기 태스크는 서브태스크들의 세트를 포함할 수 있고, 상기 임계값은 상기 서브태스크들의 세트보다 작은 상기 서브태스크들의 세트의 서브세트를 완료시에 도달된다. 특정 실시예들에서, 상기 명령어들은 또한 상기 프로세서로 하여금, 프로그레스 값들의 세트를 수신하게 하고, 상기 임계값에 도달하기 전에 상기 프로그레스 바를 업데이트하게 하여, 수행되고 있는 태스크에 대한 업데이트된 완료 상태 표시자를 디스플레이하도록 한다. 태스크에 대한 업데이트된 완료 상태 표시자는 상기 태스크의 완료 상태를 언더 리포트할 수 있다. 일부 실시예들에서, 상기 태스크는 몇몇 서브태스크들을 포함하고, 각 서브태스크는 상이한 위치로부터 객체들의 로딩을 요구한다. 상기 명령어들은 또한 상기 프로세서로 하여금, 완료된 각 서브태스크의 개개의 퍼센티지를 결정하게 하고, 각 서브태스크의 개개의 퍼센티지 각각이 임계 퍼센티지(threshold percentage)에 도달하였을 때 상기 임계값에 도달되었다고 결정하게 할 수 있다. 특정 실시예들에서, 각 서브태스크에 대한 임계 퍼센티지는 사용자 또는 시스템 관리자 중 적어도 하나에 의해 구성 가능하다.
일부 실시예들은, 실행될 때, 컴퓨팅 장치 내의 프로세서로 하여금, 방법을 실행하도록 하는 프로그램 명령어들로 인코딩된 컴퓨터 판독 가능한 저장 매체를 제공한다. 일부 실시예들에서, 상기 방법은 태스크에 대한 완료 상태 표시자를 시각적으로 디스플레이하는 프로그레스 바를 디스플레이한다. 상기 방법은 메트릭 세트를 이용하여, 기준의 세트를 충족하면, 태스크가 "본질적으로 완료"임을 사용자에게 표시하는, 태스크에 대한 기준의 세트를 결정할 수 있다. 상기 방법은 프로그레스 값들의 세트에 기초하여 상기 기준의 세트가 충족되었는지를 결정할 수 있다. 상기 방법은 상기 기준의 세트가 충족되었을 때 애니메이션 효과의 타입을 디스플레이할 수 있다.
일부 실시예들에서, 상기 방법은, 프로그레스 값들의 세트에 기초하여 상기 태스크에 대한 완료 상태 표시자를 디스플레이한다. 상기 방법은 프로그레스 값들의 부가적인 세트들을 수신하는 것에 응답하여 상기 프로그레스 바에서의 상기 태스크에 대한 상기 완료 상태 표시자를 업데이트할 수 있다. 상기 방법은 상기 기준의 세트가 충족되었을 때 상기 애니메이션 효과의 타입을 디스플레이하기 위해 예비되는 상기 프로그레스 바의 임계 위치를 결정할 수 있고, 상기 프로그레스 바에서의 상기 태스크에 대한 상기 업데이트된 완료 상태 표시자는 상기 기준의 세트가 충족되기 전에 상기 임계 위치 전의 상기 프로그레스 바에서의 위치를 표시한다. 일부 실시예들에서, 상기 방법은 상기 기준의 세트가 충족되었다고 결정하는 것에 응답하여 상기 애니메이션 효과의 타입을 결정하고, 상기 애니메이션 효과의 타입은 사용자 구성 가능하다. 특정 실시예들에서, 프로그레스 값들의 세트는 태스크에 대한 프로그레스 상태 표시자를 나타낸다. 상기 방법은 상기 프로그레스 바가 상기 태스크의 완료 상태를 언더 리포트하는 태스크에 대한 완료 상태 표시자를 디스플레이하도록 할 수 있다. 일부 실시예들에서, 상기 태스크는 서브태스크들의 세트를 포함하고, 상기 기준의 세트는 상기 서브태스크들의 세트의 서브세트가 완료되었을 때 충족된다.
일부 실시예들은, 프로세서에 의해, 수행되고 있는 태스크에 대한 프로그레스 바를 디스플레이하는 방법을 제공한다. 일부 실시예들에서, 상기 방법은 태스크의 완료 상태를 나타내는 제1 프로그레스 값을 수신한다. 상기 방법은 상기 제1 프로그레스 값에 기초하여, 상기 프로그레스 바의 완료 상태 표시자를 계산할 수 있다.
일부 실시예들에서, 상기 태스크는 웹 브라우저에서의 웹페이지의 로딩이고, 상기 태스크의 완료 상태는 상기 웹페이지의 로딩이 완료되는 퍼센티지를 나타낸다. 특정 실시예들에서, 상기 방법은 제3 프로그레스 값을 수신하고, 제3 프로그레스 값에 기초하여, 제3 프로그레스 값보다 작은 제4 프로그레스 값을 계산한다. 그 다음에 상기 방법은 제3 프로그레스 값에 기초하여, 프로그레스 바에서의 상기 태스크의 업데이트된 완료 상태 표시자를 디스플레이한다.
일부 실시예들에서, 제1 및 제2 프로그레스 값들은 미리 결정된 간격에서 렌더링 엔진으로부터 수신된다. 특정 실시예들에서, 제2 프로그레스 값은 프로그레스 바에서의 현재 위치를 나타내고, 제4 프로그레스 값은 프로그레스 바에서의 새로운 위치를 나타내고, 태스크에 대한 완료 상태 표시자는 애니메이션 효과를 이용하여 현재 위치로부터 새로운 위치로 증분한다. 일 실시예에서, 완료 상태 표시자는 태스크의 완료 상태를 언더 리포트한다. 일부 실시예들에서, 제2 프로그레스 값을 계산하는 방법은 태스크가 완료될 때까지 추정된 시간 양을 결정하는 것을 포함하고, 제2 프로그레스 값은 추정된 시간 양에 기초하여 계산된다. 일부 실시예들에서, 추정된 시간 양은 룩업 테이블에서 시간 간격에 대해 제1 프로그레스 값을 맵핑함으로써 결정된다.
일부 실시예들은 컴퓨팅 장치에 의해, 수행되고 있는 태스크에 대한 프로그레스 바를 디스플레이하는 컴퓨터 구현 방법을 제공한다. 일부 실시예들에서, 상기 방법은 태스크의 완료 상태를 나타내는 프로그레스 값을 수신하고, 프로그레스 값은 프로그레스 바에서의 완료 상태 표시자에 대한 현재 위치에 대응하고, 완료 상태 표시자는 태스크의 완료 상태를 나타낸다. 상기 방법은 프로그레스 값에 기초하여 프로그레스 바에서의 새로운 위치를 계산할 수 있다. 상기 방법은 현재 위치로부터 새로운 위치로 프로그레스 바에서의 완료 상태 표시자의 애니메이션된 진행을 디스플레이할 수 있고, 완료 상태 표시자의 진행은 태스크의 완료 상태를 언더 리포트한다.
일부 실시예들에서, 프로그레스 바에서의 새로운 위치를 계산하는 것은 제1 프로그레스 값에 기초하여 추정된 완료 시간을 결정하는 것 및 추정된 완료 시간을 이용하여 선형 함수를 구성하는 것을 포함하고, 새로운 위치는 선형 함수를 이용하여 계산된다. 특정 실시예들에서, 새로운 위치는 완료 상태 표시자가 프로그레스 바에서 업데이트되는 미리 결정된 시간 간격에 기초하여 결정될 수 있다. 일부 실시예들에서, 추정된 완료 시간은 룩업 테이블에서 태스크에 대한 대응하는 추정된 완료 시간에 대해 프로그레스 값을 맵핑함으로써 결정되고, 대응하는 추정된 완료 시간은 태스크가 완료되는 데 요구되는 시간의 양의 초과 추정이다. 일 실시예에서, 태스크에 대한 완료 상태 표시자는 애니메이션 효과를 이용하여 현재 위치로부터 새로운 위치로 증분한다. 일부 실시예들에서, 다음 위치는 프로그레스 바에서의 현재 위치와 새로운 위치 사이의 애니메이션을 위해 할당된 시간 간격에 적어도 부분적으로 기초하여 계산된다.
일부 실시예들은, 프로세서에 의해, 수행되고 있는 태스크에 대한 완료 상태 표시자를 시각적으로 디스플레이하는 프로그레스 바를 디스플레이하는 방법을 제공한다. 상기 방법은 태스크의 완료 상태를 나타내는 프로그레스 값을 수신한다. 일부 실시예들에서, 상기 방법은 프로그레스 값에 기초하여, 프로그레스 바가 태스크의 완료 상태를 언더 리포트하는 완료 상태 표시자를 디스플레이하도록 한다.
일부 실시예들에서, 완료 상태 표시자는 프로그레스 바에서의 현재 위치에 대응하고, 상기 방법은 또한 프로그레스 바에 기초하여, 추정된 완료 시간을 결정한다. 상기 방법은 추정된 완료 시간을 이용하여 선형 함수를 구성하고, 현재 위치는 선형 함수를 이용하여 결정된다. 일부 실시예들에서, 상기 방법은 또한 다른 프로그레스 값을 수신하고, 다른 프로그레스 값에 적어도 부분적으로 기초하여 새로운 선형 함수를 구성한다. 일부 실시예들에서, 상기 방법은 또한 다른 프로그레스 값에 기초하여 새로운 추정된 완료 시간을 결정하고, 새로운 선형 함수는 새로운 추정된 완료 시간을 이용하여 구성된다. 상기 방법은, 미리 결정된 시간 간격에 적어도 부분적으로 기초하여, 새로운 선형 함수를 이용하여 프로그레스 바에서의 새로운 위치를 결정하고, 미리 결정된 시간 간격 내에서 새로운 위치에 완료 상태 표시자를 애니메이션한다.
일부 실시예들에서, 미리 결정된 시간 간격은 사용자 또는 시스템 관리자 중 적어도 하나에 의해 구성 가능하다. 특정 실시예들에서, 상기 방법은 또한 태스크에 대한 트리비얼리티 임계값을 결정하고, 트리비얼리티 임계값이 충족되는지를 결정하고, 트리비얼리티 임계값이 충족될 때 프로그레스 바의 완료를 표시하는 시각적 신호를 디스플레이한다.
일부 실시예들은, 컴퓨팅 장치에 의해, 수행되고 있는 태스크에 대한 완료 상태 표시자를 시각적으로 디스플레이하는 프로그레스 바를 디스플레이하는 방법을 제공하고, 상기 완료 상태 표시자는 태스크의 완료 상태를 나타낸다. 상기 방법은 프로그레스 바의 완료 상태 표시자에 기초하여, 피처와 연관된 사용자 인터페이스 요소를 시각적으로 인에이블한다.
일부 실시예들에서, 상기 방법은 또한 기준의 세트에 기초하여 트리비얼리티 임계값을 결정하고, 트리비얼리티 임계값이 충족되는지를 결정하고, 트리비얼리티 임계값이 충족될 때 피처가 활성화되는지를 결정하고, 트리비얼리티 임계값이 충족될 때 프로그레스 바에 시각적 신호를 디스플레이하고, 여기서, 사용자 인터페이스 요소는 피처가 활성화되어 있다는 결정에 응답하여 시각적 신호의 디스플레이에 이어서 시각적으로 인에이블된다. 일부 실시예들에서, 피처는 트리비얼리티 임계값이 충족되기 전에 활성화된다. 특정 실시예들에서, 사용자 인터페이스 요소는 완료 상태 표시자의 진행이 프로그레스 바의 한쪽 끝에 도달할 때 시각적으로 인에이블된다.
상기 방법은 일부 실시예들에서 또한 트리비얼리티 임계값이 충족될 때 프로그레스 바에서의 완료 상태 표시자의 가속 진행을 디스플레이하고, 시각적 신호는 프로그레스 바에서의 완료 상태 표시자의 진행의 완료에 후속하여 디스플레이된다. 일부 실시예들에서, 트리비얼리티 임계값은 태스크가 임계 퍼센티지 완료를 넘었을 때 충족되고, 임계 퍼센티지는 사용자 또는 관리자 중 적어도 하나에 의해 미리 구성된다. 특정 실시예들에서, 피처는 태스크의 주 서브태스크들을 완료하는 것에 응답하여 활성화되고, 주 서브태스크들은 사용자 또는 관리자에 의해 구성 가능하다. 일부 실시예들에서, 피처는 웹페이지의 하나 이상의 기사를 로딩시에 활성화되는 판독기 피처이다.
일부 실시예들은, 컴퓨팅 장치에 의해, 수행되고 있는 태스크에 대한 완료 상태 표시자를 시각적으로 디스플레이하는 프로그레스 바를 디스플레이하는 방법을 제공한다. 상기 방법은 태스크에 대한 트리비얼리티 임계값을 결정한다. 일부 실시예들에서, 트리비얼리티 임계값에 도달하면, 상기 방법은 피처의 상태를 결정한다. 상기 방법은 피처의 상태가 수정될 때 피처와 연관된 사용자 인터페이스 요소를 시각적으로 수정한다.
일부 실시예들에서, 상기 방법은 또한 트리비얼리티 임계값에 도달하면 프로그레스 바에서의 완료 상태 표시자의 가속 진행을 디스플레이하고, 사용자 인터페이스 요소는 프로그레스 바에서의 완료 상태 표시자의 진행의 완료에 후속하여 시각적으로 수정된다. 일 실시예에서, 상기 방법은 트리비얼리티 임계값이 도달될 때 시각적 신호를 디스플레이하고, 사용자 인터페이스 요소에 대한 시각적 수정은 시각적 신호와 결합하여 디스플레이된다.
일부 실시예들에서, 트리비얼리티 임계값은 태스크가 임계 퍼센티지 완료를 넘었을 때 도달되고, 임계 퍼센티지는 사용자 또는 관리자 중 적어도 하나에 의해 미리 구성된다. 특정 실시예들에서, 사용자 인터페이스 요소는 수정되는 피처의 상태에 응답하여 및 트리비얼리티 임계값에의 도달에 응답하여 시각적으로 수정된다. 일 실시예에서, 사용자 인터페이스 요소는 피처의 상태가 수정될 때 시각적으로 인에이블되게 되는 사용자 선택 가능한 버튼이다. 일부 실시예들에서, 피처의 상태는 웹페이지의 하나 이상의 메인 요소들이 로딩될 때 수정된다. 특정 실시예들에서, 웹페이지의 하나 이상의 메인 요소들은 웹페이지가 향해지는 기사를 포함한다.
일부 실시예들은, 컴퓨팅 장치에 의해, 태스크에 대한 완료 상태 표시자를 시각적으로 디스플레이하는 프로그레스 바를 디스플레이하는 방법을 제공하고, 상기 완료 상태 표시자는 수행되고 있는 태스크에 대한 완료 상태를 나타낸다. 상기 방법은 트리비얼리티 임계값을 결정하고, 트리비얼리티 임계값에 도달하면, 상기 방법은 피처의 상태를 결정한다. 상기 방법은 피처의 상태가 수정될 때 시각적 효과를 디스플레이한다.
일부 실시예들에서, 시각적 효과는 피처의 수정된 상태와 연관된 사용자 인터페이스 요소를 시각적으로 수정하는 것을 포함한다. 특정 실시예들에서, 피처의 상태와 연관된 시각적 효과는 피처와 연관된 사용자 인터페이스 요소에 대한 시각적 수정을 포함한다. 일 실시예에서, 상기 방법은 또한 트리비얼리티 임계값에 도달하면 다른 피처의 상태를 결정하고, 다른 피처의 상태가 수정될 때 다른 시각적 효과를 디스플레이한다.
일부 실시예들은, 컴퓨팅 장치에 의해, 수행되고 있는 태스크에 대한 완료 상태 표시자를 시각적으로 디스플레이하는 프로그레스 바를 디스플레이하는 방법을 제공하고, 상기 완료 상태 표시자는 태스크에 대한 완료 상태를 나타낸다. 일부 실시예들에서, 상기 방법은 프로그레스 바와 연관된 보조 표시자를 디스플레이하고, 보조 표시자는 태스크가 수행되고 있는 속도를 시각적으로 식별한다.
일부 실시예들에서, 상기 방법은 또한 프로그레스 값을 수신하고, 프로그레스 값에 기초하여 완료 상태 표시자에 대한 값을 결정하고, 디스플레이된 완료 상태 표시자는 태스크의 완료 상태를 언더 리포트한다. 일부 실시예들에서, 상기 방법은 또한 태스크가 수행되고 있는 속도를 결정하고, 태스크와 연관된 애니메이션의 타입을 결정하고, 수신된 속도에 대응하는 애니메이션의 타입 내의 특정 애니메이션을 결정하고, 여기서 보조 표시자를 디스플레이하는 것은 프로그레스 바에 특정 애니메이션을 디스플레이하는 것을 포함한다.
일부 실시예들에서, 상기 방법은 또한 태스크가 수행되고 있는 다른 속도를 결정하고, 다른 속도에 대응하는 애니메이션의 타입 내의 다른 특정 애니메이션을 결정하고, 보조 표시자를 특정 애니메이션을 디스플레이하는 것으로부터 프로그레스 바 내의 다른 특정 애니메이션으로 이전한다. 일부 실시예들에서, 애니메이션의 타입들은 바퀴가 돌아가는 애니메이션(spinning wheel animation) 또는 리플 효과 중 적어도 하나를 포함한다. 태스크와 연관된 애니메이션의 타입은 룩업 테이블을 이용하여 애니메이션의 타입에 대해 태스크를 맵핑함으로써 결정될 수 있다. 일부 실시예들에서, 애니메이션의 타입은 사용자 구성 가능하다.
일부 실시예들에서, 수신된 속도에 대응하는 특정 애니메이션은 룩업 테이블을 이용하여 결정된다. 일 실시예에서, 보조 표시자는 프로그레스 바에 디스플레이된다. 특정 실시예들에서, 보조 표시자는 완료 상태 표시자 내에 디스플레이되고, 보조 표시자는 완료 상태 표시자 내에 휘도 세기에 의해 표현된다.
일부 실시예들은, 컴퓨팅 장치에 의해, 태스크의 완료 상태의 제1 시각적 표시 및 태스크가 수행되고 있는 속도의 제2 시각적 표시를 동시에 디스플레이하는 프로그레스 바를 디스플레이하는 방법을 제공한다. 일부 실시예들에서, 제2 시각적 표시는 실시간으로 업데이트된다. 특정 실시예들에서, 제2 시각적 표시는 룩업 테이블을 이용하여 애니메이션의 타입에 대해 태스크를 맵핑함으로써 결정된다. 일 실시예에서, 애니메이션의 타입은 사용자 구성 가능하다. 일부 실시예들에서, 애니메이션의 타입은 태스크의 타입에 기초하여 결정된다.
일부 실시예들은, 실행될 때, 하나 이상의 프로세서로 하여금, 수행되고 있는 태스크에 대한 완료 상태 표시자를 시각적으로 디스플레이하는 프로그레스 바를 디스플레이하고 - 상기 완료 상태 표시자는 태스크에 대한 완료 상태를 나타냄 - , 프로그레스 바에 태스크와 연관된 보조 표시자를 디스플레이하는 - 상기 보조 표시자는 태스크가 수행되고 있는 속도를 시각적으로 식별함 - 방법을 실행하도록 하는 명령어들의 세트로 인코딩되는 컴퓨터 판독 가능한 저장 매체를 제공한다.
일부 실시예들에서, 상기 방법은 또한 태스크가 수행되고 있는 속도에 적어도 부분적으로 기초하여, 태스크와 연관된 보조 표시자를 결정한다. 특정 실시예들에서, 보조 표시자를 결정하는 것은 룩업 테이블을 이용하여 애니메이션의 타입에 대해 속도를 맵핑하는 것을 포함하고, 보조 표시자를 디스플레이하는 것은 프로그레스 바에 애니메이션의 타입을 디스플레이하는 것을 포함한다. 일 실시예에서, 보조 표시자는 태스크의 타입에 적어도 부분적으로 기초하여 결정되는 애니메이션의 타입이다. 일부 실시예들에서, 완료 상태 표시자 및 보조 표시자는 둘다 프로그레스 바 내에 디스플레이되는 그래픽 사용자 인터페이스 요소들이다.
첨부 도면들과 함께 다음의 상세한 설명은 본 발명의 특성 및 이점들에 대한 더 나은 이해를 제공할 것이다.
도 1은 본 발명의 일부 실시예들에 따른 프로그레스 바를 포함하는 사용자 인터페이스(이 예에서는, 웹 브라우저)를 발생 및 디스플레이하기 위한 프로그레스 바 시스템의 예를 도시한다.
도 2는 일부 실시예들에 따른 유동적 프로그레스 바 발생기(fluid progress bar generator) 및 로켓 효과 발생기(rocket effect generator)의 더욱 상세한 도면의 예를 도시한다.
도 3은 일부 실시예들에 따른 프로그레스 바의 "로켓 효과"를 디스플레이할 때를 결정하기 위한 프로세스를 개념적으로 도시한다.
도 4는 로켓 애니메이션을 디스플레이하기 위한 일부 실시예들의 예시적인 프로세스를 도시한다.
도 5는 프로그레스 바에서 태스크를 위한 언더 리포트 프로그레스 상태(underreported progress status)를 디스플레이하기 위한 일부 실시예들의 예시적인 프로세스를 도시한다.
도 6은 프로그레스 바에서 태스크를 위한 언더 리포트 프로그레스 상태를 디스플레이하기 위한 일부 실시예들의 다른 예시적인 프로세스를 도시한다.
도 7은 본 발명의 일부 실시예들에 따른 완료 상태 표시자의 진행의 예를 도시한다.
도 8은 브라우저 애플리케이션이 프로그레스 값에 기초하여 태스크가 완료될 때까지 시간 추정을 획득할 수 있게 하는 일부 실시예들의 시간 추정표의 예를 도시한다.
도 9는 일부 실시예들에 따른 태스크의 실제 상태를 언더 리포트하면서 매끄럽게 업데이트하는 프로그레스 바의 예시적인 시퀀스를 도시한다.
도 10은 일부 실시예들에 따른 피처에 대한 상태 변화에 응답하여 시각적 효과를 디스플레이하도록 브라우저 애플리케이션에 표시할 수 있는 피처 인에이블러(feature enabler)의 더욱 상세한 도면의 예를 도시한다.
도 11은 트리비얼리티 임계값이 충족되면 인에이블되는 피처에 응답하여 사용자 인터페이스(UI) 요소를 시각적으로 수정하기 위한 일부 실시예들의 예시적인 프로세스를 도시한다.
도 12는 일부 실시예들에 따른 피처를 나타내는 UI 요소를 시각적으로 수정하는 프로그레스 바에서의 태스크를 위한 완료 상태 표시자의 예시적인 진행을 도시한다.
도 13은 일부 실시예들에 따른 프로그레스 바에서의 태스크를 위한 완료 상태 표시자 이외에 보조 프로그레스 표시자를 렌더링하기 위한 보조 프로그레스 발생기 및 렌더 엔진의 더욱 상세한 도면의 예를 도시한다.
도 14는 프로그레스 바에서의 태스크의 완료 상태 표시자와 함께 보조 프로그레스 표시자를 디스플레이하기 위한 일부 실시예들의 예시적인 프로세스를 도시한다.
도 15는 일부 실시예들에 따른 프로그레스 바에서의 태스크의 완료 상태 표시자와 함께 보조 프로그레스 표시자를 디스플레이하기 위한 다른 예시적인 진행을 도시한다.
도 16은 일부 실시예들에 따른 프로그레스 바에서의 태스크의 완료 상태 표시자와 함께 다른 타입의 보조 프로그레스 표시자를 디스플레이하기 위한 다른 예시적인 진행을 도시한다.
도 17은 일부 실시예들에 따른 프로그레스 바에서의 태스크의 완료 상태 표시자와 함께 한 타입의 보조 프로그레스 표시자를 디스플레이하기 위한 다른 예시적인 진행을 도시한다.
도 18은 본 발명의 실시예에 따른 컴퓨터 시스템을 도시한다.
도 19는 본 발명의 다양한 양태들을 구현할 수 있는 환경의 예를 도시한다.
다음의 설명에서, 설명의 목적을 위해 다수의 상세, 예, 및 실시예가 제시된다. 그러나, 이 기술분야의 통상의 기술자는 본 발명이 제시된 실시예들로 한정되지 않고 본 발명이 논의되는 특정 상세들 중 일부 없이 실시될 수 있다는 것을 인식할 것이다. 또한, 공지된 구조들 및 장치들을 포함하는 예들 및 실시예들의 일부는 불필요한 상세로 설명을 불명료하게 하지 않도록 하기 위해 블록도 형태로 도시되어 있다.
본 발명의 특정 실시예들은 사용자 컴퓨팅 경험을 향상시키는 그래픽 사용자 인터페이스(GUI) 상의 개선된 프로그레스 바를 디스플레이하기 위한 기법들을 제공한다. 프로그레스 바는 사용자가 진행중인 태스크 또는 동작의 완료 상태를 가시화할 수 있도록 하는 완료 상태 표시자를 디스플레이할 수 있다. 일부 실시예들에서, 사용자는 완료 상태 표시자를 관측함으로써 동작의 수행이 성공적으로 진행되고 있는지를 검증하고, 동작에 대한 완료 시간을 추정하기 위해 프로그레스 바를 이용할 수 있다.
일부 실시예들에서의 프로그레스 바는 진행중인 태스크의 완료 상태를 언더 리포트하는 완료 상태 표시자를 디스플레이할 수 있다. 예를 들어, 웹 브라우저는 완료 상태 표시자가 프로그레스 바의 끝에서 멈추는 것을 방지하기 위해 웹페이지에 대한 초과 추정 로드 시간(over-estimated load time)을 결정할 수 있다. 또한, 일부 실시예들에서, 완료 상태 표시자는 매끄럽게 디스플레이 및 업데이트된다. 이러한 실시예들에서, 선형 함수들을 이용하여 특정 간격들 내에서 완료 상태 표시자의 진행을 애니메이션할 위치를 결정한다. 이것은 불연속 점프들(discrete jumps)을 없애고 리포트된 상태의 진행에 유동성을 추가하여 프로그레스 바가 사용자에게 더욱 직관적이고 반응적으로 보일 수 있다.
일부 실시예들에서, 태스크가 "실질적으로 완료"됨을 표시하는 임계값(트리비얼리티 임계값이라고도 함)이 충족되면 사용자에게 경보하기 위해 시각적 신호가 제공될 수 있다. 이와 같이, 프로그레스 바들은 사용자에게 관심있는 태스크의 서브태스크들이 완료될 때를 표시하기 위해 사용자에게 시각적 신호를 제공할 수 있다. 일부 실시예들에서, 시각적 신호는 프로그레스 바의 완료 상태 표시자의 가속 진행의 애니메이션일 수 있다. 일부 실시예들에서, 트리비얼리티 임계값은 태스크가 실제로 완료되었는지에 상관없이 보통 사람이 태스크가 완료된 것으로 고려하는 임계값을 가리킨다. 예를 들어, 보통 사람은 페이지의 나머지(예를 들어, 다양한 이미지들, 광고들, 하이퍼링크들 등을 포함함)가 로딩되는지에 상관없이, 일단 하나 이상의 스포츠 용품이 가시적이면 특정 스포츠 웹페이지를 로딩하기 위한 트리비얼리티 임계값을 고려할 수 있다. 트리비얼리티 임계값이 충족되었을 때 시각적 신호를 제공함으로써, 사용자는 전체 페이지가 로드될 때까지 기다려야 하는 대신에, 페이지가 로딩되는지에 상관없이 페이지의 부분들이 보이는 때를 통지받을 수 있다.
일부 실시예들에서, 사용자 인터페이스(UI) 요소가 디스플레이되는 방식이 프로그레스 바의 디스플레이와 관련이 있을 수 있다. 예를 들어, GUI 요소는 프로그레스 바의 완료 상태 표시에 의해 표시된 위치 또는 완료 상태에 응답하여 시각적으로 인에이블될 수 있다. 일부 예들에서, GUI는 트리비얼리티 임계값이 충족되고 완료 상태 표시자가 완료된 상태를 나타내도록 애니메이션되면, 시각적으로 인에이블되는(즉, 그의 기능이 인에이블되는) 버튼(예를 들어, 판독기 기능에 대응하는 버튼)을 포함할 수 있다. 이러한 식으로, UI 요소의 시각적 디스플레이는 UI 요소에 의해 표현되는 피처를 강조하기 위해 프로그레스 바에 의해 표시된 완료 상태에 응답하여 변화될 수 있다. 일 실시예에서, UI 요소는 UI 요소로 사용자의 주의를 돌리게 하기 위한 방식으로 시각적으로 디스플레이 및 수정될 수 있다.
일부 실시예들에서, (프로그레스 바의 완료 상태 표시자에 의해 표시되는) 태스크 또는 동작의 완료 상태를 표시하는 것 이외에, 프로그레스 바는 또한 특정 시점에서 태스크가 수행되고 있는 속도를 (예를 들어, 애니메이션을 이용하여) 시각적으로 표시할 수 있다. 사용자에게 로딩 레이트(loading rate)를 전달하면, 사용자가 비교적 큰 웹페이지를 빠른 로딩 레이트로 로딩하는 것과 비교적 작은 웹페이지를 느린 로딩 레이트로 로딩하는 것 사이를 구별할 수 있게 한다. 일부 예들에서, 느린 로딩 레이트는 사용자와 특정 서버 사이의 나쁜 접속을 의미하기 때문에, 사용자는 로딩 레이트가 용납할 수 없을 정도로 느릴 때 그 서버로부터의 데이터에 대한 그의 요구들을 취소하기를 원할 수 있다. 사용자는 일부 예들에서 페이지가 로딩되고 있는 속도에 기초하여 현재 웹페이지에 머무를 것인지 또는 상이한 페이지로 전환할 것인지를 결정할 수 있다.
다양한 상이한 애니메이션을 이용하여 속도를 표시할 수 있다. 예를 들어, 프로그레스 바는 수행되는 태스크 또는 동작의 속도를 나타내는 웨이브 또는 리플의 속도를 갖는 애니메이션된 웨이브 또는 리플을 표시할 수 있다. 이 예에서, 더 빠른 애니메이션의 웨이브 또는 리플은 더 빠른 속도를 나타낸다(예를 들어, 웹페이지가 .5MB/s에서 로딩되고 있을 때, 웨이브 또는 리플은 한 애니메이션 속도에서 표시될 수 있고, 로딩 레이트가 1GB/s에 있을 때, 웨이브 또는 리플은 더 빠른 애니메이션 속도에서 표시될 수 있다). 애니메이션의 속도는 태스크 또는 동작이 얼마나 빨리 수행되고 있는지에 대해 사용자에게 시각적 신호를 제공한다.
용어들 "태스크의 상태" 또는 "태스크의 프로그레스"는 본원에서 특정 순간에 완료된 태스크 또는 동작의 양 또는 퍼센티지를 가리키는 데 이용될 수 있다. 용어들 "프로그레스 상태 표시자", "완료 상태 표시자", 또는 "상태 표시자"는 본원에서 프로그레스 바에서의 태스크의 상태 또는 프로그레스의 표현을 가리키는 데 이용될 수 있다. 용어 "완료 상태 표시자의 진행"은 본원에서 프로그레스 바에 표시된 태스크에 대한 완료 상태 표시자가 이동하고 있는 모션 및/또는 레이트를 가리키는 데 이용될 수 있다. 이 기술분야의 통상의 기술자는 설명이 특정 타입의 프로그레스 표시자, 즉, 프로그레스 바와 관련하여 묘사되지만, 태스크 또는 동작의 상태를 표시할 수 있는 다른 타입의 프로그레스 표시자들도 이용될 수 있다는 것을 인식할 것이다.
도 1은 본 발명의 일부 실시예들에 따른 프로그레스 바 시스템(100)의 간략한 고레벨 블록도를 도시한다. 도 1에 도시된 바와 같이, 프로그레스 바 시스템(100)은 유동적 프로그레스 바 발생기(115), 로켓 효과 발생기(120), 피처 인에이블러(125), 보조 프로그레스 발생기(130), 및 렌더 엔진(135)과 같은 복수의 서브시스템을 포함할 수 있다. 하나 이상의 서브시스템이 서로 통신하고 데이터를 교환할 수 있도록 하나 이상의 통신 경로가 제공될 수 있다. 도 1에 설명된 다양한 컴포넌트들은 소프트웨어, 하드웨어, 또는 그의 결합으로 구현될 수 있다. 일부 실시예들에서, 소프트웨어는 일시적 또는 비일시적 컴퓨터 판독 가능한 저장 매체에 저장될 수 있고, 하나 이상의 프로세싱 유닛들에 의해 실행될 수 있다.
도 1에 도시된 바와 같은 프로그레스 바 시스템(100)은 도 1에 도시된 것들보다 더 많거나 더 적은 컴포넌트들을 포함할 수 있다는 것을 알아야 한다. 일부 실시예들에서, 프로그레스 바 시스템(100)은 컴퓨터 또는 핸드헬드 장치와 같은 전자 컴퓨팅 장치의 부분일 수 있다. 프로그레스 바 시스템(100) 내의 다양한 컴포넌트들은 독립형 애플리케이션으로서 구현될 수 있거나 다른 애플리케이션(예를 들어, 웹 브라우저 애플리케이션, 이메일 클라이언트, 또는 프로그레스 바들을 디스플레이할 수 있는 임의의 다른 애플리케이션) 내로 집적될 수 있고, 일부 실시예들에서는 프로그레스 바 시스템(100) 내의 컴포넌트들은 오퍼레이팅 시스템 내에 구현될 수 있다.
일부 실시예들에서, 프로그레스 바 시스템(100)은 도 1에 도시된 프로그레스 바(145)와 같은 프로그레스 바를 발생하여 사용자에게 디스플레이할 수 있다. 일부 실시예들에서, 프로그레스 바(145)는 완료 상태 표시자(150)를 포함할 수 있고, 여기서 완료 상태 표시자의 위치가 태스크의 완료 상태를 표시한다. 프로그레스 바(145)에서의 완료 상태 표시자의 진행을 관측함으로써, 사용자는 일부 실시예들에서 페이지 로딩 태스크의 완료 상태를 식별할 수 있다. 프로그레스 바 시스템(100) 내의 다양한 컴포넌트들은 프로그레스 바(145)에 대한 시각적 향상들을 제공할 수 있어, 프로그레스 바(145)를 이용하여 부가적인 유용한 정보가 사용자에게 전달된다.
일부 실시예들에서, 렌더 엔진(135)은 전자 컴퓨팅 장치의 디스플레이 상에 콘텐츠를 렌더링하고 디스플레이하도록 구성된다. 일부 예들에서, 렌더 엔진(135)은 URL(예를 들어, 사용자에 의해 입력됨)에 대응하는 문서(예를 들어, HTML, XML, 이미지 파일 등)를 검색하고 렌더 엔진(135)이 전자 컴퓨팅 장치의 디스플레이 상에 그것의 그래픽 표현을 렌더링하도록 할 수 있는 웹 브라우저에 내장될 수 있다. 웹페이지의 디스플레이를 발생하는 것 이외에, 렌더 엔진(135)은 일부 실시예들에서 디스플레이를 위한 프로그레스 바를 발생할 수 있다. 일부 실시예들에서, 웹 브라우저는 웹페이지의 총 로딩된 퍼센티지를 표시하는 프로그레스 값들을 결정하여 프로그레스 바 시스템(100) 내의 다양한 서브시스템들에 프로그레스 값들을 제공할 수 있다. 그 다음에, 이들 서브시스템들은 이들 프로그레스 값들을 이용하여 프로그레스 바에 대한 다양한 동작들을 수행할 수 있다.
일부 실시예들에서, 유동적 프로그레스 바 발생기(115)는 진행중인 태스크의 상태(예를 들어, 웹페이지의 로딩)에 대해 언더 리포트하도록 구성된다. 완료될 태스크가 얼마나 남아 있는지를 정확하게 결정하는 것은 어렵기 때문에, 사용자들에게 프로그레스 값들을 언더 리포트하는 것은 사용자의 예상을 관리할 수 있다. 또한, 앞에서(up front) 완료 상태를 언더 리포트하는 것은, 완료 상태 표시자가 진행할 프로그레스 바 내의 더 많은 공간을 허용하여, 프로그레스 바의 끝을 향하여 멈추는 것이 최소화 또는 방지될 수 있다. 일부 실시예들에서, 유동적 프로그레스 바 발생기(115)는 렌더 엔진(135)으로부터 프로그레스 값들을 수신하고, 태스크에 대한 완료 상태 표시자를 증분할 프로그레스 바 내의 위치를 결정할 수 있다. 결정된 위치는 태스크의 상태의 언더 리포트된 값에 대응할 수 있다.
전술한 바와 같이, 유동적 프로그레스 바 발생기(115)는 프로그레스 바의 완료 상태 표시자가 디스플레이 및 업데이트되는 방식을 매끄럽게 되도록 구성된다. 이것은 종래의 프로그레스 바들과 통상적으로 연관되는 투박한 업데이트를 줄이기 위해 행해진다. 프로그레스 바의 완료 상태 표시자의 디스플레이 및 업데이트를 매끄럽게 하는 것은 프로그레스 바들에 대하여 사용자의 시각적 경험을 향상시킨다.
일 실시예에서, 유동적 프로그레스 바 발생기(115)는 매끄럽게 하는 것을 실현하기 위해 하나 이상의 선형 함수를 이용한다. 유동적 프로그레스 바 발생기(115)는 선형 함수를 구성하고 선형 함수를 이용하여 수행되는 계산을 이용해서 시간 간격 내에서 증분할 프로그레스 바 내의 완료 상태 표시자를 위한 각각의 새로운 위치를 결정할 수 있다. 일부 실시예들에서, 선형 함수를 이용하여 각각의 다음 위치를 계산하는 것은, 완료 상태 표시자의 진행이 매끄럽게 일정한 속도로 증분하고 있는 것으로 보일 수 있게 한다.
일부 실시예들에서, 프로그레스 값은 태스크의 완료 상태를 표시할 수 있다. 브라우저 애플리케이션은 일부 실시예들에서 렌더 엔진(135)으로부터 프로그레스 값을 수신할 수 있다. 유동적 프로그레스 바 발생기(115)가 새로운 프로그레스 값을 수신할 때, 유동적 프로그레스 바 발생기(115)는 프로그레스 값을 이용하여 태스크가 완료될 때까지 새로운 시간을 추정할 수 있다(예를 들어, 룩업 테이블을 이용함). 그 다음에, 유동적 바 발생기(115)는 새로 추정된 시간을 이용하여 새로운 선형 함수를 구성할 수 있다. 이와 같이, 완료 상태 표시자의 진행은 이전과 상이한 레이트이지만, 일정한 레이트로 계속해서 증가한다. 진행 레이트의 변화와 상관없이, 각각의 시간 간격 동안 증분할 위치들을 결정하기 위해 다중 선형 방정식들을 구성하는 것은, 완료 상태 표시자의 진행이 사용자의 눈에 매끄럽고 부드럽게 보일 수 있게 한다. 완료 상태 표시자를 꾸준히 짧은 시간 간격들 내에서 증분하는 것은 그것이 사용자에게 매끄럽게 증가하는 것으로 보이도록 한다.
일부 실시예들에서, 로켓 효과 발생기(120)는 프로그레스 바의 완료 상태 표시자의 진행이 트리비얼리티 임계값이 충족될 때 그의 현재 위치로부터 태스크의 완료를 표시하는 위치로 "급등(rocket)" 또는 가속하게 하도록 구성된다. 예를 들어, 도 1에 도시된 프로그레스 바(145)에 대하여, 트리비얼리티 임계값이 충족될 때, 완료 상태 표시자는 그의 현재 위치로부터 종료 위치(155)로 진행하도록 애니메이션되고, 이것은 사용자에게 태스크의 완료를 표시한다.
태스크에 대한 트리비얼리티 임계값은, 태스크가, 완전히 완료되지 않더라도, 사용자의 목적들을 위해 완료된 것으로 표시될 수 있는 임계값을 식별한다. 트리비얼리티 임계값은 구성가능하고, 태스크에 대하여, 일반적으로 태스크의 완전한 완료보다 적은 임계값으로 설정된다. 일부 실시예들에서, 트리비얼리티 임계값은 태스크의 완전한 완료로 설정될 수 있다는 것을 알아야 한다.
트리비얼리티 임계값은 애플리케이션 및 태스크 문맥 특정일 수 있다. 예를 들어, 태스크가 웹페이지의 로딩인 경우, 트리비얼리티 임계값은 예를 들어, 페이지가 "실질적으로 로딩" 또는 "시각적으로 완료"된 것으로 보일 때, 로딩되고 있는 웹페이지의 임계 퍼센티지로 설정될 수 있다. 일부 실시예들에서, 로켓 효과 발생기(120)는 기준의 세트를 이용하여 트리비얼리티 임계값을 결정할 수 있다. 예를 들어, 트리비얼리티 임계값은 웹페이지의 30%가 로딩되었을 때 충족될 수 있다.
일부 실시예들에서, 로켓 효과 발생기(120)는 프로그레스 바(105) 내의 현재 위치로부터 프로그레스 바(105)의 한쪽 끝까지 완료 상태 표시자의 가속 진행을 나타내는 애니메이션을 생성할 수 있다. 이것은 페이지 로딩이 완료되는지에 상관없이 사용자에게 페이지가 완료된 것으로 보일 수 있는 사용자에 대한 시각적 신호로서 역할을 한다. 사용자는 이 시각적 신호를 그가 이제 페이지를 보기 시작할 수 있다는 신호로서 이용할 수 있다.
일부 실시예들은 태스크가 완료되었음을 표시하는 완료 상태 표시자에 응답하여 사용자 인터페이스 요소의 시각적 수정을 제공할 수 있다. 일부 실시예들에서, 피처 인에이블러(125)는 피처를 표현하는 사용자 인터페이스 요소의 시각적 수정을 일으키도록 구성된다. 트리비얼리티 임계값이 충족되었다고 결정하고 "로켓 효과"가 인에이블된 것에 응답하여, 피처 인에이블러(125)는 "로켓 효과"의 디스플레이에 후속하여 특정 피처가 "인에이블될지"를 결정할 수 있다. 피처 인에이블러(130)가 피처(예를 들어, 사용자에 의해 특정됨)가 인에이블되었다고 결정할 때, 렌더 엔진(115)은 일부 실시예들에서 인에이블된 피처를 강조하거나 피처를 표현하는 사용자 인터페이스 요소를 시각적으로 수정할 수 있다. 일부 실시예들에서, 렌더 엔진(115)은 인에이블된 피처를 더 강조하기 위하여 로켓 효과 발생기(120)에 의해 생긴 완료 상태 표시자의 가속 진행 또는 "로켓 효과"에 바로 뒤따르는 사용자 인터페이스 요소에 대한 시각적 수정을 디스플레이할 수 있다.
일부 실시예들에서, 보조 프로그레스 발생기(135)는 애니메이션 효과가 프로그레스 바에 의해 디스플레이되게 하도록 구성되고, 여기서 애니메이션은 태스크가 수행되고 있는 속도를 표시한다. 일부 실시예들에서, 보조 프로그레스 발생기(135)는 웹페이지의 로딩과 같은 태스크가 현재 수행되고 있는 속도를 모니터할 수 있다. 보조 프로그레스 발생기(135)는 속도를 나타내기 위해 프로그레스 바에 디스플레이될 애니메이션을 결정할 수 있다. 보조 프로그레스 발생기(135)는 그 다음에 렌더 엔진(115)이 애니메이션을 디스플레이하도록 할 수 있다. 애니메이션 효과는 사용자가 결정할 수 있도록 태스크가 수행되고 있는 속도를 사용자가 식별할 수 있게 한다.
도 2는 일부 실시예들에 따른 유동적 프로그레스 바 발생기(115) 및 로켓 효과 발생기(120)의 더욱 상세한 도면(200)의 예를 도시한다. 도 2에서, 유동적 프로그레스 바 발생기(115)는 임계값 검사기(205), 임계값 결정기(210), 언더 리포터(under-reporter)(215), 및 진행 평활화 모듈(progression smoothening module)(220)을 포함할 수 있다. 로켓 효과 발생기(120)는 일부 실시예들에서 임계값 검사기(205), 임계값 결정기(210), 및 로켓 효과 생성기(225)를 포함할 수 있다. 도 2에 도시된 바와 같은 유동적 프로그레스 바 발생기(115) 및 로켓 효과 발생기(120)는 도 2에 도시된 것보다 더 많거나 더 적은 컴포넌트들을 포함할 수 있다는 것을 알아야 한다. 또한, 유동적 프로그레스 바 발생기(115) 및 로켓 효과 발생기(120) 내의 하나 이상의 컴포넌트들(예를 들어, 임계값 검사기(205) 및 임계값 결정기(210))은 두 서브시스템에 의해 공유되는 단일 기능 또는 애플리케이션으로서 구현될 수 있거나 다른 서브시스템에 의해 액세스 가능할 수 있는 서브시스템들 중 하나 내로 집적될 수 있다.
하나 이상의 컴포넌트들이 서로 통신하고 데이터를 교환할 수 있도록 하나 이상의 통신 경로가 제공될 수 있다. 도 2에 설명된 다양한 컴포넌트들은 소프트웨어, 하드웨어, 또는 그의 결합으로 구현될 수 있다.
일부 실시예들에서, 임계값 결정기(215)는 수행되는 태스크에 대한 트리비얼리티 임계값을 결정하도록 구성된다. 언급한 바와 같이, 트리비얼리티 임계값은 태스크가 오직 "실질적으로 완료"일 수 있는 동안 보통 사람이 태스크를 "완료"인 것으로 보는 임계값일 수 있다. 예를 들어, 보통 사람은 웹페이지의 키 컴포넌트들(예를 들어, 뉴스 기사 연결)이 로딩될 때, 웹페이지 로딩 태스크가 "완료"된 것으로 또는 웹페이지가 "시각적으로 완료"된 것으로 볼 수 있다. 따라서, 트리비얼리티 임계값은 웹페이지의 키 컴포넌트들이 로딩될 때 충족된 것으로 결정된다.
트리비얼리티 임계값은 일부 실시예들에서 태스크마다 상이할 수 있다. 일부 실시예들에서, 상이한 태스크들을 위한 트리비얼리티 임계값은 상이한 세트의 기준을 만족하면 충족될 수 있다. 예를 들어, 뉴스 웹사이트 상의 웹페이지의 로딩을 위한 트리비얼리티 임계값은 페이지 상의 기사들이 로딩되었을 때 설정될 수 있고, 소매점 웹사이트 상의 웹페이지의 로딩을 위한 트리비얼리티 임계값은 제품 이미지들이 로딩되었을 때 설정될 수 있다. 다른 예에서, 특정 웹사이트에 관한 트리비얼리티 임계값은 웹페이지 상에 렌더링되는 요소들의 총 면적의 임계 퍼센티지가 로딩되었을 때 충족될 수 있다. 또 다른 예에서, 트리비얼리티 임계값은 특정 URL로부터의 객체들 외에도 상이한 URL들로부터의 페이지 내의 모든 것들이 로딩되었을 때 충족될 수 있다. 각각의 태스크에 대한 트리비얼리티 임계값은 (예를 들어, 선호도 설정을 통해) 사용자 구성가능할 수 있거나 시스템 관리자 또는 웹 개발자에 의해 디폴트 설정으로 설정될 수 있다.
일부 실시예들에서, 임계값 결정자(210)는 임계값 검사기(205)가 임계값이 충족되는지를 검사시에 이용하기 위한 트리비얼리티 임계값을 결정할 수 있다. 임계값 검사기(205)는 렌더 엔진(135)으로부터 태스크에 관한 다양한 정보(예를 들어, 태스크에 대한 트리비얼리티 임계값이 충족되는지를 결정하기 위해 필요한 정보)를 수신할 수 있다. 이 예에서, 임계값 검사기(205)는 렌더 엔진(135)으로부터 웹페이지 상에 렌더링되는 요소들의 총 면적의 퍼센티지를 획득하고, 수신된 퍼센티지가 임계값 결정기(210)에 의해 결정된 임계 퍼센티지를 지나는지를 결정할 수 있다. 수신된 퍼센티지가 임계 퍼센티지를 지난다고 결정하면, 임계값 검사기(205)는 트리비얼리티 임계값이 충족된다고 결정한다.
일부 실시예들에서, 트리비얼리티 임계값이 충족된다고 결정하는 것에 응답하여, 로켓 효과 발생기(120) 내의 로켓 효과 생성기(225)는 시각적 신호 또는 애니메이션의 타입을 결정하고 프로그레스 바 상에 시각적 신호를 시각적으로 디스플레이할 수 있다. 로켓 효과 생성기(225)는 일부 실시예들에서 렌더 엔진(135)이 "로켓 효과 애니메이션"을 디스플레이하도록 할 수 있고, 프로그레스 바의 완료 상태 표시자의 진행은 태스크의 완료 상태 표시자가 완료로 "급등"한 것처럼 보이게 하도록 프로그레스 바의 한쪽 끝을 향하여 가속한다.
일부 실시예들에서, 임계값 검사기(205)가 트리비얼리티 임계값이 충족된다고 결정하기 전에, 유동적 프로그레스 바 발생기(115)는 프로그레스 바 내의 진행이 어떻게 디스플레이될지를 결정할 수 있다. 유동적 프로그레스 바 발생기(115) 내의 언더 리포터(215)는 렌더 엔진(135)으로부터 태스크의 완료 상태를 표시하는 프로그레스 값들을 수신하여, 렌더 엔진(135)이 태스크의 실제 프로그레스 상태를 언더 리포트하는 완료 상태 표시자를 디스플레이하도록 할 수 있다. 일부 실시예들에서, 프로그레스 값을 수신하면, 언더 리포터(215)는 (예를 들어, 룩업 테이블을 이용하여) 가까이에 있는 태스크에 대한 추정된 완료 시간을 결정할 수 있다. 추정된 완료 시간은 태스크를 완료하는 데 필요한 시간의 양에 대한 초과 추정일 수 있다. 이와 같이, 프로그레스 바에 의해 표시된 완료 상태 표시자는 (예를 들어, 더 작은 증분으로 증분함으로써) 태스크의 실제 진행보다 느린 진행을 표시한다.
진행 평활화 모듈(220)은 일부 실시예들에서 추정된 완료 시간을 이용하여 선형 방정식을 구성할 수 있다. 진행 평활화 모듈(220)은 구성된 선형 방정식을 이용하여 태스크의 완료 상태 표시자가 프로그레스 바에서 증분해야 하는 다음 위치를 결정할 수 있다. 다음 위치를 결정할 때, 진행 평활화 모듈(220)은 렌더 엔진(135)이 프로그레스 바 내의 완료 상태 표시자를 이용하여 태스크의 증분적 진행을 디스플레이하도록 할 수 있다. 일부 실시예들에서, 진행 평활화 모듈(220)은 렌더 엔진(135)으로부터의 프로그레스 값들 및 구성된 선형 방정식들에 기초하여 완료 상태 표시자를 증분할 다음 위치의 결정을 계속할 수 있다. 진행 평활화 모듈(220)은 임계값 검사기(205)가 트리비얼리티 임계값이 충족된다고 결정할 때까지 렌더 엔진이 프로그레스 바 내의 태스크의 완료 상태 표시자의 매끄러운 진행을 계속해서 디스플레이하도록 할 수 있고, 로켓 효과 생성기(225)는 렌더 엔진(135)이 "로켓 효과"를 디스플레이하도록 한다.
도 3은 일부 실시예들에 따른 프로그레스 바의 "로켓 효과"를 디스플레이할 때를 결정하기 위한 프로세스(300)를 개념적으로 도시한다. 설명되는 바와 같이, 렌더 엔진(135)은 일부 실시예들에서 트리비얼리티 임계값이 충족된다고 결정하면 "로켓 효과"와 같은 시각적 신호를 렌더링할 수 있다. 프로세스(300)(또는 본원에 설명된 임의의 다른 프로세스들, 또는 그의 변형들 및/또는 결합들) 중 일부 또는 전부는 실행가능한 명령어들로 구성되는 하나 이상의 컴퓨터 시스템들의 제어하에서 수행될 수 있고, 하나 이상의 프로세서들 상에서 총괄하여 실행되는 코드(예를 들어, 실행가능한 명령어들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들)로서, 하드웨어에 의해, 또는 그의 결합들로서 구현될 수 있다. 코드는 예를 들어, 브라우저 애플리케이션과 같은, 프로세싱 유닛(들)에 의해 실행될 컴퓨터 프로그램의 형태로 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다. 컴퓨터 판독 가능한 저장 매체는 비일시적일 수 있다.
블록(302)에서, 프로세스(300)는 특정 웹페이지를 로딩하는 것과 같은 태스크를 수행하기 위한 요구를 수신할 수 있다. 예를 들어, 브라우저 애플리케이션은 사용자가 웹페이지에 대한 URL을 입력하면 또는 사용자가 페이지에 내장된 하이퍼링크를 활성화하면 요구를 수신할 수 있다. 블록(304)에서, 프로세스(300)는 수행되는 태스크에 대한 프로그레스 바를 디스플레이할 수 있다. 프로그레스 바는 사용자가 진행중인 태스크의 상태를 가시화할 수 있도록 사용 중인 태스크의 프로그레스 상태를 나타내는 프로그레스 바 내의 완료 상태 표시자를 디스플레이할 수 있다.
블록(306)에서, 프로세스(300)는 태스크에 대한 트리비얼리티 임계값을 결정할 수 있다. 트리비얼리티 임계값은 일부 실시예들에서 사용자에 의해 또는 관리자에 의해 미리 구성되는 정적 임계값일 수 있다. 예를 들어, 정적 임계값은 완료인 태스크의 퍼센티지일 수 있다. 웹페이지를 로딩하는 예에서, 트리비얼리티 임계값은 웹페이지 상에 렌더링되는 요소들의 총 면적의 퍼센티지일 수 있다. 일부 실시예들에서, 트리비얼리티 임계값은 메트릭 세트를 이용하여 동적으로 결정될 수 있다. 예를 들어, 일부 실시예들은 로딩될 웹페이지의 타입을 결정하고, 페이지가 사용자에게 "시각적으로 완료"인 것으로 보이도록 웹페이지의 타입에 기초하여 (예를 들어, 룩업 테이블을 이용하여) 로딩될 필요가 있는 페이지 내의 객체들의 양 및/또는 타입들을 결정함으로써 트리비얼리티 임계값을 결정할 수 있다.
블록(308)에서, 프로세스(300)는 태스크에 대한 프로그레스 값을 수신할 수 있다. 웹페이지 로딩 프로세스 동안, 렌더 엔진은 일부 실시예들에서 브라우저 애플리케이션에 대한 페이지의 총 로딩된 퍼센티지를 표시하는 프로그레스 값들을 주기적으로 전송할 수 있다. 블록(310)에서, 프로세스(300)는 트리비얼리티 임계값에 도달하였는지를 결정할 수 있다. 브라우저 애플리케이션은 일부 실시예들에서 프로그레스 값을 이용하여 트리비얼리티 임계값이 충족되었는지를 결정할 수 있다.
프로세스(300)가 트리비얼리티 임계값에 도달하였다고 결정할 때, 프로세스(300)는 블록(316)에서 프로그레스 바에 로켓 효과를 디스플레이한다. 프로세스(300)가 로켓 효과를 디스플레이할 때, 프로세스는 끝난다. 다른 한편으로, 프로세스(300)가 트리비얼리티 임계값에 도달하지 않았다고 결정할 때, 블록(312)에서, 프로세스(300)는 프로그레스 값에 기초하여 프로그레스 바에 태스크의 완료 상태 표시자의 진행을 디스플레이한다. 태스크에 대한 완료 상태 표시자의 진행을 디스플레이하기 위해서, 웹 브라우저는 일부 실시예들에서 프로그레스 값을 이용하여 완료 상태 표시자를 증분할 다음 위치를 결정할 수 있다.
블록(314)에서, 프로세스(300)는 새로운 프로그레스 값이 수신되었는지를 결정할 수 있다. 프로세스(300)가 새로운 프로그레스 값이 수신되었다고 결정할 때, 프로세스(300)는 블록(310)으로 돌아가고, 임계값에 도달하였는지를 결정한다. 프로세스(300)가 새로운 프로그레스 값이 수신되지 않았다고 결정할 때, 프로세스(300)는 블록(312)으로 돌아가서 프로그레스 바에 태스크의 완료 상태 표시자의 진행의 디스플레이를 계속한다. 이와 같이, 브라우저 애플리케이션은 프로그레스 바 내의 완료 상태 표시자를 증분할 다음 위치의 계산을 재개할 수 있다.
일부 실시예들에서, 임계값이 충족된다고 결정하면, 브라우저 애플리케이션은 태스크가 "실질적으로 완료"임 또는 웹페이지가 "사용자에게 시각적으로 완료"임을 사용자에게 표시하기 위한 시각적 신호 또는 애니메이션의 타입을 디스플레이할 수 있다. 도 4는 로켓 애니메이션을 디스플레이하기 위한 일부 실시예들의 예시적인 프로세스(400)를 도시한다. 이 기술분야의 통상의 기술자는 프로세스(400)는 일부 실시예들에서 프로세스(300)의 블록(316)에서 수행될 수 있다는 것을 인식할 것이다.
블록(402)에서, 프로세스(400)는 임계값이 충족될 때를 표시하기 위한 애니메이션의 타입을 식별할 수 있다. 임계값이 충족된다고 결정하는 것에 응답하여, 브라우저 애플리케이션은 사용자에게 시각적 신호를 표시하기 위한 애니메이션의 타입을 식별할 수 있다. 일부 실시예들에서, 애니메이션의 타입은 사용자 구성가능할 수 있거나 디폴트 설정으로서 시스템 관리자에 의해 미리 구성될 수 있다. 애니메이션의 타입은 일 실시예에서 프로그레스 바에서의 현재 위치로부터 다른 위치로 프로그레스 바의 완료 상태 표시자의 하나 이상의 가속 진행을 포함할 수 있다. 일부 실시예들에서, 애니메이션의 타입은 "로켓 효과" 또는 "로켓 애니메이션"을 포함할 수 있고, 여기서 프로그레스 바의 완료 상태 표시자는 프로그레스 바의 한쪽 끝으로 가속한다. 블록(404)에서, 프로세스(400)는 프로그레스 바에 식별된 애니메이션의 타입을 디스플레이할 수 있다.
일부 실시예들에서, 임계값이 충족되기 전에, 브라우저 애플리케이션은 태스크의 실제 상태를 언더 리포트하는 태스크에 대한 완료 상태 표시자를 디스플레이하는 프로그레스 바를 제공할 수 있다. 일부 실시예들은 완료 상태에서의 계산 착오로 인해 프로그레스 바의 끝에 완료 상태 표시자가 멈추는 것을 피하기 위해서 프로그레스 바에서의 진행중인 태스크의 완료 상태를 언더 리포트한다. 도 5는 프로그레스 바에 태스크에 대한 언더 리포트된 프로그레스 상태 표시자를 디스플레이하기 위한 일부 실시예들의 예시적인 프로세스(500)를 도시한다. 이 기술분야의 통상의 기술자는 프로세스(500)는 일부 실시예들에서 프로세스(300)의 블록(312)에서 수행될 수 있다는 것을 인식할 것이다. 블록(502)에서, 프로세스(500)는 태스크에 대한 프로그레스 값을 수신할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션은 도 1의 렌더 엔진(135)과 같은 렌더 엔진으로부터 프로그레스 값을 주기적으로 수신할 수 있다.
블록(504)에서, 프로세스(500)는 프로그레스 값에 기초하여 블록(502)에서 수신된 프로그레스 값보다 작은 다른 프로그레스 값을 결정할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션은 렌더 엔진으로부터 태스크에 대한 프로그레스 값을 수신하여 (예를 들어, 룩업 테이블을 통해) 태스크가 완료될 때까지 추정된 시간을 결정할 수 있다. 브라우저 애플리케이션은 일부 실시예들에서 추정된 완료 시간에 기초하여 선형 방정식을 구성할 수 있다. 선형 방정식을 이용하여, 브라우저 애플리케이션은 프로그레스 바의 완료 상태 표시자가 시간 기간(the period of time) 후에 애니메이션해야 하는 다음 위치를 결정할 수 있다. 시간 기간은 사용자에 의해 미리 구성될 수 있거나 관리자에 의해 미리 선택될 수 있다.
블록(506)에서, 프로세스(500)는 태스크의 실제 완료 상태를 언더 리포트하는 다른 값에 기초하여 프로그레스 바의 태스크에 대한 완료 상태 표시자를 디스플레이할 수 있다. 브라우저 애플리케이션은 일부 실시예들에서 증분된 프로그레스 바를 디스플레이할 수 있고, 여기서 태스크의 완료 상태 표시자는 블록(504)에서 선형 방정식으로부터 계산된 다른 프로그레스 값을 표시한다.
도 6은 프로그레스 바의 태스크에 대한 완료 상태 표시자의 진행을 디스플레이하기 위한 일부 실시예들의 예시적인 프로세스(600)를 도시한다. 이 기술분야의 통상의 기술자는 프로세스(600)는 일부 실시예들에서 프로세스(300)의 블록(312)에서 수행될 수 있다는 것을 인식할 것이다. 프로세스(600)는 예를 들어, 브라우저 애플리케이션에서 실행될 수 있다. 일부 실시예들에서, 브라우저 애플리케이션은 사용자가 (예를 들어, 완료 상태 표시자를 통해) 태스크의 완료 상태를 가시화할 수 있게 하는 프로그레스 바 및 프로그레스 바를 따르는 상태 진행을 제공할 수 있다. 일부 실시예들은 태스크의 완료까지 시간 추정을 이용하여 구성되는 선형 방정식들을 이용하여 매끄러운 진행을 발생할 수 있다. 동시에, 웹 브라우저는 일부 실시예들에서 태스크의 실제 상태를 언더 리포트하는 태스크에 대한 완료 상태 표시자의 진행을 디스플레이할 수 있다.
블록(602)에서, 프로세스(600)는 웹페이지의 로딩과 같은 태스크에 대한 프로그레스 값을 수신할 수 있다. 웹페이지를 로딩하기 위한 사용자 요구의 수신에 응답하여, 브라우저 애플리케이션은 일부 실시예들에서 도 1의 렌더 엔진(135)과 같은 렌더 엔진으로부터 프로그레스 값을 수신할 수 있다. 일부 실시예들에서, 프로그레스 값은 현재 시간에 로딩된 웹페이지의 총 퍼센티지를 표시할 수 있다.
블록(604)에서, 프로세스(600)는 블록(602)에서 수신된 프로그레스 값에 기초하여 추정된 로드 시간을 결정할 수 있다. 브라우저 애플리케이션은 일부 실시예들에서 이미 로딩한 웹페이지의 퍼센티지에 적어도 부분적으로 기초하여 웹페이지의 나머지를 로딩하는 데 요구되는 시간의 양 및 그 양을 로딩하는 데 걸리는 시간의 양을 결정할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션은 룩업 테이블을 이용하여 웹페이지의 나머지를 로딩하는 데 요구되는 시간의 양을 결정할 수 있다. 브라우저 애플리케이션은 일부 실시예들에서 룩업 테이블에서의 추정된 시간에 프로그레스 값을 맵핑할 수 있다. 룩업 테이블은 사용자 또는 시스템 관리자에 의해 구성가능할 수 있다.
일부 실시예들에서, 시스템 관리자는 추정이 더욱 정확하도록 룩업 테이블을 구성하고 미세 조정할 수 있다. 브라우저 애플리케이션은 일부 실시예들에서 추정된 로드 시간을 계산하기 위해, 로딩되는 웹페이지의 타입과 같은, 태스크에 대한 프로그레스 값 이외의 다른 속성들을 이용할 수 있다. 또한, 일부 실시예들에서, 브라우저 애플리케이션은 웹페이지의 나머지를 로딩하는 데 걸릴 가능성이 있는 시간의 양을 초과 추정하는 그러한 방식으로 추정된 로드 시간을 결정할 수 있다. 웹페이지가 로딩을 마치기 위한 더 긴 지속기간을 추정함으로써, 브라우저 애플리케이션은 일부 실시예들에서 그것이 태스크에 대한 실제 상태의 언더 리포트를 일으키도록 더 작은 증분으로 프로그레스 바의 완료 상태 표시자를 증분할 수 있다.
블록(606)에서, 프로세스(600)는 블록(604)으로부터 결정된 추정된 로드 시간을 이용하여 선형 방정식을 구성할 수 있다. 선형 함수 F(t)는 브라우저 애플리케이션이 완료 상태 표시자가 시간에 기초하여 증분되어야 하는, 프로그레스 바 내의 위치를 결정할 수 있게 한다. 일부 실시예들에서, 선형 함수 F(t)는 페이지의 시작이 로드된 이후의 시간을 인수로서 취하여, 프로그레스 바의 완료 상태 표시자가 시간 t에 있어야 하는 위치를 표시하는 X 위치를 갖는 값을 리턴할 수 있다.
브라우저 애플리케이션은 2개의 공지된 포인트들을 이용하여 선형 함수 F(t)를 구성할 수 있다. 일 예에서, 도메인은 로드의 시작 이후에 경과한 시간의 양이고, 범위는 유동적 프로그레스 바를 따르는 X 위치이다. 이 기술분야의 통상의 기술자는 F(t)=mt+b를 이용함으로써 2개의 식별된 포인트들 사이의 선형 진행을 결정할 수 있다.
이 예에서, 현재 정보를 포함하도록 제1 포인트를 설정할 수 있다: T1 = 로드의 시작 이후에 경과한 시간 및 X1 = 현재 X 위치(위치 필드의 폭의 부분으로서 표현됨). 그 다음, 태스크가 완료되었을 때 완료 상태가 있어야 하는 곳을 포함하도록 제2 포인트를 결정할 수 있는데, 즉, T2 = 추정된 로드 시간이고, X2 = 1(위치 필드의 폭의 100% 또는 유동적 프로그레스 최종 목적지를 표현함)이다.
그 다음에, 선형 함수 F(t)가 계산될 수 있고, 여기서,
Figure pat00001
이고, b=0이다:
Figure pat00002
예를 들어, 위치 필드가 1000 픽셀의 폭을 갖고, 브라우저 애플리케이션이 그것이 완료할 페이지 로드에 대해 10초가 걸릴 것이라고 추정하는 경우 및 3초가 이미 지나서, 현재 위치가 300임을 표시하는 경우, T1 = 3, X1 = 300/1000 = .3, T2 = 10, X2 = 1000/1000 = 1이고, 이것은 함수 F(t) = .1t를 산출한다. 일부 실시예들에서, 함수는 시간 추정이 새로운 프로그레스 값이 수신될 때마다 변하기 때문에 브라우저 애플리케이션이 렌더 엔진으로부터 새로운 프로그레스 값을 수신할 때마다 다시 계산된다.
블록(608)에서, 프로세스(600)는 블록(606)에서 구성된 선형 방정식을 이용하여 다음 위치를 계산할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션은 매 200ms 또는 매 250ms와 같은, 사용자 또는 관리자에 의해 설정된 시간 간격마다 증분하도록 설정된다. 웹 브라우저가 200ms마다 단일 애니메이션을 애니메이션하도록 설정된 경우, 프로그레스 바의 완료 상태 표시자에 대한 다음 위치는 F(3s + .2s) = .1(3.2) = .32 또는 320 픽셀들을 푸는 것에 의해 결정될 수 있다. 블록(610)에서, 프로세스(600)는 블록(608)에서 계산된 다음 위치로 애니메이션할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션은 200ms 내에서 위치 X=300으로부터 X=320으로 유동적 프로그레스 바의 완료 상태 표시자를 애니메이션할 수 있다.
그 다음에 프로세스(600)는 종료된다. 프로세스(600)가 도 3의 블록(312)에서 수행되는 실시예들에서, 프로세스(600)가 종료된 후에, 프로세스(300)는 블록(314)으로 진행하여 새로운 프로그레스 값이 수신되었는지를 결정한다. 새로운 프로그레스 값이 수신되지 않았다면, 프로세스(300)는 블록(312)으로 돌아가고, 여기서 프로세스(600)는 프로그레스 바 내의 다음 위치로 프로그레스 바 표시자를 계산 및 애니메이션하도록 다시 수행될 수 있다.
도 7은 본 발명의 일부 실시예들에 따른 프로그레스 바에서 태스크에 대한 완료 상태 표시자의 진행(700)의 예를 도시한다. 설명되는 바와 같이, 브라우저 애플리케이션은 일부 실시예들에서 "로켓 효과"를 설정할 임계값을 결정할 수 있다. 임계값이 충족된다고 결정하는 것에 응답하여(예를 들어, 프로그레스 값이 태스크의 임계 퍼센티지가 완료되었음을 표시할 때), 브라우저 애플리케이션은 임계값이 충족되었다고 사용자에게 경보하는 시각적 신호를 디스플레이할 수 있다. 일부 예에서, 시각적 신호는 "로켓 효과"일 수 있고, 여기서 프로그레스 바의 완료 상태 표시자의 진행은 프로그레스 바의 끝으로 급격히 가속한다. 설명되는 바와 같이, 임계값은 종종 로딩에 관하여 사용자가 웹페이지를 "시각적으로 완료"인 것으로 볼 수 있는 시점 또는 로딩 퍼센티지에서 설정될 수 있다.
도 7에서, 사용자는 웹페이지를 로딩하기 위해 브라우저 애플리케이션을 요청하였다. 사용자 요구를 수신하면(예를 들어, 사용자가 웹 브라우저의 주소 필드에 www.url.com을 입력할 때), 브라우저 애플리케이션은 일부 실시예들에서 웹페이지의 로딩을 위한 상태 표시자를 표시할 수 있는 프로그레스 바를 포함하는 GUI를 디스플레이할 수 있다. t=T0에 도시된 바와 같이, 프로그레스 바는 웹페이지의 어느 것도 지금까지 로딩되지 않았음을 나타낸다. 태스크에 대한 완료 상태 표시자는 이 시간에서 0%를 반영한다. t = T0 + x에서, 프로그레스 바에 표시된 바와 같은 태스크의 완료 상태 표시자는 프로그레스 바의 대략 20%로 증가하였다. 설명되는 바와 같이, 브라우저 애플리케이션은 일부 실시예들에서 프로그레스 바에 태스크의 언더 리포트된 상태를 디스플레이할 수 있다. 이것은 프로그레스 바에서의 완료 상태 표시자의 진행의 일시정지에 대한 가능성을 고려하여 최소화할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션은 웹페이지를 로딩시에 사용자 요구를 수신하는 것에 응답하여 초기 부스트(initial boost)를 디스플레이할 수 있다. 예를 들어, 프로그레스 바의 상태는 웹페이지의 10% 또는 웹페이지의 임의의 것이 이미지 로딩되었는지에 상관없이 사용자의 요구시에 10% 증가를 디스플레이할 수 있다. 이것은 프로그레스 바가 사용자 상호작용에 더욱 잘 반응하는 것처럼 느끼게 하고 향상된 사용자 경험을 제공한다.
일부 실시예들에서, 브라우저 애플리케이션은 프로그레스 바에서의 상태 표시자를 증분할 다음 위치를 계산하고 진행을 애니메이션할 수 있다(예를 들어, 도 6의 프로세스(600)를 이용함). t = T0 + 2x에서, 완료 상태는 프로그레스 바의 대략 15%로 증가하였다. t = T0 + 3x에서, 완료 상태는 프로그레스 바의 대략 40%로 증가하였다. 일부 실시예들에서, 프로그레스 바는 태스크의 완료 상태 표시자에서의 매끄러운 증가를 디스플레이할 수 있다. 웹페이지가 로딩되고 있는 레이트는 전송 레이트, 브라우저 애플리케이션이 실행되고 있는 컴퓨팅 장치의 대역폭, 정보가 검색되어야 하는 서버들 등과 같은 다양한 인자들에 의존하여 변할 수 있다. 브라우저 애플리케이션이 부가적인 프로그레스 값들을 수신할 때, 브라우저 애플리케이션은 웹페이지가 로딩되고 있는 상이한 레이트를 결정하고 새로운 프로그레스 값의 각각의 수신 사이의 일정한 증가를 디스플레이할 수 있다(예를 들어, 각각의 새로운 위치를 계산하기 위해 선형 함수들을 이용함).
t = T0 + 4x = Tthresh(트리비얼리티 임계값이 충족되는 시간)에서 트리비얼리티 임계값에 도달하면, 도 7에 도시된 바와 같은 완료 상태 표시자의 진행은 태스크가 실제로 완료되었는지에 상관없이, 웹페이지를 로딩함에 있어서 태스크의 완료를 전달하기 위해 프로그레스 바의 끝을 향해 가속한다. 이러한 완료 상태 표시자의 진행의 가속은 이 순간에 웹페이지가 "시각적으로 완료"임을 사용자에게 표시하기 위한 시각적 신호로서 역할을 한다. t = T0 + 5x에서, 프로그레스 바는 태스크의 완료를 나타낸다. 일부 실시예들에서, 브라우저 애플리케이션이 임계값에 도달하였음을 결정할 때, 브라우저 애플리케이션은 프로그레스 바가 태스크가 완료되었음을 바로 표시하는 레이트로 진행을 가속할 수 있다. 상이한 실시예들은 상이하게 사용자에게 시각적 신호를 디스플레이할 수 있다. 예를 들어, 일부 실시예들은 프로그레스 바의 끝까지 쭉 단일 가속 진행 대신에 가속들의 다중 스퍼트들(spurts)을 디스플레이함으로써 시각적 신호를 디스플레이할 수 있다.
도 8은 브라우저 애플리케이션이 파라미터들의 세트에 기초하여 태스크가 완료될 때까지 시간 추정을 획득할 수 있게 하는 일부 실시예들의 시간 추정표(800)의 예를 도시한다. 이 예에서, 시간 추정표(800)는 브라우저 애플리케이션이 도 1의 렌더 엔진(135)과 같은 렌더 엔진으로부터 수신하는 상이한 프로그레스 값들(805)에 대한 시간 추정값들(810)을 제공한다. 이 예에서, 브라우저 애플리케이션은 단일 파라미터(즉, 프로그레스 값)를 이용하여 시간 추정을 결정할 수 있지만, 일부 실시예들에서, 브라우저 애플리케이션은 시간 추정표(800)에 포함되지 않은 복수의 파라미터를 이용하여 시간 추정을 결정할 수 있다.
이 예에 도시된 바와 같이, 0%와 35% 사이에 있는 프로그레스 값에 대해 태스크가 완료될 때까지 추정된 시간은 30초이다. 일부 실시예들은 프로그레스 값에 대한 추정된 시간을 제공할 수 있고, 일부 실시예들은 프로그레스 값에 대한 프로그레스 바 내의 위치를 제공할 수 있다. 일부 실시예들에서, 시간 추정표(800)는 브라우저 애플리케이션에 액세스 가능한 데이터 저장소에 원격으로 또는 국부적으로 저장될 수 있다. 시간 추정표(800)는 또한 일부 실시예들에서 적절한 리스트 포맷으로(예를 들어, XML(Xtensible Markup Language) 파일로서) 전자 컴퓨팅 장치의 파일시스템에 저장될 수 있다.
매번 프로그레스 값을 수신하는 것에 응답하여, 브라우저 애플리케이션은 프로그레스 값에 기초하여 시간 추정표(800)로부터 추정된 페이지 로드 시간을 검색할 수 있다. 그 다음에 브라우저 애플리케이션은 추정된 시간을 이용하여 선형 함수를 구성하고 선형 함수에 기초하여 프로그레스 바의 완료 상태 표시자를 증분할 수 있다. 브라우저 애플리케이션은 다른 프로그레스 값이 수신될 때까지 구성된 선형 함수에 기초하여 프로그레스 바의 완료 상태 표시자를 계속해서 증분할 수 있다. 응답하여, 브라우저 애플리케이션은 새로운 프로그레스 값에 기초하여 새로운 선형 함수를 구성하고 새로운 선형 함수에 기초하여 프로그레스 바의 완료 상태 표시자를 증분할 수 있다.
일부 실시예들에서, 추정된 로드 시간은 태스크가 완료되는 데 필요한 시간의 양을 초과 추정할 수 있다. 이와 같이, 초과 추정된 시간에 기초하여 구성된 선형 함수는 프로그레스 바가 태스크의 실제 완료 상태를 본질적으로 언더 리포트하도록 프로그레스 바의 완료 상태 표시자가 더 작은 증분으로 증분하도록 할 수 있다. 또한, 브라우저 애플리케이션은 일부 실시예들에서 정적 맵핑 및 선형 함수들의 세트를 이용하여 프로그레스 바 내의 새로운 위치들을 결정해서 보고된 상태를 증분하지만, 일부 실시예들은 태스크의 상태를 언더 리포트하는 역할도 하는 다른 속성들을 이용하여 새로운 위치를 결정할 수 있다.
도 9는 일부 실시예들에 따른 태스크의 실제 상태를 언더 리포트하면서 매끄럽게 업데이트하는 프로그레스 바의 예시적인 시퀀스(900)를 도시한다. 일부 실시예들에서, 브라우저 애플리케이션은 투박하게 보이는 대신에, 사용자에게 "매끄럽게" 또는 "유동적"으로 보이는 방식으로 태스크에 대한 완료 상태 표시자를 업데이트하는 유동적 프로그레스 바를 디스플레이할 수 있다. 브라우저 애플리케이션은 태스크를 완료하는 데 요구되는 시간의 양을 초과 추정할 수 있어, 프로그레스 바에 디스플레이된 상태 표시자의 진행은 더 작은 증분으로 증분되고, 차례로, 태스크의 실제 상태 진행을 언더 리포트한다.
설명되는 바와 같이, 브라우저 애플리케이션은 렌더 엔진으로부터 프로그레스 값을 수신하고, (예를 들어, 도 8의 시간 추정표(800)를 이용하여 추정된 시간에 대해 프로그레스 값을 맵핑함으로써) 추정된 페이지 로드 시간을 계산하고, 추정된 페이지 로드 시간을 이용하여 선형 함수를 구성하고, 프로그레스 바 내의 새로운 위치를 결정하여 시간 간격에 대한 프로그레스 상태 표시자를 증분할 수 있다. 그 다음에, 브라우저 애플리케이션은 일부 실시예들에서 새로운 위치로 태스크의 진행을 애니메이션할 수 있다. 새로운 위치를 결정하여 새로운 위치로 증분하기 위한 짧은 시간 간격(예를 들어, 200ms, 250ms)을 지정함으로써, 프로그레스 바의 완료 상태 표시자의 진행이 사용자에게 매끄럽게 보일 수 있게 한다.
도 9에서, 브라우저 애플리케이션은 특정 웹페이지에 대한 사용자 요구를 수신한 후에 짧은 시간 기간 내에서(예를 들어, 5밀리초, 50밀리초, 3초, 10초 후) 렌더 엔진으로부터 40%의 프로그레스 값을 수신할 수 있다. 프로그레스 값을 수신한 후에, 브라우저 애플리케이션은 일부 실시예들에서 도 8의 시간 추정표(800)를 이용하여 페이지 로딩이 완료하기 위한 시간 추정을 결정할 수 있다. 시간 추정표(800)를 이용하여, 웹페이지가 로딩을 끝마칠 때까지 추정된 시간은 10초이다.
다시, 프로세스(600)의 블록(606)에서 설명된 바와 같이, 브라우저 애플리케이션은 2개의 공지된 포인트들을 이용하여 선형 함수를 구성할 수 있다. 프로그레스 바의 위치 필드가 1000 픽셀의 폭을 갖고 브라우저 애플리케이션(예를 들어, 렌더 엔진)이 로드가 완료되는 데 10초가 걸릴 것이라고 추정한 경우, 브라우저 애플리케이션은 3초가 지났고 현재 위치가 X=300에 있다고 결정시에 선형 함수 F(t)를 구성할 수 있다. 이러한 예에서, 브라우저 애플리케이션은 프로그레스 바의 진행이 추정된 시간(즉, 10초) 내에서 완료할 수 있도록 하는 방식으로 선형 함수 F(t)를 구성할 수 있다. 이 예에서
Figure pat00003
를 이용하면,
Figure pat00004
이다.
이 경우, 현재 위치로부터 다음 위치로 상태를 애니메이션하는 데 걸리는 시간이 200ms로 설정되면, F(t) = F(3+.2) = .32, 또는 대략 320 픽셀들이다. 설명되는 바와 같이, 현재 위치에 대한 상태를 새로운 위치로 애니메이션하는 데 걸리는 시간이 일부 실시예들에서 사용자 또는 관리자에 의해 구성가능하다. 또한, 브라우저 애플리케이션은 새로운 프로그레스 값이 수신될 때까지 프로그레스 바의 상태를 계속해서 업데이트한다. 이와 같이, t = 3.4에서, 새로운 프로그레스 값이 수신되지 않았기 때문에, 브라우저 애플리케이션은 앞서 구성된 선형 방정식을 이용하여 다른 새로운 위치를 결정한다. F(t) = .1t를 이용하여, 프로그레스 바의 F(3.4) = .34, 또는 1000 픽셀의 폭을 갖는 프로그레스에서 340 픽셀들이다. 브라우저 애플리케이션은 새로운 프로그레스 값이 최종적으로 수신될 때까지 선형 방식으로 선형 함수를 이용하여 프로그레스 바의 완료 상태 표시자를 계속해서 업데이트할 수 있다. 짧은 시간 간격들(예를 들어, 200밀리초) 내에서 상태를 업데이트함으로써, 프로그레스 바의 완료 상태 표시자의 진행은 사용자에게 매끄럽게 보일 수 있다.
후속하여, 새로운 프로그레스 값 60%이 t = 3.4s에서 수신되고, 여기서 페이지 로드가 완료될 때까지의 새로운 시간 추정은 도 8의 표(800)에 따라 5초이다. 브라우저 애플리케이션은 2개의 새로운 포인트 및 F(t)=mt+b를 이용하여 새로운 선형 함수를 다시 구성할 수 있다. 이 기술분야의 통상의 기술자는 2개의 공지된 포인트들을 식별하면 선형 함수를 결정할 수 있다. 따라서, 이 예에서,
Figure pat00005
이다. 새로 구성된 선형 함수를 이용하여, 브라우저 애플리케이션은 그 다음에 각각의 시간 간격 후에 완료 상태 표시자를 증분(애니메이션)할 새로운 엔드포인트들을 결정할 수 있다. 다시, 시간 간격이 200ms에 있으면, t = 3.6에서, F(3.6) = .37 또는 370 픽셀들이다. 다른 200ms 후에, 완료 상태 표시자는 F(3.8) = .39 또는 390 픽셀들에 있는 것으로 계산되고, 등등이다.
일부 실시예들에서, 새로운 웹페이지를 로딩하기 위한 사용자 요구를 수신하는 것에 응답하여, 브라우저 애플리케이션은 태스크에 대한 실제 상태에 상관없이 완료 상태 표시자의 증가를(예를 들어, 프로그레스 바의 10% 또는 20%로) 수행할 수 있다. 이 특징을 포함하는 것은 프로그레스 바가 사용자 상호작용에 반응하는 것처럼 느끼게 할 수 있다.
브라우저 애플리케이션은 일부 실시예들에서 피처의 상태가 변할 때(예를 들어, 피처가 인에이블될 때) GUI 상에 UI 요소를 시각적으로 수정하거나 시각적 효과를 디스플레이할 수 있다. 예를 들어, 브라우저 애플리케이션은 특정 UI 요소의 컬러를 수정함으로써 특정 UI 요소(피처를 표현함)가 디스플레이되는 방식으로 변화를 디스플레이할 수 있다. 다른 예에서, 브라우저 애플리케이션은 상태 변화를 표시하기 위해 GUI 상에 피처를 표현하는 UI 요소의 시각적 외관을 디스플레이할 수 있다. 피처의 상태가 변화되었다는 부가적인 가시성을 제공하기 위하여, 일부 실시예는 전술한 "로켓 효과"를 바로 뒤따라 또는 동시에 UI 요소를 시각적으로 수정할 수 있다. 예를 들어, 일부 실시예들은 UI 요소를 수정(예를 들어, 시각적 외관을 제시하거나 UI 요소를 강조)하거나 로켓 효과의 애니메이션(즉, 여기서 프로그레스 상태 표시자가 현재 위치로부터 프로그레스 바의 끝으로 진행함)이 수정된 UI 요소 또는 시각적 효과에 대한 사용자의 주의를 유도하도록 "로켓 효과"의 완료를 뒤따르는 프로그레스 바의 한쪽 끝 바로 옆에 시각적 효과를 제공할 수 있다.
도 10은 일부 실시예들에 따른 피처에 대한 상태 변화에 응답하여 시각적 효과를 디스플레이하도록 브라우저 애플리케이션에 표시할 수 있는 피처 인에이블러(125)(예를 들어, 도 1의 피처 인에이블링 서브시스템(125))의 더욱 상세한 도면(1000)의 예를 도시한다. 일부 실시예들에서, 피처 인에이블링 서브시스템(125)은 "로켓 효과"가 트리거될 때(즉, 트리비얼리티 임계값이 충족될 때)를 결정하는 로켓 효과 추적기(1005), 피처에 대한 상태가 변화되었는지를 결정하는 피처 상태 추적기(1010), 및 상태의 변화를 전달하기 위해 피처를 표현하는 UI 요소를 시각적으로 수정할지를 결정하는 인에이블 결정기(1015)를 포함할 수 있다.
도 10에서, 로켓 효과 추적기(1005)는 트리비얼리티 임계값이 충족되고 따라서 "로켓 효과"가 트리거되는지를 표시하는 도 1의 로켓 효과 발생기(120)로부터의 신호를 수신할 수 있다. 일부 실시예들에서, 임계값이 충족됨을 표시하는 신호를 수신하면, 로켓 효과 추적기(1005)는 인에이블 결정기(1015)가 UI 요소를 시각적으로 수정할지를 결정할 수 있도록 하는 신호를 인에이블 결정기(1015)에 전송할 수 있다.
일부 실시예들에서, 임계값이 충족됨을 표시하는 로켓 효과 추적기(1005)로부터의 신호를 수신하는 것에 응답하여, 인에이블 결정기(1015)는 피처의 상태가 변화되어 있는지를 결정하기 위해 피처 상태 추적기(710)에 요구를 전송할 수 있다. 피처의 상태가 수정된 것으로 결정되면, 인에이블 결정기(1015)는 UI 요소를 시각적으로 수정하기 위해 렌더 엔진(135)에 요구를 전송할 수 있다.
일부 실시예들에서, 피처 상태 추적기(1010)는 트리비얼리티 임계값이 충족되기 전에 피처의 상태가 변화되었음을 결정할 수 있다. 피처 상태 추적기(1010)는 일부 실시예들에서 피처가 인에이블됨을 표시하는 신호를 인에이블 결정기(1015)에 전송할 수 있다. 인에이블 결정기(1015)는 그 다음에 트리비얼리티 임계값이 충족됨을 표시하는 신호를 로켓 효과 추적기(1005)로부터 수신하면 UI 요소를 시각적으로 수정하기 위해 렌더 엔진(135)에 신호를 전송할 수 있다.
일부 실시예들에서, 렌더 엔진(135)은 "로켓 효과"를 바로 뒤따르는 UI 요소를 시각적으로 수정할 수 있다(즉, 임계값이 충족되었다고 결정되었을 때 완료 상태 표시자가 현재 위치로부터 프로그레스 바의 한쪽 끝에 도달할 때). "로켓 효과"를 뒤따르는 UI 요소를 수정하는 것은 수정된 UI 요소에 대한 사용자의 주의를 유도할 수 있다. 일부 실시예들은 "로켓 효과"(즉, 프로그레스 바의 가속된 프로그레스 상태 표시자의 애니메이션)와 동시에 시각적 신호를 디스플레이한다.
도 11은 트리비얼리티 임계값이 충족되면 인에이블되는 피처에 응답하여 UI 요소를 시각적으로 수정하기 위한 일부 실시예들의 예시적인 프로세스(1100)를 도시한다. 설명되는 바와 같이, 일부 실시예들에서, 도 1의 피처 인에이블러(125)는 임계값이 충족될 때 피처의 상태가 변화되어 있는지(예를 들어, 피처가 인에이블될 준비가 되어 있는지)를 결정할 수 있고, 이로써 렌더 엔진(135)이 피처의 상태를 표현하는 UI 요소의 시각적 상태의 변화를 디스플레이하도록 할 수 있다. 이 기술분야의 통상의 기술자는 일부 실시예들에서 프로세스(300)가 블록(310)에서 임계값이 충족되었다고 결정한 후에 프로세스(1100)가 수행될 수 있다는 것을 인식할 것이다.
블록(1102)에서, 브라우저 애플리케이션은 트리비얼리티 임계값에 도달하였다는 표시를 수신할 수 있다. 블록(1104)에서, 브라우저 애플리케이션은 피처의 상태가 변화되어 있는지 또는 피처가 인에이블될 것인지를 결정할 수 있다. 일부 실시예들은 그것이 인에이블될 때 피처를 렌더링하는 책임이 있는 모듈에 질문함으로써 피처 상태가 변화되어 있는지 또는 피처가 인에이블될 것인지를 결정할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션은 피처가 비기능적으로부터 기능적으로 될 때 피처 상태가 변화된다고 결정할 수 있다. 예를 들어, 리더(reader)들이 상이한 방식으로 웹페이지를 볼 수 있게 하는 피처가 상이한 뷰가 채워져서 볼 준비가 되어 있을 때 변화되거나 인에이블된다.
블록(1106)에서, 브라우저 애플리케이션이 피처 상태가 수정되어 있다고 결정하면, 브라우저 애플리케이션은 "로켓 효과"의 디스플레이에 후속하는 피처 상태를 표현하는 UI 요소의 상태를 시각적으로 수정할 수 있다. 웹 브라우저가 피처가 인에이블되지 않음을 결정하면, 프로세스(1100)는 끝난다. 일부 실시예들에서, 프로세스(1100)가 끝난 후에, 브라우저 애플리케이션은 UI 요소를 시각적으로 수정하지 않고 "로켓 효과"를 디스플레이한다.
도 12는 일부 실시예들에 따른 피처를 나타내는 UI 요소(1210)를 시각적으로 수정하는 프로그레스 바(1205)에서의 태스크를 위한 완료 상태 표시자의 예시적인 진행(1200)을 도시한다. t = T0에서, 프로그레스 바(1205)는 태스크에 대한 0% 완료 상태를 표시하는 완료 상태 표시자를 디스플레이한다. 피처에 대한 상태를 나타내는 UI 요소(1210)는 도 12에 도시된 바와 같이 점선으로 될 수 있고, 피처가 현재 디스에이블되어 있음을 표시한다. t = T1에서, 완료 상태 표시자는 태스크의 상태가 대략 20% 완료됨을 나타낸다. 설명된 바와 같이, 일부 실시예들에서, 프로그레스 바(1205)에 디스플레이된 완료 상태 표시자는 태스크의 언더 리포트된 상태일 수 있다. UI 요소(910)는 이 스테이지에서 디스에이블된 상태로 남는다.
t = Tthresh에서, 완료 상태 표시자의 진행은 태스크의 완료를 표시하기 위한 프로그레스 바의 한쪽 끝을 향해 가속한다. 일부 실시예들에서, 브라우저 애플리케이션은 임계값이 충족될 때 피처가 인에이블되어 있는지를 결정할 수 있다. 이 예에서, 피처는 임계값이 충족될 때 인에이블될 준비가 되어 있다. 완료 상태 표시자가 프로그레스 바의 끝에 도달하기 전에, UI 요소(1210)는 이 예에서 디스에이블된 상태로 남는다.
일부 실시예들에서, UI 요소(1210)는 브라우저 애플리케이션이 임계값이 충족되었음을 결정할 때 인에이블될 수 있다. 이 예에서, (UI 요소(1210)에 의해 표현된) 피처에 대한 상태 변화를 표시하는 시각적 신호는 완료 상태 표시자의 진행이 프로그레스 바의 끝에 도달할 때 인에이블된다. 완료 상태 표시자의 진행이 프로그레스 바의 끝에 도달할 때 UI 요소(1210)의 시각적 상태를 변경하는 것은 사용자의 주의가 UI 요소(1210)에 유도될 수 있게 한다.
도 13은 일부 실시예들에 따른 프로그레스 바에서의 태스크의 변화 이외에 보조 프로그레스 표시자를 렌더링하기 위한 보조 프로그레스 발생기(130) 및 렌더 엔진(135)의 더욱 상세한 도면(1300)의 예를 도시한다. 일부 실시예들에서, 브라우저 애플리케이션은 태스크에 대한 완료 상태 표시자와 함께 보조 프로그레스 표시자를 디스플레이하는 프로그레스 바를 제공할 수 있다. 보조 프로그레스 표시자는 태스크가 현재 수행되고 있는 속도를 포함하는 태스크에 관한 부가적인 정보를 전달할 수 있다. 보조 프로그레스 발생기(130)는 태스크가 수행되고 있는 현재 속도 및 결정된 속도에 대응하는 애니메이션의 타입을 결정할 수 있고, 렌더 엔진(135)은 결정된 속도에 대응하는 애니메이션의 타입을 디스플레이할 수 있다.
일부 실시예들에서, 보조 프로그레스 발생기는 태스크가 수행되고 있는 현재 속도를 결정할 수 있는 속도 결정기(1305), 및 속도와 연관된 애니메이션의 타입을 결정할 수 있는 트랜슬레이터(translator)(1310)를 포함할 수 있다. 속도 결정기(1305)가 태스크가 수행되고 있는 현재 속도(예를 들어, 다운로드 레이트, 전송 레이트)를 결정할 때, 현재 속도는 트랜슬레이터(1310)에 전송될 수 있다. 트랜슬레이터(1310)는 그 다음에 현재 속도와 연관된 애니메이션의 타입을 결정할 수 있다. 그 다음에 보조 프로그레스 발생기(130)는 사용자에게 디스플레이를 위해 렌더 엔진(135)에 애니메이션의 타입을 전송할 수 있다.
도 14는 프로그레스 바에서의 태스크에 대한 완료 상태 표시자와 함께 보조 프로그레스 표시자를 디스플레이하기 위한 일부 실시예들의 예시적인 프로세스(1400)를 도시한다. 일부 실시예들에서, 보조 프로그레스 표시자는 태스크가 수행되고 있는 현재 속도와 같은 완료되고 있는 태스크에 관한 부가적인 정보를 전달할 수 있다. 블록(1402)에서, 프로세스(1400)는 수행되고 있는 태스크에 대한 프로그레스 바를 디스플레이할 수 있다. 브라우저 애플리케이션은 일부 실시예들에서 웹페이지 로딩을 위한 프로그레스 바를 디스플레이할 수 있다. 블록(1404)에서, 프로세스(1400)는 태스크에 대한 프로그레스 값을 수신할 수 있다. 설명된 바와 같이, 브라우저 애플리케이션은 일부 실시예들에서 웹페이지를 로딩하기 위한 프로그레스 값을 렌더 엔진으로부터 수신할 수 있다.
블록(1406)에서, 브라우저 애플리케이션은 프로그레스 값에 기초하여 프로그레스 바의 태스크에 대한 완료 상태 표시자를 디스플레이할 수 있다. 언급한 바와 같이, 일부 실시예들에서, 프로그레스 바에 디스플레이된 완료 상태 표시자는 태스크의 완료 상태를 언더 리포트할 수 있다. 블록(1408)에서, 프로세스(1400)는 태스크가 수행되고 있는 속도를 결정할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션(예를 들어, 도 13의 속도 결정기(1305))은 네트워크 접속, 전송 레이트, 웹 서버의 위치, 웹페이지를 위해 로딩될 객체들의 수 및 사이즈 등에 적어도 부분적으로 기초하여, 특정 순간에 페이지가 로딩하고 있는 속도를 결정할 수 있다.
블록(1410)에서, 프로세스(1400)는 블록(1408)에서 결정된 속도를 나타내는 데 이용될 애니메이션의 타입을 결정할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션(예를 들어, 도 13의 트랜슬레이터(1310))은 결정된 속도가 더 빠를 때 바퀴가 더 빨리 돌아가는 바퀴가 돌아가는 애니메이션(spinning wheel animation), 결정된 속도가 더 빠를 때 프로그레스 바에 디스플레이된 웨이브가 고주파수에서 있는 웨이브 주파수 애니메이션(wave frequency animation) 등을 포함하는 상이한 타입들의 애니메이션의 리스트로부터 애니메이션의 타입을 결정할 수 있다. 일부 실시예들에서, 사용자는 속도를 표현하는 데 이용될 상이한 타입들의 애니메이션을 선택할 수 있다.
블록(1412)에서, 프로세스(1400)는 결정된 속도와 연관된 애니메이션의 타입에 대한 애니메이션을 결정할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션(예를 들어, 트랜슬레이터(1310))은 애니메이션의 타입에 대응하는 애니메이션에 대한 결정된 속도를 맵핑할 수 있다. 예를 들어, 브라우저 애플리케이션은 레벨 3 속도가 룩업 테이블을 이용하여 중간 주파수인 웨이브 애니메이션에 대응한다고 결정할 수 있다. 블록(1414)에서, 프로세스(1400)는 프로그레스 바에서 완료 상태 표시자와 동시에 연관된 애니메이션을 디스플레이할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션은 도 1의 렌더 엔진(135)이 프로그레스 바의 완료 상태 표시자의 진행과 함께 동시에 연관된 애니메이션을 디스플레이하도록 할 수 있다.
도 15는 일부 실시예들에 따른 프로그레스 바에서의 태스크에 대한 완료 상태 표시자와 함께 보조 프로그레스 표시자를 디스플레이하기 위한 다른 예시적인 진행(1500)을 도시한다. 일부 실시예들에서, 브라우저 애플리케이션은 사용자에게 상이한 타입들의 정보를 전달하기 위해 프로그레스 바에서의 복수의 표시자들을 디스플레이할 수 있다. 도 15에 도시된 바와 같이, t = T1에서, 프로그레스 바는 완료 상태 표시자의 밀도에 의해 표시되는 보조 프로그레스 표시와 함께, 프로그레스 바의 대략 1/4에 있도록 완료 상태 표시자를 디스플레이한다. 이 경우, (점들이 드문드문 이격될 때) 완료 상태 표시자의 밀도는 상당히 낮고, 이것은 태스크가 수행되고 있는 속도가 상당히 느림을 표시한다.
t = T2에서, 프로그레스 바는 고밀도의 보조 프로그레스 표시와 함께, 프로그레스 바의 대략 1/3에 있도록 완료 상태 표시자를 디스플레이한다. t = T3에서, 프로그레스 바는 중간 밀도의 보조 프로그레스 표시와 함께, 프로그레스 바의 대략 1/2에 있도록 완료 상태 표시자를 디스플레이한다. 줄어든 밀도는 태스크가 수행되고 있는 속도가 t = T2로부터 감소하였음을 표시한다. 일부 실시예들에서, 원문 데이터(textual data)는 태스크가 수행되고 있는 정확한 속도를 전달하기 위해 밀도 디스플레이를 수반할 수 있다. 일부 예들에서, 보조 프로그레스 표시자는 사용자의 커서가 프로그레스 바 또는 프로그레스 바 표시자 위를 맴도는 경우에만 나타날 수 있고, 이것은 사용자가 태스크에 관한 부가적인 정보를 갖고 싶어함을 표시한다. 또한, 브라우저 애플리케이션은 예를 들어 뷰어에게 웹 주소를 차단하지 않기 위해 완료 상태 표시자에 의해 점유되지 않은 프로그레스 바의 부분에 보조 프로그레스 표시자를 디스플레이할 수 있다.
도 16은 일부 실시예들에 따른 프로그레스 바에서의 태스크의 완료 상태 표시자와 함께 다른 타입의 보조 프로그레스 표시자를 디스플레이하기 위한 예시적인 진행(1600)을 도시한다. 일부 실시예들에서, 브라우저 애플리케이션은 사용자에게 부가적인 정보를 전달하기 위해 프로그레스 바의 완료 상태 표시자의 에지에서 나오는 리플들과 같은, 다른 타입의 표시자를 디스플레이할 수 있다. t = T1에서, 프로그레스 바는 조금씩 나아가고 있는 완료 상태 표시자/바의 에지에서 나오는 리플들에 의해 표현되는 보조 프로그레스 표시와 함께, 프로그레스 바의 대략 2/5에 완료 상태를 디스플레이한다. 이 경우, 리플들의 주파수는 높고, 이것은 웹페이지가 로딩되고 있는 속도가 빠름을 표시한다.
t = T2에서, 프로그레스 바는 중간 주파수 리플들을 디스플레이하는 보조 프로그레스 표시와 함께, 프로그레스 바의 대략 1/2를 점유하도록 완료 상태 표시자를 디스플레이한다. 이 경우, 웹페이지가 로딩되고 있는 속도가 현재 t = T1에서의 속도보다 높은 속도에 있다. t = T3에서, 프로그레스 바는 낮은 주파수 리플들을 디스플레이하는 보조 프로그레스 표시와 함께, 프로그레스 바의 대략 2/3을 점유하도록 완료 상태 표시자를 디스플레이한다. 낮아진 주파수는 태스크가 수행되고 있는 속도가 t = T2로부터 감소하였음을 표시한다. 일부 실시예들에서, 부가적인 애니메이션 효과들은 프로그레스 바에 도시될 수 있다. 예를 들어, 브라우저 애플리케이션은 서브태스크(예를 들어, 웹페이지에 대한 특정 객체를 로딩하는 것)가 수행되고 있는 속도를 전달하기 위하여 보조 프로그레스 표시자 이외의 다른 타입의 애니메이션을 동시에 디스플레이할 수 있다.
도 17은 일부 실시예들에 따른 프로그레스 바에서의 태스크에 대한 완료 상태 표시자와 함께 한 타입의 보조 프로그레스 표시자를 디스플레이하기 위한 다른 예시적인 진행(1700)을 도시한다. 일부 실시예들에서, 브라우저 애플리케이션은 사용자에게 태스크가 수행되고 있는 현재 속도를 전달하기 위해 프로그레스 바에, 돌아가는 바퀴와 같은, 다른 타입의 표시자를 디스플레이할 수 있다. t = T1에서, 프로그레스 바는 프로그레스 바에서의 돌아가는 바퀴에 의해 표현된 보조 프로그레스 표시와 함께, 프로그레스 바의 대략 2/5로 완료 상태 표시자를 디스플레이한다. 이 경우, 바퀴가 돌아가고 있는 속도가 빠르면(3개의 화살표로 표시됨), 이것은 웹페이지가 그 순간에 로딩되고 있는 레이트가 높음을 표시한다.
t = T2에서, 프로그레스 바는 느리게 돌아가는 바퀴의 보조 프로그레스 표시와 함께, 프로그레스 바의 대략 1/2을 점유하도록 완료 상태 표시자를 디스플레이한다. 이 경우, 웹페이지가 로딩되고 있는 속도는 현재 t = T1에서의 속도보다 높은 속도에 있다. t = T3에서, 프로그레스 바는 T = T2에서보다 더 빨리 돌아가는 바퀴의 보조 프로그레스 표시와 함께, 프로그레스 바의 대략 2/3을 점유하도록 완료 상태 표시자를 디스플레이한다. 이중 화살표들은, 태스크가 수행되고 있는 속도가 t = T2로부터 증가하였음을 표시한다. 상이한 타입들의 애니메이션이 상이한 실시예들에서 이용될 수 있다. 일부 실시예들에서, 애니메이션의 타입들은 사용자 및/또는 시스템 관리자에 의해 구성 가능하다.
많은 전술한 피처들 및 애플리케이션들은 컴퓨터 판독 가능한 저장 매체에 인코딩된 프로그램 명령어들의 세트로서 특정되는 소프트웨어 프로세스들로서 구현될 수 있다. 이들 프로그램 명령어들이 하나 이상의 프로세싱 유닛들에 의해 실행될 때, 프로그램 명령어들은 프로세싱 유닛(들)으로 하여금, 명령어들에 표시된 액션들을 수행하도록 한다. 컴퓨터 판독 가능한 저장 매체의 예들은 CD-ROM, 플래시 드라이브, RAM 칩, 하드 드라이브, EPROM 등을 포함한다. 컴퓨터 판독 가능한 저장 매체는 무선으로 또는 유선 접속들을 거쳐서 지나가는 캐리어파들 및 전자 신호들을 포함하지 않는다. "소프트웨어"는 일반적으로 프로세싱 유닛(들)에 의해 실행될 때, 하나 이상의 컴퓨터 시스템들로 하여금, 다양한 동작을 수행하도록 하는 명령어들의 시퀀스들을 가리키고, 따라서 소프트웨어 프로그램들의 동작들을 실행하고 수행하는 하나 이상의 특정 기계 구현들을 정의한다.
도 18은 본 발명의 실시예에 따른 컴퓨터 시스템(1800)을 도시한다. 프로그레스 바 시스템(100)은 여기에 도시된 컴퓨터 시스템(1800)과 같은 컴퓨터 시스템 내에 구현될 수 있다. 컴퓨터 시스템(1800)은 예를 들어, 임의의 특정 폼팩터로 한정되지 않는, 데스크톱 또는 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트폰, PDA(personal data assistant), 또는 임의의 다른 타입의 컴퓨팅 장치를 포함하는 다양한 컴퓨팅 장치 중 임의의 것으로서 구현될 수 있다. 컴퓨터 시스템(1800)은 프로세싱 유닛(들)(1805), 저장소 서브시스템(1810), 입력 장치들(1820), 디스플레이(1825), 네트워크 인터페이스(1835), 및 버스(1840)를 포함할 수 있다.
프로세싱 유닛(들)(1805)은 하나 이상의 코어들 또는 복수의 프로세서들을 가질 수 있는 단일 프로세서를 포함할 수 있다. 일부 실시예들에서, 프로세싱 유닛(들)(1805)은 그래픽 프로세서들, 디지털 신호 프로세서들 등과 같은 하나 이상의 특수 목적 코프로세서들뿐만 아니라 범용 주 프로세서를 포함할 수 있다. 일부 실시예들에서, 일부 또는 전부의 프로세싱 유닛들(1805)은 ASIC(application specific integrated circuit) 또는 FPGA(field programmable gate array)와 같은 커스터마이즈화 회로들(customized circuits)을 이용하여 구현될 수 있다. 일부 실시예들에서, 이러한 집적 회로들은 회로 자체에 저장되는 명령어들을 실행한다. 다른 실시예들에서, 프로세싱 유닛(들)(1805)은 저장소 서브시스템(1810)에 저장된 명령어들을 실행할 수 있다.
저장소 서브시스템(1810)은 시스템 메모리, ROM(read-only memory), 및 영구 저장 장치와 같은 다양한 메모리 유닛을 포함할 수 있다. ROM은 프로세싱 유닛(들)(1805) 및 전자 장치(1800)의 다른 모듈들에 의해 필요로 되는 정적 데이터 및 명령어들을 저장할 수 있다. 영구 저장 장치는 판독-및-기입 메모리 장치일 수 있다. 이 영구 저장 장치는 컴퓨터 시스템(1800)이 파워 다운(power down)될 때에도 명령어들 및 데이터를 저장하는 불휘발성 메모리 유닛일 수 있다. 본 발명의 일부 실시예들은 영구 저장 장치로서 대용량 저장 장치(예를 들어, 자기 또는 광 디스크 또는 플래시 메모리)를 이용할 수 있다. 다른 실시예들은 영구 저장 장치로서 착탈식 저장 장치(예를 들어, 플로피 디스크, 플래시 드라이브)를 이용할 수 있다. 시스템 메모리는 동적 랜덤 액세스 메모리와 같은, 판독-및-기입 메모리 장치 또는 휘발성 판독-및-기입 메모리일 수 있다. 시스템 메모리는 실행시간에 프로세서가 필요로 하는 명령어들 및 데이터의 일부 또는 전부를 저장할 수 있다.
저장소 서브시스템(1810)은 다양한 타입들의 반도체 메모리 칩들(DRAM, SRAM, SDRAM, 플래시 메모리, 프로그래머블 판독 전용 메모리(programmable read-only memory)) 등을 포함하는 컴퓨터 판독 가능한 저장 매체의 임의의 결합을 포함할 수 있다. 자기 및/또는 광 디스크들이 또한 이용될 수 있다. 일부 실시예들에서, 저장소 서브시스템(1810)은 판독 가능 및/또는 기입 가능일 수 있는 착탈식 저장 매체를 포함할 수 있고, 이러한 매체의 예들은 CD(compact disc), 판독 전용 디지털 다방면 디스크(예를 들어, DVD-ROM, 듀얼 레이어 DVD-ROM), 판독 전용 및 녹화 가능 Blue-Ray® 디스크들, 초밀도 광 디스크들, 플래시 메모리 카드들(예를 들어, SD 카드들, mini-SD 카드들, micro-SD 카드들 등), 자기 "플로피" 디스크 등을 포함한다. 컴퓨터 판독 가능한 저장 매체는 무선으로 또는 유선 접속들을 거쳐서 지나가는 캐리어파들 및 일시적 전자 신호들을 포함하지 않는다.
일부 실시예들에서, 저장소 서브시스템(1810)은 브라우저 애플리케이션(1845)과 같은, 프로세싱 유닛(들)(1805)에 의해 실행될 하나 이상의 소프트웨어 프로그램들을 저장할 수 있다. 언급한 바와 같이, "소프트웨어"는 프로세싱 유닛(들)(1805)에 의해 실행될 때, 컴퓨터 시스템(1800)으로 하여금, 다양한 동작을 수행하도록 하는 명령어들의 시퀀스들을 가리키고, 따라서 소프트웨어 프로그램들의 동작들을 실행하고 수행하는 하나 이상의 특정 기계 구현들을 정의한다. 명령어들은 프로세서에 의한 프로세싱을 위해 메모리 내로 판독될 수 있는 자기 저장소에 저장된 애플리케이션들 및/또는 판독 전용 메모리에 상주하는 펌웨어로서 저장될 수 있다. 소프트웨어는 원하는 경우 상호작용하는 별개의 프로그램들 또는 프로그램 모듈들의 모음 또는 단일 프로그램으로서 구현될 수 있다. 프로그램들 및/또는 데이터는 불휘발성 저장소에 저장되어 프로그램 실행 중에 휘발성 작업 메모리에 전부 또는 부분적으로 복사될 수 있다. 저장소 서브시스템(1810)으로부터, 프로세싱 유닛(들)(1805)은 본원에 설명된 다양한 동작을 실행하기 위해 프로세싱할 데이터 및 실행할 프로그램 명령어들을 검색할 수 있다.
사용자 인터페이스는 하나 이상의 사용자 입력 장치(1820), 디스플레이 장치(1825), 및/또는 하나 이상의 다른 사용자 출력 장치(도시되지 않음)에 의해 제공될 수 있다. 입력 장치들(1820)은 사용자가 컴퓨팅 시스템(1800)에 신호들을 제공할 수 있는 임의의 장치를 포함할 수 있고, 컴퓨팅 시스템(1800)은 특정 사용자 요구들 또는 정보를 나타내는 신호들을 해석할 수 있다. 다양한 실시예에서, 입력 장치들(1820)은 키보드 터치 패드, 터치 스크린, 마우스 또는 다른 포인팅 장치, 스크롤 휠, 클릭 휠, 다이얼, 버튼, 스위치, 키패드, 마이크로폰 등 중 임의의 것 또는 전부를 포함할 수 있다.
디스플레이(1825)는 전자 장치(1800)에 의해 발생되는 이미지들을 디스플레이할 수 있고, 지원하는 전자장치(예를 들어, 디지털-아날로그 또는 아날로그-디지털 변환기들, 신호 프로세서들 등)와 함께, 다양한 이미지 발생 기술들, 예를 들어, CRT(cathode ray tube), LCD(liquid crystal display), OLED(organic light-emitting diode)를 포함하는 LED(light-emitting diode), 프로젝션 시스템 등을 포함할 수 있다. 일부 실시예들은 입력 및 출력 장치 둘다로서 기능하는 터치스크린과 같은 장치를 포함할 수 있다. 일부 실시예들에서, 다른 사용자 출력 장치들은 디스플레이(1825) 이외에 또는 대신에 제공될 수 있다. 예들은 표시등, 스피커, 택틸 "디스플레이" 장치, 프린터 등을 포함한다.
일부 실시예들에서, 디스플레이(1825)는 디스플레이(1825)의 특정 영역들 내의 가시 이미지 요소들이 사용자가 사용자 입력 장치들(1820)을 이용하여 선택하는 활성 요소들 또는 제어 요소들로서 정의되는 그래픽 사용자 인터페이스를 제공할 수 있다. 예를 들어, 사용자는 사용자 입력 장치를 조작하여 제어 요소 위에 온스크린 커서 또는 포인터를 배치하고 나서, 버튼을 클릭하여 선택을 표시할 수 있다. 대안적으로, 사용자는 터치스크린 장치 상의 제어 요소(예를 들어, 손가락 또는 스타일러스로) 터치할 수 있다. 일부 실시예들에서, 사용자는 제어 요소와 연관된 하나 이상의 단어를 말할 수 있다(단어는 예를 들어, 요소 상의 라벨 또는 요소와 연관된 기능일 수 있다). 일부 실시예들에서, 터치 감지 장치 상의 사용자 제스처는 입력 커맨드들로서 인식 및 해석될 수 있고, 이들 제스처들은 디스플레이(1825)에서 임의의 특정 어레이와 연관될 수 있지만 그러할 필요는 없다. 다른 사용자 인터페이스들이 또한 구현될 수 있다.
네트워크 인터페이스(1835)는 전자 장치(1800)에 대해 음성 및/또는 데이터 통신 능력을 제공할 수 있다. 일부 실시예들에서, 네트워크 인터페이스(1835)는 (예를 들어, 셀룰러 전화 기술, 3G, 4G 또는 EDGE와 같은 진보된 데이터 네트워크 기술, WiFi(IEEE 802.11 계열 표준들, 또는 다른 모바일 통신 기술들, 또는 그의 임의의 결합), GPS 수신기 컴포넌트들, 및/또는 다른 컴포넌트들을 이용하여) 무선 음성 및/또는 데이터 네트워크들에 액세스하기 위한 무선 주파수(RF) 송수신기 컴포넌트들을 포함할 수 있다. 일부 실시예들에서, 네트워크 인터페이스(1835)는 무선 인터페이스 이외에 또는 대신에 유선 네트워크 접속(예를 들어, 이더넷)을 제공할 수 있다. 네트워크 인터페이스(1835)는 하드웨어(예를 들어, 안테나, 변조기/복조기, 인코더/디코더, 및 다른 아날로그 및/또는 디지털 신호 프로세싱 회로) 및 소프트웨어 컴포넌트들의 결합을 이용하여 구현될 수 있다.
버스(1840)는 전자 장치(1800)의 다수의 내부 장치들을 통신가능하게 접속하는 다양한 시스템, 주변장치, 및 칩셋 버스들을 포함할 수 있다. 예를 들어, 버스(1840)는 저장소 서브시스템(1810)과 프로세싱 유닛(들)(1805)을 통신가능하게 결합할 수 있다. 버스(1840)는 또한 입력 장치들(1820)과 디스플레이(1825)에 접속한다. 버스(1840)는 또한 네트워크 인터페이스(1835)를 통해 네트워크에 전자 장치(1800)를 결합한다. 이러한 식으로, 전자 장치(1800)는 복수의 컴퓨터 시스템들의 네트워크(예를 들어, LAN(local area network), WAN(wide area network), 인트라넷, 또는 인터넷과 같은 네트워크들의 망)의 일부분일 수 있다. 전자 장치(1800)의 임의의 또는 모든 컴포넌트들은 본 발명과 결합하여 이용될 수 있다.
일부 실시예들은 마이크로프로세서들, 저장소 및 컴퓨터 판독 가능한 저장 매체에 컴퓨터 프로그램 명령어들을 저장하는 메모리와 같은 전자 컴포넌트들을 포함한다. 본 명세서에 설명된 많은 피처들은 컴퓨터 판독 가능한 저장 매체에 인코딩된 프로그램 명령어들의 세트로서 특정되는 프로세스들로서 구현될 수 있다. 이들 프로그램 명령어들이 하나 이상의 프로세싱 유닛들에 의해 실행될 때, 그것들은 프로세싱 유닛(들)이 프로그램 명령어들에 표시된 다양한 동작을 수행하도록 한다. 프로그램 명령어들 또는 컴퓨터 코드의 예들은 컴파일러에 의해 생성되는 것과 같은 기계 코드, 및 인터프리터를 이용하여 컴퓨터, 전자 컴포넌트, 또는 마이크로프로세서에 의해 실행되는 고레벨 코드를 포함하는 파일들을 포함한다.
적절한 프로그래밍을 통해, 프로세싱 유닛(들)(1805)은 전자 장치(1800)에 대해 다양한 기능을 제공할 수 있다. 예를 들어, 프로세싱 유닛(들)(1805)은 브라우저 애플리케이션(1845)을 실행할 수 있다. 브라우저 애플리케이션(1845)은 웹페이지를 렌더링함에 있어서 로컬 또는 원격 소스들로부터 콘텐츠 아이템들을 검색 및 표시하는 능력(예를 들어, 웹페이지들을 검색 및 표시하기 위해 HTTP 또는 다른 데이터 전송 프로토콜들을 이용함) 및 하이퍼링크의 선택, 볼 아이템의 선택, 특정 콘텐츠 아이템에 대한 응답으로 사용자에 의한 데이터의 제출(예를 들어, 쌍방향 웹페이지 상의 폼을 채우는 것) 등과 같은 콘텐츠 아이템들에 관계된 사용자 입력을 수신 및 해석하는 능력과 같은 다양한 기능을 제공할 수 있다. 일부 실시예들에서, 브라우저 애플리케이션(1845)은 웹페이지의 로딩과 같은 태스크의 완료 상태를 나타내는 완료상태 표시자를 디스플레이하는 프로그레스 바를 제공할 수 있다. 다양한 부가적인 정보가 예를 들어, 애니메이션 효과들을 통해 프로그레스 바 내에 디스플레이될 수 있다. 예를 들어, 웹페이지가 특정 순간에 로딩되고 있는 속도는 변하는 주파수들을 갖는 리플들의 애니메이션을 통해 브라우저 애플리케이션(145)에 의해 제시될 수 있다.
컴퓨터 시스템(1800)은 예시적이고 변형들 및 수정들이 가능하다는 것을 알 것이다. 컴퓨터 시스템(1800)은 여기에 구체적으로 설명되지 않은 다른 능력들(예를 들어, 이동 전화, GPS(global positioning system), 전력 관리, 하나 이상의 카메라, 외부 장치들 또는 액세서리들을 접속하기 위한 다양한 접속 포트들 등)을 가질 수 있다. 또한, 컴퓨터 시스템(1800)은 특정 블록들과 관련하여 설명되지만, 이들 블록들은 설명의 편의를 위해 정의되고 컴포넌트 부분들의 특정 물리적 배열을 시사하도록 의도되지 않는다는 것을 이해한다. 또한, 블록들은 물리적으로 별개의 컴포넌트들에 대응할 필요가 없다. 블록들은 예를 들어, 프로세서를 프로그래밍하거나 적절한 제어 회로를 제공함으로써 다양한 동작을 수행하도록 구성될 수 있고, 다양한 블록은 어떻게 초기 구성이 획득되는지에 의존하여 재구성 가능할 수 있거나, 또는 그렇지 않을 수 있다. 본 발명의 실시예들은 회로 및 소프트웨어의 임의의 결합을 이용하여 구현된 전자 장치들을 포함하는 다양한 장치에 실현될 수 있다.
상이한 접근법들이 설명된 실시예들에 따라 다양한 환경들에 구현될 수 있다. 도 19는 본 발명의 다양한 양태들을 구현할 수 있는 환경(1900)의 예를 도시한다. 웹 기반 환경이 설명의 목적으로 이용되지만, 이 기술분야의 통상의 기술자는 본 발명의 다양한 실시예를 구현하기 위해 상이한 환경들이 이용될 수 있다는 것을 인식할 것이다.
환경(1900)은 전자 클라이언트 장치(1902), 웹 서버(1906), 및 적어도 하나의 애플리케이션 서버(1908)를 포함한다. 전자 클라이언트 장치(1902)는 요구들, 메시지들, 및/또는 데이터를 네트워크를 거쳐서 송수신하고 장치의 사용자에게 정보를 전달하도록 동작 가능한 임의의 적절한 전자 장치를 포함할 수 있다. 이러한 클라이언트 장치들의 예들은 퍼스널 컴퓨터들, 모바일 전화기들, 랩톱 컴퓨터들, 퍼스널 데이터 어시스턴스들(personal data assistances) 등을 포함한다. 전자 클라이언트 장치(1902)는 적어도 하나의 네트워크를 통해 웹 서버(1906)와 통신할 수 있고, 여기서 웹 서버(1906)는 전자 클라이언트 장치(1902)로부터 요구들을 수신하고 네트워크를 거치는 통신들에 응답하여 콘텐츠를 제공할 수 있다.
이 기술분야의 통상의 기술자는 링크 또는 달리 구성될 수 있고 상호작용하여 데이터 저장소(여기에 도시되지 않음)로부터 데이터를 획득하는 것과 같은 태스크들을 수행할 수 있는, 몇몇 애플리케이션 서버들, 층들 또는 다른 요소들, 프로세스들 또는 컴포넌트들이 존재할 수 있다는 것을 인식할 것이다. 본원에 이용된 바와 같이, 용어 "데이터 저장소"는 하나 이상의 데이터 서버들, 데이터베이스들, 데이터 저장 장치들, 및/또는 데이터 저장 매체와 같은, 데이터를 저장, 액세스, 및 검색할 수 있는 임의의 장치 또는 장치들의 결합을 가리킬 수 있다. 애플리케이션 서버(들)(1908)는 클라이언트 장치에 대한 하나 이상의 애플리케이션의 양태들을 실행하기 위한 하드웨어 및/또는 소프트웨어를 포함할 수 있고, HTML, XML, 또는 임의의 다른 적절한 구조된 언어의 형태로 웹 서버(1906)를 통해 사용자에게 전송될 텍스트, 그래픽, 오디오 및/또는 비디오와 같은 콘텐츠를 발생할 수 있다. 클라이언트 장치(1902)와 애플리케이션 서버(1908) 사이의 콘텐츠의 전달뿐만 아니라, 모든 요구들 및 응답들의 핸들링은 웹 서버(1906)에 의해 핸들링될 수 있다. 웹 및 애플리케이션 서버들은 요구되지 않으며, 단지 환경(1900)의 컴포넌트들의 예들이라는 것을 이해해야 한다.
일부 실시예들에서, 웹 서버(1906)는 HTTP 서버들, FTP 서버들, CGI 서버들, 데이터 서버들, 자바 서버들 및 비즈니스 애플리케이션 서버들을 포함하는 다양한 서버 또는 미드-타이어(mid-tier) 애플리케이션들 중 임의의 것을 실행할 수 있다. 웹 서버(들)(1906)는 또한 예를 들어, Java®, C, C# 또는 C++과 같은 임의의 프로그래밍 언어 또는 Perl, Python 또는 TCL과 같은 임의의 스크립팅 언어와, 그의 결합들로 기입된 하나 이상의 스크립트들 또는 프로그램들로서 구현될 수 있는 하나 이상의 웹 애플리케이션들을 실행함으로써, 클라이언트 장치(1902)로부터 요구들에 응답하여 프로그램들 또는 스크립트들을 실행할 수 있다.
클라이언트 장치들(1902) 각각은 디스플레이(1910)를 포함할 수 있고, 네트워크를 거쳐서 수신된 메시지들 및/또는 데이터는 사용자에게 국부적으로 렌더링되고 디스플레이될 수 있다. 브라우저 애플리케이션은 국부적인 렌더 엔진이 사용자에게 콘텐츠(예를 들어, 콘텐츠 및 프로그레스 바를 포함하는 웹 브라우저)를 디스플레이하도록 할 수 있고, 프로세싱은 일부 실시예들에서 웹 서버(1906) 및 하나 이상의 애플리케이션 서버들(1908)을 통해 "크라우드에서"(1904) 수행될 수 있다. 예를 들어, 데이터 전송 레이트, 태스크의 완료 상태, 태스크의 프로그레스 상태의 언더 리포트, 웹페이지가 로딩되고 있는 속도는 "크라우드에서"(1904) 결정될 수 있다. 환경(1900)은 다양한 통신 링크들(예를 들어, 컴퓨터 네트워크들)을 통해 상호접속되는 여러 컴퓨터 시스템들 및 컴포넌트들을 이용하는 분산 컴퓨팅 시스템일 수 있다.
본 발명은 특정 실시예들과 관련하여 설명되었지만, 이 기술분야의 통상의 기술자는 다수의 수정이 가능하다는 것을 인식할 것이다: 프로그레스 바에 대한 보조 프로그레스 표시자를 디스플레이하기 위한 상이한 방식들, "로켓 효과"를 전달하기 위한 상이한 타입들의 애니메이션, 프로그레스 바에서의 완료 상태의 진행을 매끄럽게 하기 위한 상이한 방식들, 인에이블될 수 있는 상이한 피처들(사파리(Safari) 판독기 버튼 외에도) 등. 따라서, 본 발명은 특정 실시예들과 관련하여 설명되었지만, 본 발명은 다음의 청구항들의 범위 내에서 모든 수정들 및 등가물들을 커버하도록 의도된다는 것을 알 것이다.
100: 프로그레스 바 시스템
115: 유동적 프로그레스 바 발생기
120: 로켓 효과 발생기
125: 피처 인에이블러
130: 보조 프로그레스 발생기
135: 렌더 엔진
140: 웹 브라우저
205: 임계값 검사기
210: 임계값 결정기
215: 언더 리포터
220: 진행 평활화 모듈
225: 로켓 효과 생성기
1805: 프로세서
1810: 저장소 서브시스템
1815: 브라우저
1820: 사용자 입력 장치들
1825: 사용자 출력 장치들
1835: 네트워크 인터페이스
1906: 웹 서버
1908: 애플리케이션 서버
1910: 브라우저

Claims (20)

  1. 전자 장치에 의해, 수행되고 있는 태스크에 대한 완료 상태 표시자를 시각적으로 디스플레이하는 프로그레스 바(progress bar)를 디스플레이하는 단계 - 상기 완료 상태 표시자는 상기 태스크의 완료 상태를 표현함 - ;
    상기 전자 장치에 의해, 상기 프로그레스 바가 상기 태스크의 완료를 나타내는 것으로서 디스플레이될 때를 표시하는 트리비얼리티 임계값(triviality threshold)을 결정하는 단계 - 상기 트리비얼리티 임계값은 상기 태스크의 완료 이전 시간을 표시함 - ; 및
    상기 트리비얼리티 임계값에 도달하면, 상기 전자 장치에 의해, 상기 프로그레스 바가 상기 태스크의 완료를 나타내도록 하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 프로그레스 바가 상기 태스크의 완료를 나타내도록 하는 단계는,
    상기 프로그레스 바에서의 상기 완료 상태 표시자의 현재 위치를 결정하는 단계; 및
    상기 태스크의 완료를 표시하기 위해 상기 프로그레스 바에서의 상기 완료 상태 표시자를 상기 현재 위치로부터 상기 프로그레스 바의 한쪽 끝으로 진행시키는(advancing) 단계
    를 포함하는 방법.
  3. 제1항에 있어서, 상기 트리비얼리티 임계값은 메트릭 세트(a set of metrics)를 이용하여 결정되는 방법.
  4. 제3항에 있어서, 상기 태스크는 웹페이지를 디스플레이하는 것이고, 상기 방법은,
    상기 웹페이지를 보기 위한 사용자 요구를 수신하는 단계를 더 포함하고,
    상기 메트릭 세트는 상기 웹페이지의 URL(uniform resource locator), 상기 웹페이지의 콘텐츠가 속하는 카테고리, 상기 웹페이지에 포함된 다수의 아이템, 또는 상기 웹페이지의 콘텐츠가 로딩될 소스 중 적어도 하나를 포함하는 방법.
  5. 제1항에 있어서,
    다른 프로그레스 값을 수신하는 단계; 및
    상기 다른 프로그레스 값에 기초하여 상기 프로그레스 바에서의 상기 완료 상태 표시자를 업데이트하는 단계
    를 더 포함하는 방법.
  6. 제1항에 있어서, 상기 방법은,
    프로그레스 값을 수신하는 단계;
    상기 프로그레스 바의 부분 내의 위치에 상기 프로그레스 값을 맵핑하는 단계 - 상기 부분은 상기 프로그레스 바의 전체 길이보다 작음 - ; 및
    상기 맵핑된 위치에 기초하여 상기 프로그레스 바에 상기 태스크의 상기 완료 상태를 디스플레이하는 단계
    를 더 포함하는 방법.
  7. 제1항에 있어서, 상기 태스크는 신문과 연관된 웹페이지를 렌더링하는 것을 포함하고, 상기 임계값은 상기 웹페이지와 연관된 특정 기사의 로딩시에 도달되는 방법.
  8. 제1항에 있어서, 상기 태스크는 서브태스크들의 세트를 포함하고, 상기 임계값은 상기 서브태스크들의 세트보다 작은 상기 서브태스크들의 서브세트의 완료시에 도달되는 방법.
  9. 제1항에 있어서, 상기 태스크는 객체들의 세트를 포함하는 웹페이지를 렌더링하는 것을 포함하고, 각각의 서브태스크는 상기 객체들의 세트 내의 객체의 로딩을 포함하고, 상기 임계값은 상기 서브태스크들의 서브세트 내의 각각의 객체의 로딩시에 도달되는 방법.
  10. 제1항에 있어서,
    프로그레스 값들의 세트를 수신하는 단계; 및
    수행되고 있는 상기 태스크에 대한 업데이트된 완료 상태 표시자를 디스플레이하기 위해 상기 임계값에 도달하기 전에 상기 프로그레스 바를 업데이트하는 단계
    를 더 포함하고,
    상기 태스크에 대한 상기 업데이트된 완료 상태 표시자는 상기 태스크의 완료 상태를 언더 리포트(underreport)하는 방법.
  11. 제1항에 있어서, 상기 태스크는 복수의 서브태스크들을 포함하고, 각각의 서브태스크는 상이한 위치로부터 객체들의 로딩을 요구하고, 상기 방법은,
    완료된 각각의 서브태스크의 개개의 퍼센티지를 결정하는 단계; 및
    각각의 서브태스크의 상기 개개의 퍼센티지 각각이 임계 퍼센티지(threshold percentage)에 도달하였을 때 상기 임계값이 도달되었다고 결정하는 단계
    를 더 포함하는 방법.
  12. 제1항에 있어서, 각각의 서브태스크에 대한 임계 퍼센티지(threshold percentage)는 사용자 또는 시스템 관리자 중 적어도 하나에 의해 구성 가능한 방법.
  13. 실행될 때, 전자 장치 내의 프로세서로 하여금, 제1항 내지 제12항 중 어느 한 항에 따른 방법을 실행하도록 하는 프로그램 명령어들로 인코딩된 컴퓨터 판독 가능한 저장 매체.
  14. 전자 장치로서,
    프로세서; 및
    상기 프로세서에 결합된 메모리 장치
    를 포함하고,
    상기 메모리 장치는 프로그레스 바에서의 태스크의 완료 상태를 디스플레이하기 위해 실행될 명령어들을 포함하고, 상기 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    태스크에 대한 완료 상태 표시자를 포함하는 프로그레스 바를 디스플레이하게 하고;
    상기 태스크에 대한 기준의 세트를 결정하게 하고 - 상기 기준의 세트를 만족하면, 상기 태스크는 "본질적으로 완료(essentially complete)"임을 표시함 - ;
    상기 태스크와 연관된 프로그레스 값들의 세트를 수신하게 하고;
    상기 프로그레스 값들의 세트에 기초하여 상기 기준의 세트가 충족되었는지를 결정하게 하고; 및
    상기 기준의 세트가 충족되었을 때 상기 프로그레스 바에 애니메이션 효과의 타입을 디스플레이하게 하는 전자 장치.
  15. 제14항에 있어서, 상기 기준의 세트는 임계 데이터 양(threshold amount of data)을 포함하고, 상기 프로그레스 값들의 세트가 상기 임계 데이터 양이 수신되었음을 표시할 때 상기 기준의 세트는 충족되는 전자 장치.
  16. 제14항에 있어서, 상기 명령어들은, 또한, 상기 프로세서로 하여금,
    상기 프로그레스 값들의 세트에 기초하여 상기 태스크에 대한 상기 완료 상태 표시자를 디스플레이하게 하고;
    프로그레스 값들의 부가적인 세트들을 수신하는 것에 응답하여 상기 프로그레스 바에서의 상기 태스크에 대한 상기 완료 상태 표시자를 업데이트하게 하고;
    상기 기준의 세트가 충족되었을 때 상기 애니메이션 효과의 타입을 디스플레이하기 위해 예비되는(reserved) 상기 프로그레스 바의 임계 위치를 결정하게 하고,
    상기 프로그레스 바에서의 상기 태스크에 대한 상기 업데이트된 완료 상태 표시자는 상기 기준의 세트가 충족되기 전에 상기 임계 위치 전의 상기 프로그레스 바에서의 위치를 표시하는 전자 장치.
  17. 제14항에 있어서, 상기 명령어들은, 또한, 상기 프로세서로 하여금,
    상기 기준의 세트가 충족되었다고 결정하는 것에 응답하여 상기 애니메이션 효과의 타입을 결정하게 하고, 상기 애니메이션 효과의 타입은 사용자 구성 가능한 전자 장치.
  18. 제14항에 있어서, 상기 애니메이션 효과의 타입은 객체의 모션 블러(motion blur) 또는 라이트 블러(light blur) 중 적어도 하나인 전자 장치.
  19. 제14항에 있어서, 상기 태스크는 서브태스크들의 세트를 포함하고, 상기 서브태스크들의 세트의 서브세트가 완료되었을 때 상기 기준의 세트는 충족되는 전자 장치.
  20. 제14항에 있어서, 상기 명령어들은, 또한, 상기 프로세서로 하여금,
    상기 프로그레스 바가 상기 태스크의 완료 상태를 언더 리포트하는 상기 태스크에 대한 상기 완료 상태 표시자를 디스플레이하도록 하게 하는 전자 장치.
KR1020130025869A 2012-03-09 2013-03-11 프로그레스 바 KR101562098B1 (ko)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201261609238P 2012-03-09 2012-03-09
US61/609,238 2012-03-09
US13/615,120 US9292177B2 (en) 2012-03-09 2012-09-13 Progress bar with feature availability indicator
US13/615,025 2012-09-13
US13/614,762 2012-09-13
US13/615,120 2012-09-13
US13/614,762 US9104296B2 (en) 2012-03-09 2012-09-13 Rocket effect in a progress bar
US13/615,025 US20130246962A1 (en) 2012-03-09 2012-09-13 Dynamic update of a completion status indicator
US13/615,140 2012-09-13
US13/615,140 US20130235044A1 (en) 2012-03-09 2012-09-13 Multi-purpose progress bar

Publications (2)

Publication Number Publication Date
KR20130103450A true KR20130103450A (ko) 2013-09-23
KR101562098B1 KR101562098B1 (ko) 2015-10-20

Family

ID=49113702

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130025869A KR101562098B1 (ko) 2012-03-09 2013-03-11 프로그레스 바

Country Status (6)

Country Link
US (4) US20130235044A1 (ko)
JP (2) JP5993324B2 (ko)
KR (1) KR101562098B1 (ko)
CN (1) CN103365761B (ko)
AU (1) AU2013201390B2 (ko)
TW (1) TWI515637B (ko)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8375319B2 (en) * 2009-06-05 2013-02-12 Apple Inc. Progress indicator for loading dynamically-sized contents
CN101976170B (zh) * 2010-10-28 2016-02-10 中兴通讯股份有限公司 一种多媒体终端开机界面的显示方法及其装置
US20130235044A1 (en) 2012-03-09 2013-09-12 Apple Inc. Multi-purpose progress bar
CN103513856B (zh) 2012-06-28 2017-08-25 腾讯科技(深圳)有限公司 刷新页面的方法和装置
US8935625B2 (en) * 2012-08-15 2015-01-13 Conductor, Inc. User interface for task management
US9396088B2 (en) * 2013-03-08 2016-07-19 Sap Se Computer execution progress indicator
US20140331166A1 (en) * 2013-05-06 2014-11-06 Samsung Electronics Co., Ltd. Customize smartphone's system-wide progress bar with user-specified content
CN104244100B (zh) * 2013-06-13 2018-09-11 腾讯科技(深圳)有限公司 进度条控制方法和装置
US20150066582A1 (en) * 2013-08-30 2015-03-05 Pipelinersales Corporation Methods, Systems, and Graphical User Interfaces for Customer Relationship Management
WO2015046790A1 (en) * 2013-09-27 2015-04-02 Samsung Electronics Co., Ltd. Electronic device and method of operating the same
WO2015060844A1 (en) * 2013-10-23 2015-04-30 Hewlett-Packard Development Company, L.P. Tracking a status of a process
CN104572771B (zh) * 2013-10-25 2020-07-28 腾讯科技(深圳)有限公司 处理状态展示方法及装置
US9335905B1 (en) * 2013-12-09 2016-05-10 Google Inc. Content selection feedback
CN104778167B (zh) * 2014-01-09 2019-05-03 中兴通讯股份有限公司 一种网页加载进度控制方法、装置和终端
CN104778055B (zh) * 2014-01-15 2020-11-06 腾讯科技(深圳)有限公司 显示进度条的方法和装置
WO2015139083A1 (en) * 2014-03-19 2015-09-24 Digital Ashes Pty Ltd System and method for network browsing
CN104951386B (zh) * 2014-03-28 2019-04-05 腾讯科技(深圳)有限公司 一种内容加载进度显示的方法和装置
CN103914303A (zh) * 2014-04-10 2014-07-09 福建伊时代信息科技股份有限公司 一种进度条呈现方法及其装置
CN103995771B (zh) * 2014-05-30 2017-12-01 北京安兔兔科技有限公司 任务进度展示方法及系统
US10795547B1 (en) * 2014-06-11 2020-10-06 Amazon Technologies, Inc. User-visible touch event queuing
KR101748680B1 (ko) * 2014-08-08 2017-06-20 네이버 주식회사 단말 장치 및 이에 의한 웹 페이지 디스플레이 방법,및 웹 서버 및 이에 의한 웹 페이지 제공 방법
US20170083217A1 (en) * 2014-09-08 2017-03-23 Hewlett Packard Enterprise Development Lp User interface components load time visualization
DE102014013964A1 (de) * 2014-09-19 2016-03-24 Abb Technology Ag Einrichtung zur Verwaltung und Konfiguration von Feldgeräten einer Automatisierungsanlage
USD831063S1 (en) * 2014-10-15 2018-10-16 Bgc Partners, L.P. Display screen or portion thereof with transitional graphical user interface
US10191895B2 (en) * 2014-11-03 2019-01-29 Adobe Systems Incorporated Adaptive modification of content presented in electronic forms
CN104375862B (zh) * 2014-11-11 2018-07-31 北京搜狗科技发展有限公司 一种进度条展现方法及装置
USD770497S1 (en) * 2014-12-17 2016-11-01 Go Daddy Operating Company, LLC Display screen with graphical user interface
CN104572408B (zh) * 2014-12-29 2017-06-09 广东欧珀移动通信有限公司 进度条显示处理方法和装置
EP3232631B1 (en) * 2014-12-31 2022-10-12 Huawei Technologies Co., Ltd. Content sharing method and server
US9727218B2 (en) 2015-01-02 2017-08-08 Microsoft Technology Licensing, Llc Contextual browser frame and entry box placement
US9626089B2 (en) * 2015-01-16 2017-04-18 Toyota Motor Engineering & Manufacturing Determination and indication of included system features
CN104683857B (zh) * 2015-01-23 2018-05-29 华为技术有限公司 用于数据预加载的可视化呈现的方法和设备
EP3279852A4 (en) * 2015-03-31 2018-02-14 Mitsubishi Heavy Industries, Ltd. Work planning system, work planning method, decision-making support system, computer program, and storage medium
CN104821963B (zh) * 2015-04-30 2019-02-19 华为技术有限公司 推荐信息展示方法及装置
DE102015209185A1 (de) * 2015-05-20 2016-11-24 Siemens Schweiz Ag Verfahren zum Bestimmen der Übertragungszeit bzw. der Restübertragungszeit von Daten auf ein Busgerät einer busorientierten programmierbaren Elektroinstallation
CN105045464A (zh) * 2015-06-29 2015-11-11 努比亚技术有限公司 一种提示表单填写进度的方法和装置
CN105022639A (zh) * 2015-08-14 2015-11-04 环胜电子(深圳)有限公司 进度管理通用程序的执行方法和装置
CN105117008B (zh) * 2015-08-20 2018-07-20 小米科技有限责任公司 操作引导方法及装置、电子设备
CN105159538A (zh) * 2015-09-09 2015-12-16 广州市久邦数码科技有限公司 一种展示窗数据加载方法及其系统
US10289281B2 (en) 2015-11-30 2019-05-14 International Business Machines Corporation Progress bar updated based on crowd sourced statistics
CN105491129A (zh) * 2015-12-07 2016-04-13 天津车之家科技有限公司 页面加载进度显示方法、装置及移动终端
CN105657516A (zh) * 2016-01-04 2016-06-08 浪潮软件集团有限公司 播控条的应用方法和播控条的应用装置
CN107092452A (zh) 2016-02-17 2017-08-25 阿里巴巴集团控股有限公司 一种展示业务完成状态的信息处理方法及装置
US10339367B2 (en) * 2016-03-29 2019-07-02 Microsoft Technology Licensing, Llc Recognizing a face and providing feedback on the face-recognition process
CN106649049A (zh) * 2016-05-09 2017-05-10 海尔优家智能科技(北京)有限公司 一种数据下载进度显示方法及装置
US20170329464A1 (en) * 2016-05-11 2017-11-16 Sap Se Dynamic button with sub-buttons
US20170353603A1 (en) * 2016-06-03 2017-12-07 Facebook, Inc. Recommending applications using social networking information
CN106874024A (zh) * 2016-07-22 2017-06-20 阿里巴巴集团控股有限公司 加载对象的显示方法、装置及电子设备
CN106383704B (zh) * 2016-08-31 2021-01-15 腾讯科技(深圳)有限公司 进度条数据处理的方法和装置
RU2640329C1 (ru) * 2016-09-28 2017-12-27 Общество с ограниченной ответственностью "ПИРФ" (ООО "ПИРФ") Способ, система и машиночитаемый носитель данных для управления устройством пользователя с помощью контекстного тулбара
CN106502673B (zh) * 2016-10-21 2019-08-06 中国民生银行股份有限公司 业务状态的显示方法和装置
CN108228429A (zh) * 2016-12-15 2018-06-29 北京优朋普乐科技有限公司 一种显示文件下载状态信息的方法及终端
CN106658201B (zh) * 2017-01-13 2019-08-06 北京元心科技有限公司 优化播放器进度条的方法及装置
CN107122448A (zh) * 2017-04-25 2017-09-01 广州市诚毅科技软件开发有限公司 一种前端页面请求的预计响应时间的智能显示方法及装置
US10721152B2 (en) * 2017-04-27 2020-07-21 Salesforce.Com, Inc. Automated analysis and recommendations for highly performant single page web applications
US10772551B2 (en) * 2017-05-09 2020-09-15 International Business Machines Corporation Cognitive progress indicator
US11048995B2 (en) * 2017-05-16 2021-06-29 Google Llc Delayed responses by computational assistant
CN107291852B (zh) * 2017-06-07 2021-01-22 北京金山安全软件有限公司 进度条显示的优化方法、装置及电子设备
CN107291356B (zh) * 2017-08-03 2020-05-01 北京达佳互联信息技术有限公司 文件传输显示控制方法、装置及相应的终端
US10795571B2 (en) * 2017-09-28 2020-10-06 The Toronto-Dominion Bank System and method to perform an undo operation using a continuous gesture
CN107608737B (zh) * 2017-09-30 2020-12-18 北京金山安全软件有限公司 动画播放方法及装置
US11645602B2 (en) * 2017-10-18 2023-05-09 Vocollect, Inc. System for analyzing workflow and detecting inactive operators and methods of using the same
US10528361B2 (en) 2017-11-08 2020-01-07 Citrix Systems, Inc. Intercepted loading of web applications
CN109872212B (zh) * 2017-12-05 2023-02-10 阿里巴巴集团控股有限公司 一种用于互联网平台商品数据信息联动的方法和装置
CN108491230A (zh) * 2018-01-24 2018-09-04 阿里巴巴集团控股有限公司 动画显示方法和装置、客户端
DK180241B1 (en) 2018-03-12 2020-09-08 Apple Inc User interfaces for health monitoring
US10459609B2 (en) * 2018-04-03 2019-10-29 Palantir Technologies Inc. Multi-stage data page rendering
USD890196S1 (en) * 2018-04-24 2020-07-14 Catalina Labs, Inc. Display screen or portion thereof with network speed and throughput graphical user interface
US10269164B1 (en) * 2018-05-30 2019-04-23 Whatsapp Inc. Creating custom stickers for use on a messaging system
CN109271219B (zh) * 2018-07-25 2021-09-07 武汉斗鱼网络科技有限公司 一种倒计时动画位置的计算方法及装置
US10681165B2 (en) 2018-09-11 2020-06-09 Palantir Technologies Inc. System architecture for enabling efficient inter-application communications
US11886888B2 (en) * 2019-03-28 2024-01-30 Lenovo (Singapore) Pte. Ltd. Reduced application view during loading
CN110011884B (zh) * 2019-04-01 2022-01-11 宁波奥克斯电气股份有限公司 一种配网进度显示方法、装置及空调器
CN111798071A (zh) * 2019-04-07 2020-10-20 南京杰咖斯信息技术有限公司 一种任务管理方法及系统
CN110083407B (zh) * 2019-04-16 2023-08-08 北京字节跳动网络技术有限公司 小程序中步骤条的实现方法、装置、电子设备及存储介质
US10921887B2 (en) * 2019-06-14 2021-02-16 International Business Machines Corporation Cognitive state aware accelerated activity completion and amelioration
CN110457614B (zh) * 2019-07-03 2020-06-16 南方电网数字电网研究院有限公司 降低数据并发量的数据增量更新方法、装置和计算机设备
KR20210074932A (ko) * 2019-12-12 2021-06-22 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
CN110996155B (zh) * 2019-12-12 2021-05-25 北京字节跳动网络技术有限公司 视频播放页面显示方法、装置、电子设备和计算机可读介质
CN111338741B (zh) * 2020-03-27 2023-12-12 北京达佳互联信息技术有限公司 任务进度显示方法及其装置、存储介质
CN111444006B (zh) * 2020-03-31 2023-11-21 联想(北京)有限公司 一种处理方法及电子设备
CN111506382B (zh) * 2020-04-26 2022-11-04 网易(杭州)网络有限公司 进度条曲线确定方法及装置、存储介质、电子设备
CN111857928A (zh) * 2020-07-23 2020-10-30 北京达佳互联信息技术有限公司 页面任务接入方法、装置、系统、电子设备及存储介质
CN112486783B (zh) * 2020-11-25 2022-09-27 建信金融科技有限责任公司 一种进度条的显示方法和装置
CN112435308B (zh) * 2020-11-30 2023-11-14 成都新潮传媒集团有限公司 环形进度条的绘制方法、装置及存储介质
CN112783907B (zh) * 2020-12-31 2024-06-07 深圳云天励飞技术股份有限公司 数据更新方法、应用端数据更新方法及相关产品
CN114071238A (zh) * 2021-11-12 2022-02-18 北京百度网讯科技有限公司 用于生成视频进度条的方法、装置、设备、介质和产品
US11914668B2 (en) * 2022-01-04 2024-02-27 Truist Bank Loading animation with shape that grows from within from central point
CN115086363B (zh) * 2022-05-23 2024-02-13 北京声智科技有限公司 学习任务的预警方法、装置、电子设备和存储介质
CN116991530B (zh) * 2023-09-25 2023-12-01 成都数联云算科技有限公司 一种具有交错收缩样式加载指示符的实现方法

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2017969C (en) * 1989-08-07 1999-04-20 Richard Alan Becker Dynamic graphics arrangement for displaying spatial-time-series data
US6600496B1 (en) 1997-09-26 2003-07-29 Sun Microsystems, Inc. Interactive graphical user interface for television set-top box
JPH11205484A (ja) * 1998-01-08 1999-07-30 Sharp Corp 通信装置および通信装置制御プログラムを記録した媒体
US6275987B1 (en) * 1998-11-05 2001-08-14 International Business Machines Corporation Adaptive, predictive progress indicator
US6965863B1 (en) * 1998-11-12 2005-11-15 Microsoft Corporation Speech recognition user interface
US6927770B2 (en) * 2000-01-05 2005-08-09 Apple Computer Inc. Interface providing continuous feedback on task progress in a computer operating system
US6901558B1 (en) * 2002-01-09 2005-05-31 International Business Machines Corporation System and method for displaying status of background worker threads
US7110995B2 (en) * 2002-02-27 2006-09-19 International Business Machines Corporation Apparatus and method for generating graphic presentation of estimated time of completion of a server request
US20030182409A1 (en) 2002-03-22 2003-09-25 Seaman Mark D. Method and system for indicating the progress of device services
US7213059B2 (en) * 2002-10-17 2007-05-01 International Business Machines Corporation Method, apparatus, and computer program product to determine the progress of Web page downloads
EP1680752A2 (en) 2003-10-31 2006-07-19 Access Co., Ltd. Method, program and device for rendering web page
WO2005057392A1 (en) 2003-12-11 2005-06-23 Nokia Corporation Internet terminal, www-browser located in the terminal and a method for setting a display mode of the terminal
US20050172239A1 (en) * 2004-01-30 2005-08-04 International Business Machines Corporation Modeless interaction with GUI widget applications
US7493337B2 (en) * 2004-03-31 2009-02-17 Microsoft Corporation Query progress estimation
US8037527B2 (en) 2004-11-08 2011-10-11 Bt Web Solutions, Llc Method and apparatus for look-ahead security scanning
US20070168861A1 (en) * 2006-01-17 2007-07-19 Bell Denise A Method for indicating completion status of user initiated and system created tasks
US7475358B2 (en) * 2006-02-14 2009-01-06 International Business Machines Corporation Alternate progress indicator displays
US7577632B2 (en) 2006-06-05 2009-08-18 Microsoft Corporation Updating estimated process runtime
US20080256473A1 (en) * 2007-04-10 2008-10-16 Al Chakra System and Method to Shuffle Steps Via an Interactive Progress Bar
US20080256474A1 (en) * 2007-04-16 2008-10-16 Al Chakra Interactive Progress Bar
US8001481B2 (en) * 2007-04-30 2011-08-16 International Business Machines Corporation Implementation of an interactive progress bar in a test application environment
TW200847015A (en) 2007-05-18 2008-12-01 Riti Technology Inc Method and system for displaying execution progress of network application program
US9454411B2 (en) 2007-08-30 2016-09-27 International Business Machines Corporation User-selectable progress bar threshold triggers and notification by detecting color change
US8156342B2 (en) * 2007-09-21 2012-04-10 Fuji Xerox Co., Ltd Progress indicators to encourage more secure behaviors
US8122368B2 (en) * 2007-10-31 2012-02-21 Internaitonal Business Machines Corporation System and method to facilitate progress forking
US8555206B2 (en) * 2007-12-21 2013-10-08 Fisher-Rosemount Systems, Inc. Methods and apparatus to present recipe progress status information
US20100083159A1 (en) * 2008-09-30 2010-04-01 Dale Llewelyn Mountain Segmented progress indicator
US8171419B2 (en) 2008-10-31 2012-05-01 Research In Motion Limited Method and system for remote media management on a touch screen device
US8737800B2 (en) 2008-12-16 2014-05-27 At&T Intellectual Property I, L.P. System and method to display a progress bar
US20100162139A1 (en) * 2008-12-19 2010-06-24 Palm, Inc. Multi-function status indicator for content receipt by a mobile computing device
US8650290B2 (en) 2008-12-19 2014-02-11 Openpeak Inc. Portable computing device and method of operation of same
US9549039B2 (en) 2010-05-28 2017-01-17 Radware Ltd. Accelerating HTTP responses in a client/server environment
US8375319B2 (en) * 2009-06-05 2013-02-12 Apple Inc. Progress indicator for loading dynamically-sized contents
JP2011123701A (ja) * 2009-12-11 2011-06-23 Nec Corp 進捗情報表示装置、進捗情報表示方法、及び進捗情報表示プログラム
KR20110116524A (ko) 2010-04-19 2011-10-26 엘지전자 주식회사 휴대 단말기 및 그 동작 제어방법
US8751953B2 (en) * 2010-06-04 2014-06-10 Apple Inc Progress indicators for loading content
WO2012037689A1 (en) 2010-09-24 2012-03-29 Qnx Software Systems Limited Alert display on a portable electronic device
US20120096383A1 (en) * 2010-10-15 2012-04-19 Sony Network Entertainment Inc. Loader animation
US9121750B2 (en) * 2010-12-15 2015-09-01 Sap Se System and method to visualize measuring and dosing operations
CN102141953B (zh) 2011-04-01 2013-10-16 奇智软件(北京)有限公司 一种进度条的展现方法及装置
EP2525281B1 (en) * 2011-05-20 2019-01-02 EchoStar Technologies L.L.C. Improved progress bar
US20130235044A1 (en) 2012-03-09 2013-09-12 Apple Inc. Multi-purpose progress bar
USD690719S1 (en) * 2013-02-28 2013-10-01 Nike, Inc. Display screen with animated graphical user interface

Also Published As

Publication number Publication date
AU2013201390A1 (en) 2013-09-26
TW201351257A (zh) 2013-12-16
CN103365761A (zh) 2013-10-23
CN103365761B (zh) 2016-12-28
AU2013201390B2 (en) 2015-05-07
JP2013186907A (ja) 2013-09-19
JP6150930B2 (ja) 2017-06-21
US20130246962A1 (en) 2013-09-19
TWI515637B (zh) 2016-01-01
KR101562098B1 (ko) 2015-10-20
US20130239040A1 (en) 2013-09-12
JP5993324B2 (ja) 2016-09-14
US20130235044A1 (en) 2013-09-12
JP2017016673A (ja) 2017-01-19
US9292177B2 (en) 2016-03-22
US20130239039A1 (en) 2013-09-12
US9104296B2 (en) 2015-08-11

Similar Documents

Publication Publication Date Title
KR101562098B1 (ko) 프로그레스 바
US9832253B2 (en) Content pre-render and pre-fetch techniques
US9575652B2 (en) Instantiable gesture objects
EP2639716A2 (en) Progress bar
US10254955B2 (en) Progressively indicating new content in an application-selectable user interface
US10394437B2 (en) Custom widgets based on graphical user interfaces of applications
US8933952B2 (en) Pre-rendering new content for an application-selectable user interface
US20120079400A1 (en) Personalized content layout
US9665965B2 (en) Video-associated objects
US10163245B2 (en) Multi-mode animation system
CN113778272A (zh) 轻应用的分屏处理方法、设备及电子设备
US11455075B2 (en) Display method when application is exited and terminal
CN110020300B (zh) 一种浏览器页面合成方法及终端
CN104166553A (zh) 一种显示方法及电子设备
CN110992112A (zh) 广告信息的处理方法和装置
US20160321690A1 (en) Mobile device user interface with dynamic advertising control interface area for incentivizing user viewing of advertisements
CN113536755A (zh) 用于生成海报的方法、装置、电子设备、存储介质及产品
EP3008697B1 (en) Coalescing graphics operations
US20140337774A1 (en) Proxy for Sorting and Navigating Cards
US11157156B2 (en) Speed-based content rendering
CN112445983A (zh) 搜索结果的处理方法、装置、设备及计算机可读存储介质
CN112861029B (zh) 信息展示方法、装置、设备和介质
CN113051501A (zh) 信息投放方法、装置、设备和介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 4