US20130246962A1 - Dynamic update of a completion status indicator - Google Patents
Dynamic update of a completion status indicator Download PDFInfo
- Publication number
- US20130246962A1 US20130246962A1 US13/615,025 US201213615025A US2013246962A1 US 20130246962 A1 US20130246962 A1 US 20130246962A1 US 201213615025 A US201213615025 A US 201213615025A US 2013246962 A1 US2013246962 A1 US 2013246962A1
- Authority
- US
- United States
- Prior art keywords
- progress
- task
- completion status
- progress bar
- status indicator
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
Definitions
- the present disclosure relates generally to progress bars and in particular to various improvements to progress bars that enhance a user's experience.
- a progress bar (also sometimes referred to as a status bar, or a completion status bar, etc.) is commonly used to convey a completion status of a task or a process, such as a loading of a web page, a file download, data transfer, etc.
- a browser application may use a progress bar to indicate a completion status of a web page being loaded for presentation to a user.
- the browser application may display a progress bar that conveys a completion status of the loading of the web page.
- the progress bar can be updated as the completion status of the loading of the web page changes. As such, via the progress bar, the user can roughly estimate a total completion time for the loading of the web page.
- a progress bar typically includes a completion status indicator that visually represents the completion status of a task or the operation being performed.
- the completion status indicator may, for example, be in the form of a slider bar that moves from a start position towards an end position, where reaching the end position signals completion of the task or operation.
- the position of the completion status indicator can convey the completion status (e.g., a percentage of the task being completed) of the task or operation to the user. The user can use the information conveyed by the completion status indicator to approximate a completion time for the task or operation.
- Certain embodiments of the present invention provide techniques for displaying an improved progress bar on a graphical user interface (GUI) that enhances a user's computing experience.
- GUI graphical user interface
- a progress bar can display a completion status indicator that underreports a completion status of an ongoing task.
- a browser application can overestimate a loading time for a web page and thereby increment a completion status indicator in a progress bar at a rate in accordance with the estimated load time. For example, a browser application may overestimate a loading time to be 10 seconds and increment a completion status indicator in a progress bar in a manner (e.g., at a rate of (total number of pixels in the progress bar)/10 s) such that the progress bar would show completion of the task in 10 seconds.
- By underreporting the actual status of the task in the progress bar minimizes the chances that the completion status indicator would stall towards the end of the progress bar.
- some embodiments can update the completion status indicator in the progress bar in a smooth manner.
- linear functions can be used to determine a location to which to animate the progression of the completion status indicator within certain intervals. This eliminates discrete jumps and adds fluidity to the progression of the reported status such that the progress bar can appear intuitive to the user.
- FIG. 1 illustrates an example of a progress bar system for generating and displaying a user interface (in this example, web browser) that includes a progress bar in accordance with some embodiments of the present invention.
- FIG. 2 illustrates an example of a more detailed diagram of progress bar generator and rocket effect generator according to some embodiments.
- FIG. 3 conceptually illustrates a process for determining when to display the “rocket effect” in a progress bar in accordance with some embodiments.
- FIG. 4 illustrates an example process of some embodiments for displaying the rocket animation.
- FIG. 5 illustrates an example process of some embodiments for displaying an underreported progress status for a task in a progress bar.
- FIG. 7 illustrates an example of progression of the completion status indicator in accordance with some embodiments of the invention.
- FIG. 8 illustrates an example of a time estimate table of some embodiments that enables browser application to obtain a time estimate until a task is complete based on a progress value.
- FIG. 9 illustrates an example sequence of a progress bar that updates smoothly while underreporting an actual status of a task in accordance with some embodiments.
- FIG. 10 illustrates an example of a more detailed diagram of feature enabler that can signal browser application to display a visual effect in response to a status change for a feature in accordance with some embodiments.
- FIG. 11 illustrates an example process of some embodiments for visually modifying a user interface (UI) element in response to a feature being enabled when the triviality threshold is met.
- UI user interface
- FIG. 12 illustrates an example progression of a completion status indicator for a task in a progress bar and visually modifying a UI element representing a feature in accordance with some embodiments.
- FIG. 13 illustrates an example of a more detailed diagram of secondary progress generator and render engine for rendering a secondary progress indicator in addition to a completion status indicator for a task in a progress bar according to some embodiments.
- FIG. 15 illustrates another example progression for displaying a secondary progress indicator along with a completion status indicator of a task in a progress bar according to some embodiments.
- FIG. 17 illustrates another example progression for displaying a type of secondary progress indicator along with a completion status indicator of a task in a progress bar according to some embodiments.
- FIG. 18 illustrates a computer system according to an embodiment of the present invention.
- FIG. 19 illustrates an example of an environment that can implement various aspects of the present invention.
- Certain embodiments of the present invention provide techniques for displaying an improved progress bar on a graphical user interface (GUI) that enhances user computing experience.
- GUI graphical user interface
- a progress bar can display a completion status indicator that allows a user to visualize a completion status of an ongoing task or operation.
- the user can use the progress bar to verify that performance of the operation is proceeding successfully and to estimate a completion time for the operation by observing the completion status indicator.
- a progress bar in some embodiments can display a completion status indicator that underreports the completion status of an ongoing task. For instance, a web browser can determine an over-estimated load time (bra web page to prevent the completion status indicator from stalling at the end of the progress bar. Further, in some embodiments, the completion status indicator is displayed and updated in a smooth manner. In such embodiments, linear functions are used to determine a location to which to animate the progression of the completion status indicator within certain intervals. This eliminates discrete jumps and adds fluidity to the progression of the reported status such that the progress bar can appear more intuitive and responsive to the user.
- a visual cue can be provided to alert a user when a threshold indicating that a task is “substantially complete” (also referred to as a triviality threshold) is met.
- progress bars can provide a visual cue to a user to indicate when subtasks of a task of interest to the user is complete.
- the visual cue can be an animation of an accelerated progression of a completion status indicator in a progress bar.
- a triviality threshold refers to a threshold at which an average person would consider a task to be complete regardless of whether the task is actually complete.
- an average person may consider the triviality threshold for loading a particular sports web page met once one or more sports articles are visible, regardless of whether the rest of the page (e.g., including various images, advertisements, hyperlinks, etc.) is loaded.
- the triviality threshold is met, the user can be informed of when portions of the page is viewable regardless of whether the page is loaded, instead of having to wait until the entire page is loaded.
- the manner in which a user interface (UI) element is displayed may be tied to the display of a progress bar.
- a GUI element may be visually enabled in response to the position or completion status indicated by the completion status indicator in a progress bar.
- the GUI may include a button (e.g., a button corresponding to a reader function) that is visually enabled (i.e., its function enabled) upon the triviality threshold being met and the completion status indicator animated to show completed status.
- the visual display of a UI element may be changed in response to the completion status indicated by the progress bar in order to highlight the feature represented by the UI element.
- the UI element may be visually displayed and modified in a manner so as to draw a user's attention to the UI element.
- a progress bar in addition to showing the completion status of a task or operation (shown by the completion status indicator of the progress bar), may also visually indicate (e.g., using an animation) a speed at which the task is being performed at a point in time. Conveying to a user the loading rate allows the user to distinguish between loading a relatively large web page with a fast loading rate and loading a relatively small web page with a slow loading rate. Since in some instances, a slow loading rate could mean a poor connection between the user and a particular server, the user may want to cancel his or her requests for data from that server when the loading rate is unacceptably slow. The user can determine whether to stay on a current web page or to switch to a different one based on the speed at which the page is being loaded in some instances.
- the progress bar may display animated waves or ripples with the speed of the waves or ripples indicating the speed of the task or operation being performed.
- faster animation of the waves or ripples indicates faster speed (e.g., when a web page is loading at 0.5 MB/s the waves or ripples may be displayed at one animation speed and when the loading rate is at 1 GB/s the waves or ripples may be displayed at a faster animation speed).
- the speed of the animation provides a visual cue to the user of how fast the task or operation is being performed.
- status of task or “progress of task” can be used herein to refer to the amount or percentage of the task or operation that is complete at a moment in time.
- provision status indicator or “status indicator” can be used herein to refer to a representation of a status or progress of a task in a progress bar.
- progression of a completion status indicator can be used herein to refer to the motion and/or rate at which the completion status indicator for the task shown in the progress bar is moving.
- FIG. 1 depicts a simplified high level block diagram of a progress bar system 100 in accordance with some embodiments of the invention.
- progress bar system 100 can include multiple subsystems such as a fluid progress bar generator 115 , a rocket effect generator 120 , a feature enabler 125 , a secondary progress generator 130 , and a render engine 135 .
- One or more communication paths can be provided to enable one or more of the subsystems to communicate with and exchange data with one another.
- the various components described in FIG. 1 can be implemented in software, hardware, or a combination thereof.
- the software can be stored on a transitory or non-transitory computer readable storage medium and can be executed by one or more processing units.
- progress bar system 100 as shown in FIG. 1 can include more or fewer components than those shown in FIG. 1 .
- progress bar system 100 can be a part of an electronic computing device, such as a computer or a handheld device.
- the various components in progress bar system 100 can be implemented as a stand-alone application or integrated into another application (e.g., a web browser application, an e-mail client, or any other application that can display progress bars), while in some embodiments the components in progress bar system 100 can be implemented within an operating system.
- progress bar system 100 can generate and display a progress bar to a user such as progress bar 145 depicted in FIG. 1 .
- progress bar 145 can include a completion status indicator 150 where the position of the completion status indicator indicates the completion status of a task. By observing a progression of the completion status indicator in progress bar 145 , a user can identify the completion status of the page loading task in some embodiments.
- the various components in progress bar system 100 can provide visual enhancements to progress bar 145 such that additional useful information is conveyed to the user using progress bar 145 .
- render engine 135 is configured to render and display content on a display of an electronic computing device.
- render engine 135 can be embedded in a web browser that can retrieve a document (e.g., HTML, XML, image files, etc.) corresponding to a URL (e.g., input by a user) and cause render engine 135 to render a graphical representation of it on the display of the electronic computing device.
- a document e.g., HTML, XML, image files, etc.
- render engine 135 in some embodiments can generate a progress bar for display.
- a web browser can determine progress values that indicate a total loaded percentage of a web page and provide those progress values to various subsystems in progress bar system 100 . These subsystems can then use these progress values to perform various operations in relation to the progress bar.
- fluid progress bar generator 115 is configured to underreport of a status of an ongoing task (e.g., the loading of a web page). Since it is difficult to accurately determine how much of the task remains to be completed, underreporting the progress values to the users can manage the user's expectations. Further, underreporting the completion status up front would permit more space within the progress bar for the completion status indicator to progress such that stalling towards the end of the progress bar can be minimized or prevented.
- fluid progress bar generator 115 can receive progress values from render engine 135 and determine a location in the progress bar to which to increment the completion status indicator for the task. The determined location can correspond to an underreported value of the status of the task.
- fluid progress bar generator 115 is configured to smoothen the manner in which the completion status indicator in a progress bar is displayed and updated. This is done on as to reduce the clunky updates typically associated with conventional progress bars. Smoothening the display and update of the completion status indicator in a progress bar enhances the user's visual experience with respect to progress bars.
- fluid progress bar generator 115 uses one or more linear functions to achieve the smoothening. Fluid progress bar generator 115 may construct a linear function and use a computation performed using the linear function to determine each new location for the completion status indicator within the progress bar to increment to within the time interval. In some embodiments, using a linear function to compute each next location allows the progression of the completion status indicator to appear to be incrementing smoothly and at a constant speed.
- a progress value can indicate a completion status of a task.
- Browser application in some embodiments can receive a progress value from render engine
- fluid progress bar generator 115 can use the progress value to estimate a new time until the task is completed (e.g., using a lookup table).
- Fluid bar generator 115 can then construct a new linear function using the newly estimated time.
- the progression of completion status indicator continues to increase at a steady rate, although at a different rate from before.
- constructing multiple linear equations to determine locations to increment for each time interval allows the progression of the completion status indicator to appear smooth and soothing to the user's eye. Incrementing the completion status indicator to steadily and within short time intervals causes its appearance to be smoothly increasing to a user.
- rocket effect generator 120 is configured to cause the progression of the completion status indicator in the progress bar to “rocket” or accelerate from its current position to a position indicative of completion of the task when a triviality threshold is met.
- the completion status indicator is animated to advance from its current position to it end position 155 , which indicates completion of the task to the user.
- the triviality threshold for a task identifies a threshold at which a task, even though not fully completed, can be indicated as completed for purposes of the user.
- the triviality threshold is configurable and, for a task, is generally set to a threshold less than the full completion of the task. It should be appreciated in some embodiments, the triviality threshold can be set to the full completion of the task.
- the triviality threshold may be application and task-context specific. For example, if the task is loading of a web page, the triviality threshold can be set to a threshold percentage of the web page being loaded, for example, when the page is deemed “substantially loaded” or “visually complete.” In some embodiments, rocket effect generator 120 can determine a triviality threshold using a set of criteria. For example, the triviality threshold can be met when 30% of a web page has been loaded.
- rocket effect generator 120 can produce an animation that shows an accelerated progression of the completion status indicator from a current location in progress bar 105 to one end of progress bar 105 . This would serve as a visual cue to the user that the page would appear complete to the user regardless of whether the page loading is complete. The user can use this visual cue as a signal that he or she may now start viewing the page.
- Some embodiments can provide a visual modification of a user interface element in response to a completion status indicator indicating that the task is complete.
- feature enabler 125 is configured to cause a visual modification of a user interface element representing a feature.
- feature enabler 125 can determine whether a particular feature is “to be enabled” subsequent to the display of the “rocket effect.”
- render engine 115 in some embodiments can highlight the enabled feature or visually modify a user interface element representing the feature.
- render engine 115 can display the visual modification to the user interface element immediately following the accelerated progression of the completion status indicator or “rocket effect” caused by rocket effect generator 120 in order to further highlight the enabled feature.
- secondary progress generator 135 is configured to cause an animation effect to be displayed by the progress bar, where the animation indicates a speed at which a task is being performed.
- secondary progress generator 135 can monitor a speed at which the task, such as the loading of a web page, is currently being performed. Secondary progress generator 135 can determine an animation to be displayed in the progress bar to represent the speed. Secondary progress generator 135 can then cause render engine 115 to display the animation.
- the animation effect allows the user to identify the speed at which the task is being performed such that the user can determine.
- FIG. 2 illustrates an example of a more detailed diagram 200 of fluid progress bar generator 115 and rocket effect generator 120 according to some embodiments.
- fluid progress bar generator 115 can include a threshold checker 205 , a threshold determiner 210 , an under-reporter 215 , and a progression smoothening module 220 .
- Rocket effect generator 120 in some embodiments can include a threshold checker 205 , a threshold determiner 210 , and a rocket effect creator 225 . It should be appreciated that fluid progress bar generator 115 and rocket effect generator 120 as shown in FIG. 2 can include more or fewer components than those shown in FIG. 2 .
- one or more components in fluid progress bar generator 115 and rocket effect generator 120 can be implemented as a single function or application shared by both subsystems or integrated into one of the subsystems where it can be accessible by the other subsystem.
- One or more communication paths can be provided to enable one or more of the components to communicate with and exchange data with one another.
- the various components described in FIG. 2 can be implemented in software, hardware, or a combination thereof.
- threshold determiner 215 is configured to determine a triviality threshold for a task being performed.
- the triviality threshold can be the threshold at which an average person would deem the task as being “complete” while the task may be only “substantially complete.” For instance, an average person may deem a web page loading task as appearing “complete” or the web page as being “visually complete” when key components of the web page (e.g., the leading news article) are loaded. Hence, the triviality threshold is determined to be met when the key components of the web page are loaded.
- the triviality threshold in some embodiments can be different from task to task.
- the triviality threshold for different tasks can be met upon satisfying a different set of criteria. For instance, the triviality threshold for the loading of a web page on a news website can be set at when the articles on the page have been loaded while the triviality threshold for the loading of a web page on a retail website can be set at when the product images have been loaded.
- the triviality threshold relating to a particular website can be met when a threshold percentage of the total area of elements rendered on the web page is loaded.
- the triviality threshold can be met when everything in the page from different URLs aside from objects from a particular URL has been loaded.
- the triviality threshold for each task can be user configurable (e.g., via a preferences setting) or set by a system administrator or web developer to a default setting.
- threshold determiner 210 can determine the triviality threshold for threshold checker 205 to use in checking whether the threshold is met.
- Threshold checker 205 can receive various information relating to a task (e.g., information necessary for determining whether the triviality threshold for the task is met) from render engine 135 .
- threshold checker 205 can obtain a percentage of the total area of elements rendered on the web page from render engine 135 and determine whether the received percentage passes the threshold percentage determined by threshold determiner 210 . Upon determining that the received percentage passes the threshold percentage, threshold checker 205 determines that the triviality threshold is met.
- rocket effect creator 225 in rocket effect generator 120 can determine a visual cue or a type of animation and visually display the visual cue on the progress bar.
- Rocket effect creator 225 in some embodiments can cause render engine 135 to display a “rocket effect animation” where the progression of the completion status indicator in the progress bar accelerates toward one end of the progress bar that makes it look as if the completion status indicator of a task “rocketed” to completion.
- fluid progress bar generator 115 can determine how progression in the progress bar is to be displayed. Under-reporter 215 in fluid progress bar generator 115 can receive progress values indicating a completion status of the task from render engine 135 and cause render engine 135 to display a completion status indicator that underreports the actual progress status of the task. In some embodiments, upon receiving a progress value, under-reporter 215 can determine an estimated completion time for the task at hand (e.g., using a lookup table). The estimated completion time can be an over-estimate of the amount of time necessary to complete the task. As such, the completion status indicator shown by the progress bar would indicate a slower progression (e.g., by incrementing in smaller increments) than the actual progress of the task.
- Progression smoothening module 220 in some embodiments can construct a linear equation using the estimated completion time. Progression smoothening module 220 can use the constructed linear equation to determine a next location to which the completion status indicator of the task should increment in the progress bar. Upon determining the next location, progression smoothening module 220 can cause render engine 135 to display the incremental progress of the task using the completion status indicator in the progress bar. In some embodiments progression smoothening module 220 can continue to determine the next location to which to increment the completion status indicator based on the progress values from render engine 135 and the constructed linear equations.
- Progression smoothening module 220 can continue to cause render engine to display a smooth progression of the completion status indicator of the task in the progress bar until threshold checker 205 determines that the triviality threshold is met and rocket effect creator 225 causes render engine 135 to display a “rocket effect.”
- FIG. 3 conceptually illustrates a process 300 for determining when to display the “rocket effect” in a progress bar in accordance with some embodiments.
- render engine 135 in some embodiments can render a visual cue such as a “rocket effect” upon determining that a triviality threshold is met.
- Some or all of the process 300 may be performed under the control of one or more computer systems configured with executable instructions and may be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) collectively on one or more processors, by hardware, or combinations thereof.
- the code may be stored on a computer-readable storage medium, for example, in the form of a computer program to be executed by processing unit(s), such as a browser application.
- the computer-readable storage medium may be non-transitory.
- process 300 can receive a request to perform a task such as loading a particular web page.
- a browser application can receive a request upon a user entering a URL for a web page or upon the user activating a hyperlink embedded in a page.
- process 300 can display a progress bar for the task being performed.
- the progress bar can display a completion status indicator in the progress bar that represents a progress status of a task using a such that the user can visualize the status of the ongoing task.
- process 300 can determine a triviality threshold for the task.
- the triviality threshold in some embodiments can be a static threshold preconfigured by a user or by an administrator.
- the static threshold can be a percentage of the task that is complete.
- the triviality threshold can be a percentage of the total area of elements rendered on the web page.
- the triviality threshold can be dynamically determined using a set of metrics.
- some embodiments can determine the triviality threshold by determining a type of web page to be loaded and determining the amount and/or types of objects in the page that need to be loaded (e.g., using a lookup table) based on the type of web page for the page to be deemed “visually complete” to a user.
- process 300 can receive a progress value for the task.
- render engine in some embodiments can periodically send progress values indicating a total loaded percentage of a page to the browser application.
- process 300 can determine whether the triviality threshold is reached. Browser application in some embodiments can determine whether the triviality threshold is met using the progress value.
- process 300 determines that the triviality threshold is reached, process 300 displays a rocket effect in the progress bar at block 316 .
- process 300 displays the rocket effect, the process ends.
- process 300 determines that the triviality threshold is not reached, at block 312 , process 300 displays a progression of completion status indicator of the task in the progress bar based on the progress value.
- web browser in some embodiments can determine a next location to which to increment the completion status indicator using the progress value.
- process 300 can determine whether a new progress value has been received. When process 300 determines that a new progress value has been received, process 300 returns to block 310 and determines whether the threshold is reached. When process 300 determines that a new progress value has not been received, process 300 returns to block 312 to continue displaying the progression of the completion status indicator of the task in the progress bar. As such, browser application can resume computing the next location to which to increment the completion status indicator in the progress bar.
- browser application can display a visual cue or a type of animation to indicate to the user that the task is “substantially complete” or that the web page is “visually complete to a user.”
- FIG. 4 illustrates an example process 400 of some embodiments for displaying the rocket animation.
- process 400 can be performed at block 316 of process 300 in some embodiments.
- process 400 can identify the type of animation to show when the threshold is met.
- browser application can identify the type of animation to show as a visual cue to the user.
- the type of animation can be user configurable or pre-configured by the system administrator as a default setting.
- the type of animation can include one or more accelerated progression of a completion status indicator in the progress bar from a current position to another position in the progress bar in one embodiment.
- the type of animation can include a “rocket effect” or “rocket animation” where the completion status indicator in the progress bar accelerates to one end of the progress bar.
- process 400 can display the identified type of animation in the progress bar.
- browser application can provide a progress bar that displays a completion status indicator for the task that underreports the actual status of the task. Some embodiments underreport the completion status of an ongoing task in the progress bar to avoid the completion status indicator being stalled at the end of the progress bar due to miscalculation in the completion status.
- FIG. 5 illustrates an example process 500 of some embodiments for displaying an underreported progress status indicator for a task in a progress bar.
- process 500 can be performed at block 312 of process 300 in some embodiments.
- process 500 can receive a progress value for a task.
- browser application can periodically receive a progress value from a render engine such as render engine 135 in FIG. 1 .
- process 500 can determine, based on the progress value, another progress value less than the progress value received at block 502 .
- browser application can receive a progress value for a task from a render engine and determine an estimated time until the task would be complete (e.g., via a lookup table).
- Browser application in some embodiments can construct a linear equation based on the estimated completion time. Using the linear equation, browser application can determine the next location to where the completion status indicator in the progress bar should animate after the period of time. The period of time can be preconfigured by the user or pre-selected by an administrator.
- process 500 can display the completions status indicator for the task in the progress bar based on the other value that underreports the actual completion status of the task.
- Browser application in some embodiments can display an incremented progress bar where the completion status indicator of the task indicates the other progress value calculated from the linear equation at block 504 .
- FIG. 6 illustrates an example process 600 of some embodiments for displaying a progression of the completion status indicator for a task in a progress bar.
- Process 600 can be performed at block 312 of process 300 in some embodiments.
- Process 600 can be executed, e.g., in a browser application.
- a browser application can provide a progress bar that allows a user to visualize a completion status of a task (e.g., via a completion status indicator) and a status progression along the progress bar.
- Some embodiments can generate a smooth progression using linear equations constructed using a time estimate until completion of the task.
- web browser in some embodiments can display a progression of the completion status indicator for the task that underreports the actual status of the task.
- process 600 can receive a progress value for a task such as loading a web page.
- browser application in some embodiments can receive progress values from a render engine such as render engine 135 in FIG. 1 .
- the progress values can indicate a total percentage of the web page that has been loaded at a current time.
- process 600 can determine an estimated load time based on the progress value received at block 602 .
- Browser application in some embodiments can determine the amount of time required to load the rest of the web page based at least in part on the percentage of the web page that has already been loaded and the amount of time it took to load that amount.
- browser application can determine the amount of time required to load the rest of the web page using a lookup table.
- Browser application in some embodiments can map the progress value to an estimated time in the lookup table.
- the lookup table can be configurable by a user or a system administrator.
- the system administrator can configure and fine tune the lookup table such that the estimated would be more accurate.
- Browser application in some embodiments can use other attributes in addition to the progress value for the task, such as the type of web page being loaded, to compute the estimated load time. Further, in some embodiments, browser application can determine the estimated load time in such a way that over-estimates the amount of time it could possibly take to load the rest of the web page. By estimating a longer duration for the web page to finish loading, browser application in some embodiments can increment the completion status indicator in the progress bar in smaller increments such that it would cause an underreporting of the actual status for the task.
- process 600 can construct a linear equation using the estimated load time determined from block 604 .
- the linear function F(t) would allow the browser application to determine a location within the progress bar to where the completion status indicator should be incremented based on time.
- the linear function F(t) can take as an argument the time since the beginning of a page load and return a value with an X position that indicates the position where the completion status indicator in the progress bar should be at time t.
- Browser application can use two known points to construct linear function F(t).
- the domain is the amount of time that has elapsed since the beginning of a load and the range is an X location along the fluid progress bar.
- the function is recomputed every time browser application receives a new progress value from render engine since the time estimate changes every time a new progress value is received.
- process 600 can compute a next location using the linear equation constructed in block 606 .
- process 600 can animate to the next location computed in block 608 .
- Process 600 then ends. In embodiments where process 600 is performed at block 312 in FIG. 3 , after process 600 ends, process 300 proceeds to block 314 to determine whether a new progress value has been received. If a new progress value has not been received, process 300 returns to block 312 where process 600 can again be performed to calculate and animate the progress bar indicator to a next location within the progress bar.
- FIG. 7 illustrates an example of progression 700 of a completion status indicator for a task in a progress bar in accordance with some embodiments of the invention.
- browser application in some embodiments can determine a threshold at which to set off the “rocket effect.”
- browser application can display a visual cue that alerts the user that the threshold has been met.
- the visual cue can be a “rocket effect” where the progression of the completion status indicator in the progress bar accelerates dramatically to the end of the progress bar.
- the threshold can often be set at a point in time or at a loading percentage at which the user can deem a web page to be “visually complete” in terms of loading.
- a user has requested a browser application to load a web page.
- browser application in some embodiments can display a GUI including a progress bar that can indicate a status indicator for the loading of the web page.
- the progress bar shows that nothing in the web page has been loaded so far.
- the completion status indicator for the task reflects 0% at this time.
- the completion status indicator of the task as indicated in the progress bar has increased to approximately 20% of the progress bar.
- browser application in some embodiments can display an underreported status of the task in the progress bar.
- browser application can display an initial boost in response to receiving the user request in loading a web page.
- the status in the progress bar can display a 10% increase upon the user's request regardless of whether 10% of the web page or any of the web page has already been loaded. This makes the progress bar feel more responsive to user interaction and provides improved user experience.
- browser application can compute the next location to which to increment the status indicator in the progress bar and animate the progression (e.g., using process 600 in FIG. 6 ).
- the completion status has increased to approximately 15% of the progress bar.
- the completion status has increased to approximately 40% of the progress bar.
- the progress bar can display a smooth increase in the completion status indicator of the task.
- the rate at which the web page is being loaded can vary depending on various factors, such as the transfer rate, the bandwidth of the computing device on which the browser application is running, the servers from which information must be retrieved, etc.
- browser application can determine a different rate which the web page is being loaded and display a constant increase in between each receipt of a new progress value (e.g., using linear functions to compute each new location).
- the progression in the completion status indicator as shown in FIG. 7 accelerates towards the end of the progress bar to convey completion of the task in loading the web page, regardless of whether the task is actually completed.
- This acceleration in the progression of completion status indicator serves as a visual cue to indicate to a user that the web page is “visually complete” at this moment.
- the progress bar shows completion of the task.
- browser application determines that the threshold has been reached, browser application can accelerate the progression to a rate at which the progress bar would immediately indicate that the task has been completed.
- Different embodiments may display the visual cue to the user differently. For instance, some embodiments can display the visual cue by displaying multiple spurts of accelerations instead of a single accelerated progression all the way to the end of the progress bar.
- FIG. 8 illustrates an example of a time estimate table 800 of some embodiments that enables browser application to obtain a time estimate until a task is complete based on a set of parameters.
- time estimate table 800 provides time estimate values 810 for different progress values 805 that browser application receives from a render engine such as render engine 135 in FIG. 1 .
- browser application can determine a time estimate using a single parameter (i.e., a progress value)
- browser application can determine the time estimate using multiple parameters that are not included in time estimate table 800 .
- time estimate table 800 can be stored remotely or locally in a data storage accessible to browser application. Time estimate table 800 can also be stored in filesystem of an electronic computing device in a properly list format (e.g., as an eXtensible Markup Language (XML) file) in some embodiments.
- XML eXtensible Markup Language
- browser application can retrieve an estimated page load time from time estimate table 800 based on the progress value. Browser application can then use the estimated time to construct a linear function and increment the completion status indicator in the progress bar based on the linear function. Browser application can continually increment the completion status indicator in the progress bar based on the constructed linear function until another progress value is received. In response, browser application can construct a new linear function based on the new progress value and increment the completion status indicator in the progress bar based on the new linear function.
- the estimated load time can over-estimate the amount of time necessary for the task to complete, As such, the linear function constructed based on the over-estimated time can cause the completion status indicator in the progress bar to increment in smaller increments such that the progress bar would essentially underreport the actual completion status of the task. Further, while browser application in some embodiments uses static mapping and a set of linear functions to determine new locations in the progress bar to increment the reported status, some embodiments can determine the new location using other attributes that would also serve to underreport the status of the task.
- FIG. 9 illustrates an example sequence 900 of a progress bar that updates smoothly while underreporting an actual status of a task in accordance with some embodiments.
- a browser application can display a fluid progress bar that updates a completion status indicator for a task in a manner that appears “smooth” or “fluid” to a user, instead of appearing “clunky.”
- the browser application can over-estimate an amount of time required to complete the task such that the progression of the status indicator displayed in the progress bar would make smaller increments and, in turn, underreport the actual status progression of the task.
- the browser application can receive a progress value from a render engine, compute an estimated page load time (e.g., by mapping the progress value to an estimated time using time estimate table 800 in FIG. 8 ), construct a linear function using the estimated page load time, and determine a new location in the progress bar to increment the progress status indicator for a time interval.
- the browser application in some embodiments can then animate the progression of the task to the new location.
- short time intervals e.g. 200 ms, 250 ms
- browser application can receive a progress value of 40% from a render engine within a short period of time (e.g., after 5 milliseconds, 50 milliseconds, 3 seconds, 10 seconds) after receiving a user request for a particular web page.
- browser application in some embodiments can determine a time estimate for the page loading to complete using time estimate table 800 in FIG. 8 .
- time estimate table 800 the estimated time until the web page finishes loading is 10 seconds.
- the time it takes to animate the status for a current position to a new position is configurable by a user or administrator in some embodiments.
- Browser application can continually update the completion status indicator in the progress bar using the linear function in a linear manner until a new progress value is finally received.
- the progression of the completion status indicator in the progress bar can appear smooth to the user.
- browser application in response to receiving the user request to load a new web page, can perform an increase in the completion status indicator (e.g., to 10% or 20% of the progress bar) regardless of the actual status for the task. Including this feature can make the progress bar feel responsive to user interaction.
- an increase in the completion status indicator e.g., to 10% or 20% of the progress bar
- Browser application in some embodiments can visually modify a UI element on the GUI or display a visual effect when a status of a feature changes (e.g., when the feature becomes enabled). For example, browser application can display a change in the manner a particular element (representing a feature) is displayed by modifying the color of the particular UI element. In another example, the browser application can display a visual appearance of a UI element representing the feature on the GUI to indicate the status change. To provide additional visibility that the status of the feature is changed, some embodiment can visually modify the UI element at the same time or immediately following the “rocket effect” described above.
- some embodiments can modify a UI element (e.g., present a visual appearance or highlight a UI element) or provide a visual effect next to one end of a progress bar following the completion of the “rocket effect” such that the animation of the rocket effect i.e., where the progress status indicator advances from a current position to an end of a progress bar) would direct the user's attention to the modified UI element or visual effect.
- a UI element e.g., present a visual appearance or highlight a UI element
- a visual effect next to one end of a progress bar following the completion of the “rocket effect” such that the animation of the rocket effect i.e., where the progress status indicator advances from a current position to an end of a progress bar
- FIG. 10 illustrates an example of a more detailed diagram 1000 of feature enabler 125 (e.g., feature enabling subsystem 125 in FIG. 1 ) that can signal browser application to display a visual effect in response to a status change for a feature in accordance with some embodiments.
- feature enabling subsystem 125 can include a rocket effect tracker 1005 that determines when the “rocket effect” is triggered (i.e., when the triviality threshold is met), a feature status tracker 1010 that determines whether the status for a feature has changed, and an enabler determiner 1015 that determines whether to visually modify the UI element representing the feature to convey the change in status.
- rocket effect tracker 1005 can receive a signal from rocket effect generator 120 in FIG. 1 that indicates whether a triviality threshold is met and therefore the “rocket effect” triggered. In some embodiments, upon receiving the signal indicating that the threshold is met, rocket effect tracker 1005 can send a signal to enable determiner 1015 that causes enable determiner 1015 to determine whether to visually modify the element.
- enable determiner 1015 in response to receiving the signal from rocket effect tracker 1005 indicating that the threshold is met, enable determiner 1015 can send a request to feature status tracker 710 to determine whether the status of the feature is changed. If the status of the feature is determined to have been modified, enable determiner 1015 can send a request to render engine 115 to visually modify the UI element.
- feature status tracker 1010 can determine that the status of the feature has been changed prior to the triviality threshold being met.
- Feature status tracker 1010 in some embodiments can send a signal to enable determiner 1015 indicating that the feature is enabled.
- Enable determiner 1015 can then send a signal to render engine 135 to visually modify the UI element upon receiving a signal from rocket effect tracker 1005 indicating that the triviality threshold has been met.
- render engine 135 can visually modify the UI element immediately following the “rocket effect” (i.e., as the completion status indicator arrives at one end of the progress bar from a current position when the threshold is determined to have met). Modifying the UI element following the “rocket effect” can direct the user's attention to the modified UI element. Some embodiments display the visual cue at the same time as the “rocket effect” (i.e., the animation of the accelerated progress status indicator in the progress bar).
- FIG. 11 illustrates an example process 1100 of some embodiments for visually modifying a UI element in response to a feature being enabled when the triviality threshold is met.
- feature enabler 125 of FIG. 1 can determine whether the status of a feature is changed (e.g., a feature is ready to be enabled) when the threshold is met and thereby cause render engine 135 to display a change in the visual state of a UI element representing the feature's status.
- process 1100 can be performed after process 300 determines that the threshold has been met at block 310 in some embodiments.
- browser application can receive an indication that a the triviality threshold has been reached.
- browser application can determine whether a status of a feature is changed or whether the feature is to be enabled. Some embodiments can determine whether a feature status is changed or whether the feature is to be enabled by inquiring a module that is responsible for rendering the feature when it is enabled. In some embodiments, browser application can determine that a feature status is changed when the feature becomes functional from being non-functional. For instance, a feature that allows readers to view a web page in a different manner is changed or enabled when the different view is populated and ready for viewing.
- browser application can visually modify a state of a UI element representing the feature status subsequent to displaying the “rocket effect.” if web browser determines that the feature is not to be enabled, process 1100 ends. In some embodiments, after process 1100 ends, browser application displays the “rocket effect” without visually modifying the UI element.
- FIG. 12 illustrates an example progression 1200 of a completion status indicator for a task in a progress bar 1205 and visually modifying a UI element 1210 representing a feature in accordance with some embodiments.
- progress bar 1205 displays a completion status indicator indicating a 0% completion status for a task.
- UI element 1210 representing a status for a feature can be dotted as shown in FIG. 12 , indicating that the feature is currently disabled.
- the completion status indicator shows that the status of the task is approximately 20% complete.
- the completion status indicator displayed in progress bar 1205 can be an underreported status of the task.
- UI element 910 remains disabled at this stage.
- progression of the completion status indicator accelerates toward one end of the progress bar to indicate completion of the task.
- browser application can determine whether the feature is enabled when the threshold is met. In this instance, the feature is ready to be enabled when the threshold is met. Before the completion status indicator reaches the end of the progress bar, UI element 1210 remains disabled in this example.
- UI element 1210 can be enabled when browser application determines that the threshold is met.
- the visual cue indicating the status change for the feature (represented by UI element 1210 ) is enabled when the progression of the completion status indicator reaches the end of the progress bar. Changing a visual state of UI element 1210 as the progression of the completion status indicator reaches the end of the progress bar allows the user's attention to be directed to the UI element 1210 .
- FIG. 13 illustrates an example of a more detailed diagram 1300 of secondary progress generator 130 and render engine 135 for rendering a secondary progress indicator in addition to a status of a task in a progress bar according to some embodiments.
- a browser application can provide a progress bar that displays a secondary progress indicator along with the completion status indicator for the task.
- the secondary progress indicator can convey additional information about a task including a speed at which the task is currently being performed.
- Secondary progress generator 130 can determine a current speed at which a task is being performed and a type of animation corresponding to the determined speed, while render engine 135 can display the type of animation corresponding to the determined speed.
- secondary progress generator can include a speed determiner 1305 that can determine a current speed at which the task is being performed, and a translator 1310 that can determine a type of animation associated with a speed.
- speed determiner 1305 determines a current speed at which a task is being performed (e.g., a download rate, a transfer rate)
- the current speed can be sent to translator 1310
- Translator 1310 can then determine the type of animation associated with the current speed.
- Secondary progress generator 130 can then send the type of animation to render engine 135 for display to the user.
- FIG. 14 illustrates an example process 1400 of some embodiments for displaying a secondary progress indicator along with the completion status indicator for the task in a progress bar.
- the secondary progress indicator can convey additional information about the task undergoing completion, such as a current speed at which the task is being performed.
- process 1400 can display a progress bar for a task being performed. Browser application can display the progress bar for a web page loading in some embodiments.
- process 1400 can receive a progress value for the task. As described, browser application can receive a progress value for loading a web page from a render engine in some embodiments.
- browser application can display a completion status indicator for the task in the progress bar based on the progress value. As mentioned, in some embodiments, the completion status indicator displayed in the progress bar can underreport the completion status of the task.
- process 1400 can determine a speed at which the task is being performed. In some embodiments, browser application (e.g., speed determiner 1305 in FIG. 13 ) can determine a speed at which the page is loading at the particular moment, based at least in part on the network connection, the transfer rate, location of the web server, number and size of objects to be loaded for the web page, etc.
- process 1400 can determine a type of animation to be used to represent the speed determined at block 1408 .
- browser application e.g., translator 1310 in FIG. 13
- the user can select the different types of animation to be used to represent the speed.
- process 1400 can determine an animation for the type of animation associated with the determined speed.
- browser application e.g., translator 1310
- process 1400 can display the associated animation concurrently with the completion status indicator in the progress bar.
- browser application can cause render engine 135 in FIG. 1 to display the associated animation simultaneously along with progression of the completion status indicator in the progress bar.
- FIG. 15 illustrates another example progression 1500 for displaying a secondary progress indicator along with a completion status indicator for a task in a progress bar according to some embodiments.
- a browser application can display multiple indicators in a progress bar to convey different types of information to the user.
- progress bar displays the completion status indicator to be at approximately 1 ⁇ 4 of the progress bar, along with a secondary progress indication represented by the density of the completion status indicator.
- the density of the completion status indicator is fairly low (as the dots are spaced sparsely), indicating that the speed at which the task is being performed is fairly slow.
- progress bar displays a completion status indicator to be at approximately 1 ⁇ 3 of the progress bar, along with a secondary progress indication with high density.
- progress bar displays a completion status indicator to be at around 1 ⁇ 2 of the progress bar, along with a secondary progress indication at medium density.
- textual data can accompany the density display to convey the exact speed at which the task is being performed.
- the secondary progress indicator can appear only if the user's cursor hovers over the progress bar or the progress bar indicator, indicating that the user would like to have additional information about the task. Further, browser application can display the secondary progress indicator in the portion of the progress bar that is not occupied by the completion status indicator such as not to obstruct the web address to the viewer.
- FIG. 16 illustrates an example progression 1600 for displaying another type of secondary progress indicator along with a completion status indicator of a task in a progress bar according to some embodiments.
- a browser application can display another type of indicator, such as ripples emanating from the edge of the completion status indicator in a progress bar to convey additional information to the user.
- progress bar displays a completion status around 2 ⁇ 5 of the progress bar, along with a secondary progress indication represented by ripples emanating from the edge of the completion status indicator/bar that is inching forward. In this case, the frequency of the ripples are high, indicating that the speed at which the web page is being loaded is fast.
- progress bar displays the completion status indicator to occupy around 1 ⁇ 2 of the progress bar, along with a secondary progress indication displaying medium frequency ripples.
- additional animation effects can be shown in the progress bar.
- browser application can display another type of animation in addition to secondary progress indicator simultaneously in order to convey a speed at which a subtask (e.g., loading a particular object for the web page) is being performed.
- FIG. 17 illustrates another example progression 1700 for displaying a type of secondary progress indicator along with a completion status indicator for a task in a progress bar according to some embodiments.
- a browser application can display another type of indicator, such as a spinning wheel, in a progress bar to convey a current speed at which a task is being performed to the user.
- progress bar displays a completion status indicator to be around 2 ⁇ 5 of the progress bar, along with a secondary progress indication represented by a spinning wheel in the progress bar.
- the speed at which the wheel is spinning is fast (indicated by the three arrows), indicating that the rate at which the web page is being loaded at the moment is high.
- Different types of animation can be used in different embodiments. In some embodiments, the types of animation is configurable by the user and/or the system administrator.
- FIG. 18 illustrates a computer system 1800 according to an embodiment of the present invention.
- Progress bar system 100 can be implemented within a computer system such as computer system 1800 shown here.
- Computer system 1800 can be implemented as any of various computing devices, including, e.g., a desktop or laptop computer, tablet computer, smart phone, personal data assistant (FDA), or any other type of computing device, not limited to any particular form factor.
- Computer system 1800 can include processing unit(s) 1805 , storage subsystem 1810 , input devices 1820 , display 1825 , network interface 1835 , and bus 1840 .
- Processing unit(s) 1805 can include a single processor, which can have one or more cores, or multiple processors.
- processing unit(s) 1805 can include a general-purpose primary processor as well as one or more special-purpose co-processors such as graphics processors, digital signal processors, or the like.
- some or all processing units 1805 can be implemented using customized circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs).
- ASICs application specific integrated circuits
- FPGAs field programmable gate arrays
- such integrated circuits execute instructions that are stored on the circuit itself.
- processing unit(s) 1805 can execute instructions stored in storage subsystem 1810 .
- Storage subsystem 1810 can include various memory units such as a system memory, a read-only memory (ROM), and a permanent storage device.
- the ROM can store static data and instructions that are needed by processing unit(s) 1805 and other modules of electronic device 1800 .
- the permanent storage device can be a read-and-write memory device.
- This permanent storage device can be a non-volatile memory unit that stores instructions and data even when computer system 1800 is powered down.
- Some embodiments of the invention can use a mass-storage device (such as a magnetic or optical disk or flash memory) as a permanent storage device.
- Other embodiments can use a removable storage device (e.g., a floppy disk, a flash drive) as a permanent storage device.
- the system memory can be a read-and-write memory device or a volatile read-and-write memory, such as dynamic random access memory.
- the system memory can store some or all of the instructions and data that the processor needs at runtime.
- Storage subsystem 1810 can include any combination of computer readable storage media including semiconductor memory chips of various types (DRAM, SRAM, SDRAM, flash memory, programmable read-only memory) and so on. Magnetic and/or optical disks can also be used.
- storage subsystem 1810 can include removable storage media that can be readable and/or writeable; examples of such media include compact disc (CD), read-only digital versatile disc (e.g., DVD-ROM, dual-layer DVD-ROM), read-only and recordable Blue-Ray® disks, ultra density optical disks, flash memory cards (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic “floppy” disks, and so on.
- the computer readable storage media do not include carrier waves and transitory electronic signals passing wirelessly or over wired connections.
- storage subsystem 1810 can store one or more software programs to be executed by processing unit(s) 1805 , such as a browser application 1845 .
- “software” can refer to sequences of instructions that, when executed by processing unit(s) 1805 cause computer system 1800 to perform various operations, thus defining one or more specific machine implementations that execute and perform the operations of the software programs.
- the instructions can be stored as firmware residing in read-only memory and/or applications stored in magnetic storage that can be read into memory for processing by a processor.
- Software can be implemented as a single program or a collection of separate programs or program modules that interact as desired.
- Programs and/or data can be stored in non-volatile storage and copied in whole or in part to volatile working memory during program execution. From storage subsystem 1810 , processing unit(s) 1805 can retrieve program instructions to execute and data to process in order to execute various operations described herein.
- a user interface can be provided by one or more user input devices 1820 , display device 1825 , and/or and one or more other user output devices (not shown).
- Input devices 1820 can include any device via which a user can provide signals to computing system 1800 ; computing system 1800 can interpret the signals as indicative of particular user requests or information.
- input devices 1820 can include any or all of a keyboard touch pad, touch screen, mouse or other pointing device, scroll wheel, click wheel, dial, button, switch, keypad, microphone, and so on.
- Display 1825 can display images generated by electronic device 1800 and can include various image generation technologies, e.g., a cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED) including organic light-emitting diodes (OLED), projection system, or the like, together with supporting electronics (e.g., digital-to-analog or analog-to-digital converters, signal processors, or the like). Some embodiments can include a device such as a touchscreen that function as both input and output device. In some embodiments, other user output devices can be provided in addition to or instead of display 1825 . Examples include indicator lights, speakers, tactile “display” devices, printers, and so on.
- image generation technologies e.g., a cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED) including organic light-emitting diodes (OLED), projection system, or the like, together with supporting electronics (e.g., digital-to
- display 1825 can provide a graphical user interface, in which visible image elements in certain areas of display 1825 are defined as active elements or control elements that the user selects using user input devices 1820 .
- the user can manipulate a user input device to position an on-screen cursor or pointer over the control element, then click a button to indicate the selection.
- the user can touch the control element (e.g., with a finger or stylus) on a touchscreen device.
- the user can speak one or more words associated with the control element (the word can be, e.g., a label on the element or a function associated with the element).
- user gestures on a touch-sensitive device can be recognized and interpreted as input commands; these gestures can be but need not be associated with any particular array in display 1825 .
- Other user interfaces can also be implemented.
- Network interface 1835 can provide voice and/or data communication capability for electronic device 1800 .
- network interface 1835 can include radio frequency (RF) transceiver components for accessing wireless voice and/or data networks (e.g., using cellular telephone technology, advanced data network technology such as 3G, 4G or EDGE, WiFi (IEEE 802.11 family standards, or other mobile communication technologies, or any combination thereof), GPS receiver components, and/or other components.
- RF radio frequency
- network interface 1835 can provide wired network connectivity (e.g., Ethernet) in addition to or instead of a wireless interface.
- Network interface 1835 can be implemented using a combination of hardware (e.g., antennas, modulators/demodulators, encoders/decoders, and other analog and/or digital signal processing circuits) and software components.
- Bus 1840 can include various system, peripheral, and chipset buses that communicatively connect the numerous internal devices of electronic device 1800 .
- bus 1840 can communicatively couple processing unit(s) 1805 with storage subsystem 1810 .
- Bus 1840 also connects to input devices 1820 and display 1825 ,
- Bus 1840 also couples electronic device 1800 to a network through network interface 1835 .
- electronic device 1800 can be a part of a network of multiple computer systems (e.g., a local area network (LAN), a wide area network (WAN), an Intranet, or a network of networks, such as the Internet. Any or all components of electronic device 1800 can be used in conjunction with the invention.
- Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a computer readable storage medium. Many of the features described in this specification can be implemented as processes that are specified as a set of program instructions encoded on a computer readable storage medium. When these program instructions are executed by one or more processing units, they cause the processing unit(s) to perform various operation indicated in the program instructions. Examples of program instructions or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
- processing unit(s) 1805 can provide various functionality for electronic device 1800 .
- processing unit(s) 1805 can execute browser application 1845 .
- Browser application 1845 can provide various functionality such as the ability to retrieve and display content items from local or remote sources (e.g., using HTTP or other data transfer protocols to retrieve and display web pages) in rendering a web page and the ability to receive and interpret user input pertaining to the content items, such as selection of a hyperlink, selection of an item to view, submission of data by the user in response to a particular content item (e.g., filling out a form on an interactive web page), and so on.
- browser application 1845 can provide a progress bar that displays a completion status indicator representing a completion status of a task such as loading a web page.
- Various additional information can be display within the progress bar e.g., via animation effects. For example, a speed at which a web page is being loaded at a particular moment in time can be presented by browser application 145 through animating ripples with varying frequencies.
- Computer system 1800 is illustrative and that variations and modifications are possible.
- Computer system 1800 can have other capabilities not specifically described here (e.g., mobile phone, global positioning system (GPS), power management, one or more cameras, various connection ports for connecting external devices or accessories, etc.).
- GPS global positioning system
- computer system 1800 is described with reference to particular blocks, it is to be understood that these blocks are defined for convenience of description and are not intended to imply a particular physical arrangement of component parts. Further, the blocks need not correspond to physically distinct components.
- Blocks can be configured to perform various operations, e.g., by programming a processor or providing appropriate control circuitry, and various blocks might or might not be reconfigurable depending on how the initial configuration is obtained.
- Embodiments of the present invention can be realized in a variety of apparatus including electronic devices implemented using any combination of circuitry and software.
- FIG. 19 illustrates an example of an environment 1900 that can implement various aspects of the present invention.
- a Web-based environment is used for purposes of explanation, one of ordinary skill would recognize that different environments can be used to implement various embodiments of the invention.
- Environment 1900 includes an electronic client device 1902 , a Web server 1906 , and at least one application server 1908 .
- Electronic client device 1902 can include any appropriate electronic device operable to send and receive requests, messages, and/or data over a network and convey information to a user of the device. Examples of such client devices include personal computers, mobile phones, laptop computers, personal data assistances and the like,
- Electronic client device 1902 can communicate with a Web server 1906 through at least one network where Web server 1906 can receive requests from electronic client device 1902 and serve content in response to communications over the network.
- Application server(s) 1908 can include hardware and/or software to execute aspects of one or more applications for the client device and is capable of generating content such as text, graphics, audio and/or video to be sent to the user through Web server 1906 in the form of HTML, XML, or any other appropriate structured language.
- Web server 1906 The handling of all requests and responses, as well as the delivery of content between client device 1902 and application server 1908 , can be handled by Web server 1906 . It should be understood that Web and application servers are not required and are merely examples components of environment 1900 .
- Web server 1906 can run any of a variety of server or mid-tier applications, including HTTP servers, FTP servers, CGI servers, data servers, Java servers and business application servers.
- Web server(s) 1906 can also be capable of executing programs or scripts in response to requests from client device 1902 , such as by executing one or more Web applications that can be implemented as one or more scripts or programs written in any programming language, such as Java®, C, C# or C++ or any scripting language, such as Perk Python or TCL, well as combinations thereof.
- Each of the client devices 1902 can include a display 1910 where messages and/or data received over a network can be locally rendered and displayed to the user.
- browser application can cause a local render engine to display content (e.g., a web browser including content and a progress bar) to the user
- processing can be performed “in the cloud” 1904 via Web server 1906 and one or more application servers 1908 in some embodiments.
- the data transfer rate, the completion status of a task, the underreporting of a progress status of a task, the speed at which the web page is being loaded can be determined “in the cloud” 1904 .
- Environment 1900 can be a distributed computing system using several computer systems and components interconnected through various communication links (e.g., computer networks).
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)
- Debugging And Monitoring (AREA)
- Digital Computer Display Output (AREA)
Abstract
An improved progress bar can convey a completion status of a task to a user in a manner that properly manages the expectations of the user. A browser application can overestimate a time to load a web page and thereby cause a completion status indicator in a progress bar to increment at a slower rate. The rate at which the completion status indicator increments can be adjusted as the browser application updates its estimation of the remaining load time. By underreporting the completion status of the task (i.e., loading the web page), the chances of the completion status indicator stalling towards the end of the progress bar are minimized, thereby allowing the user's expectations of completion of the task to be property managed.
Description
- This application claims priority to and the benefit of U.S. Provisional Application No. 61/609,238, filed Mar. 9, 2012 and entitled “Progress Bar,” the entire disclosure of which is herein incorporated by reference for all purposes.
- The present disclosure relates generally to progress bars and in particular to various improvements to progress bars that enhance a user's experience.
- A progress bar (also sometimes referred to as a status bar, or a completion status bar, etc.) is commonly used to convey a completion status of a task or a process, such as a loading of a web page, a file download, data transfer, etc. Different application programs may use progress bars in various different contexts. In one example, a browser application may use a progress bar to indicate a completion status of a web page being loaded for presentation to a user. In response to the user's selection of a uniform resource locator (URL) for a web page, the browser application may display a progress bar that conveys a completion status of the loading of the web page. The progress bar can be updated as the completion status of the loading of the web page changes. As such, via the progress bar, the user can roughly estimate a total completion time for the loading of the web page.
- A progress bar typically includes a completion status indicator that visually represents the completion status of a task or the operation being performed. The completion status indicator may, for example, be in the form of a slider bar that moves from a start position towards an end position, where reaching the end position signals completion of the task or operation. In such an embodiment, the position of the completion status indicator can convey the completion status (e.g., a percentage of the task being completed) of the task or operation to the user. The user can use the information conveyed by the completion status indicator to approximate a completion time for the task or operation.
- Conventional progress bars have a number of problems. First, due to the complexity of modern computing systems, varying disk, memory, processor, bandwidth and other factors can cause existing progress bars to exhibit non-linear behaviors, such as acceleration, deceleration, and pauses. This irregular behavior of progress bars can cause the progress bars to appear slow, clunky, and inaccurate in conveying an estimated completion time to a user.
- Certain embodiments of the present invention provide techniques for displaying an improved progress bar on a graphical user interface (GUI) that enhances a user's computing experience.
- A progress bar can display a completion status indicator that underreports a completion status of an ongoing task. In some embodiments, a browser application can overestimate a loading time for a web page and thereby increment a completion status indicator in a progress bar at a rate in accordance with the estimated load time. For example, a browser application may overestimate a loading time to be 10 seconds and increment a completion status indicator in a progress bar in a manner (e.g., at a rate of (total number of pixels in the progress bar)/10 s) such that the progress bar would show completion of the task in 10 seconds. By underreporting the actual status of the task in the progress bar minimizes the chances that the completion status indicator would stall towards the end of the progress bar. Further, some embodiments can update the completion status indicator in the progress bar in a smooth manner. In some embodiments, linear functions can be used to determine a location to which to animate the progression of the completion status indicator within certain intervals. This eliminates discrete jumps and adds fluidity to the progression of the reported status such that the progress bar can appear intuitive to the user.
- The following detailed description together with the accompanying drawings will provide a better understanding of the nature and advantages of the present invention.
-
FIG. 1 illustrates an example of a progress bar system for generating and displaying a user interface (in this example, web browser) that includes a progress bar in accordance with some embodiments of the present invention. -
FIG. 2 illustrates an example of a more detailed diagram of progress bar generator and rocket effect generator according to some embodiments. -
FIG. 3 conceptually illustrates a process for determining when to display the “rocket effect” in a progress bar in accordance with some embodiments. -
FIG. 4 illustrates an example process of some embodiments for displaying the rocket animation. -
FIG. 5 illustrates an example process of some embodiments for displaying an underreported progress status for a task in a progress bar. -
FIG. 6 illustrates another example process of some embodiment is for displaying a an underreported progress status for a task in a progress bar. -
FIG. 7 illustrates an example of progression of the completion status indicator in accordance with some embodiments of the invention. -
FIG. 8 illustrates an example of a time estimate table of some embodiments that enables browser application to obtain a time estimate until a task is complete based on a progress value. -
FIG. 9 illustrates an example sequence of a progress bar that updates smoothly while underreporting an actual status of a task in accordance with some embodiments. -
FIG. 10 illustrates an example of a more detailed diagram of feature enabler that can signal browser application to display a visual effect in response to a status change for a feature in accordance with some embodiments. -
FIG. 11 illustrates an example process of some embodiments for visually modifying a user interface (UI) element in response to a feature being enabled when the triviality threshold is met. -
FIG. 12 illustrates an example progression of a completion status indicator for a task in a progress bar and visually modifying a UI element representing a feature in accordance with some embodiments. -
FIG. 13 illustrates an example of a more detailed diagram of secondary progress generator and render engine for rendering a secondary progress indicator in addition to a completion status indicator for a task in a progress bar according to some embodiments. -
FIG. 14 illustrates an example process of some embodiments for displaying a secondary progress indicator along with the completion status indicator of the task in a progress bar. -
FIG. 15 illustrates another example progression for displaying a secondary progress indicator along with a completion status indicator of a task in a progress bar according to some embodiments. -
FIG. 16 illustrates another example progression for displaying another type of secondary progress indicator along with a completion status indicator of a task in a progress bar according to some embodiments. -
FIG. 17 illustrates another example progression for displaying a type of secondary progress indicator along with a completion status indicator of a task in a progress bar according to some embodiments. -
FIG. 18 illustrates a computer system according to an embodiment of the present invention. -
FIG. 19 illustrates an example of an environment that can implement various aspects of the present invention. - In the following description, numerous details, examples and embodiments are set forth for the purposes of explanation. However, one of ordinary skill in the art will recognize that the invention is not limited to the embodiments set forth and that the invention may be practiced without some of the specific details discussed. Further, some of the examples and embodiments, including well-known structures and devices, are shown in block diagram form in order not to obscure the description with unnecessary detail.
- Certain embodiments of the present invention provide techniques for displaying an improved progress bar on a graphical user interface (GUI) that enhances user computing experience. A progress bar can display a completion status indicator that allows a user to visualize a completion status of an ongoing task or operation. In some embodiments, the user can use the progress bar to verify that performance of the operation is proceeding successfully and to estimate a completion time for the operation by observing the completion status indicator.
- A progress bar in some embodiments can display a completion status indicator that underreports the completion status of an ongoing task. For instance, a web browser can determine an over-estimated load time (bra web page to prevent the completion status indicator from stalling at the end of the progress bar. Further, in some embodiments, the completion status indicator is displayed and updated in a smooth manner. In such embodiments, linear functions are used to determine a location to which to animate the progression of the completion status indicator within certain intervals. This eliminates discrete jumps and adds fluidity to the progression of the reported status such that the progress bar can appear more intuitive and responsive to the user.
- In some embodiments, a visual cue can be provided to alert a user when a threshold indicating that a task is “substantially complete” (also referred to as a triviality threshold) is met. As such, progress bars can provide a visual cue to a user to indicate when subtasks of a task of interest to the user is complete. In some embodiments, the visual cue can be an animation of an accelerated progression of a completion status indicator in a progress bar. In some embodiments, a triviality threshold refers to a threshold at which an average person would consider a task to be complete regardless of whether the task is actually complete. For instance, an average person may consider the triviality threshold for loading a particular sports web page met once one or more sports articles are visible, regardless of whether the rest of the page (e.g., including various images, advertisements, hyperlinks, etc.) is loaded. By providing a visual cue when the triviality threshold is met, the user can be informed of when portions of the page is viewable regardless of whether the page is loaded, instead of having to wait until the entire page is loaded.
- In some embodiments, the manner in which a user interface (UI) element is displayed may be tied to the display of a progress bar. For example, a GUI element may be visually enabled in response to the position or completion status indicated by the completion status indicator in a progress bar. In some instances, the GUI may include a button (e.g., a button corresponding to a reader function) that is visually enabled (i.e., its function enabled) upon the triviality threshold being met and the completion status indicator animated to show completed status. In this manner, the visual display of a UI element may be changed in response to the completion status indicated by the progress bar in order to highlight the feature represented by the UI element. In one embodiment, the UI element may be visually displayed and modified in a manner so as to draw a user's attention to the UI element.
- In some embodiments, in addition to showing the completion status of a task or operation (shown by the completion status indicator of the progress bar), a progress bar may also visually indicate (e.g., using an animation) a speed at which the task is being performed at a point in time. Conveying to a user the loading rate allows the user to distinguish between loading a relatively large web page with a fast loading rate and loading a relatively small web page with a slow loading rate. Since in some instances, a slow loading rate could mean a poor connection between the user and a particular server, the user may want to cancel his or her requests for data from that server when the loading rate is unacceptably slow. The user can determine whether to stay on a current web page or to switch to a different one based on the speed at which the page is being loaded in some instances.
- Various different animations may be used to display the speed. For example, the progress bar may display animated waves or ripples with the speed of the waves or ripples indicating the speed of the task or operation being performed. In this example, faster animation of the waves or ripples indicates faster speed (e.g., when a web page is loading at 0.5 MB/s the waves or ripples may be displayed at one animation speed and when the loading rate is at 1 GB/s the waves or ripples may be displayed at a faster animation speed). The speed of the animation provides a visual cue to the user of how fast the task or operation is being performed.
- The terms “status of task” or “progress of task” can be used herein to refer to the amount or percentage of the task or operation that is complete at a moment in time. The terms “progress status indicator,” “completion status indicator,” or “status indicator” can be used herein to refer to a representation of a status or progress of a task in a progress bar. The term “progression of a completion status indicator” can be used herein to refer to the motion and/or rate at which the completion status indicator for the task shown in the progress bar is moving. One of ordinary skill would recognize that although the description is depicted with respect to a particular type of progress indicator, namely, a progress bar, other types of progress indicators that can indicate a status of a task or operation can be used as well.
-
FIG. 1 depicts a simplified high level block diagram of aprogress bar system 100 in accordance with some embodiments of the invention. As shown inFIG. 1 ,progress bar system 100 can include multiple subsystems such as a fluidprogress bar generator 115, arocket effect generator 120, afeature enabler 125, asecondary progress generator 130, and a renderengine 135. One or more communication paths can be provided to enable one or more of the subsystems to communicate with and exchange data with one another. The various components described inFIG. 1 can be implemented in software, hardware, or a combination thereof. In some embodiments, the software can be stored on a transitory or non-transitory computer readable storage medium and can be executed by one or more processing units. - It should be appreciated that
progress bar system 100 as shown inFIG. 1 can include more or fewer components than those shown inFIG. 1 . In some embodiments,progress bar system 100 can be a part of an electronic computing device, such as a computer or a handheld device. The various components inprogress bar system 100 can be implemented as a stand-alone application or integrated into another application (e.g., a web browser application, an e-mail client, or any other application that can display progress bars), while in some embodiments the components inprogress bar system 100 can be implemented within an operating system. - In some embodiments,
progress bar system 100 can generate and display a progress bar to a user such asprogress bar 145 depicted inFIG. 1 . In some embodiments,progress bar 145 can include acompletion status indicator 150 where the position of the completion status indicator indicates the completion status of a task. By observing a progression of the completion status indicator inprogress bar 145, a user can identify the completion status of the page loading task in some embodiments. The various components inprogress bar system 100 can provide visual enhancements to progressbar 145 such that additional useful information is conveyed to the user usingprogress bar 145. - In some embodiments, render
engine 135 is configured to render and display content on a display of an electronic computing device. In some instances, renderengine 135 can be embedded in a web browser that can retrieve a document (e.g., HTML, XML, image files, etc.) corresponding to a URL (e.g., input by a user) and cause renderengine 135 to render a graphical representation of it on the display of the electronic computing device. In addition to generating a display of a web page, renderengine 135 in some embodiments can generate a progress bar for display. In some embodiments, a web browser can determine progress values that indicate a total loaded percentage of a web page and provide those progress values to various subsystems inprogress bar system 100. These subsystems can then use these progress values to perform various operations in relation to the progress bar. - In some embodiments, fluid
progress bar generator 115 is configured to underreport of a status of an ongoing task (e.g., the loading of a web page). Since it is difficult to accurately determine how much of the task remains to be completed, underreporting the progress values to the users can manage the user's expectations. Further, underreporting the completion status up front would permit more space within the progress bar for the completion status indicator to progress such that stalling towards the end of the progress bar can be minimized or prevented. In some embodiments, fluidprogress bar generator 115 can receive progress values from renderengine 135 and determine a location in the progress bar to which to increment the completion status indicator for the task. The determined location can correspond to an underreported value of the status of the task. - As described above, fluid
progress bar generator 115 is configured to smoothen the manner in which the completion status indicator in a progress bar is displayed and updated. This is done on as to reduce the clunky updates typically associated with conventional progress bars. Smoothening the display and update of the completion status indicator in a progress bar enhances the user's visual experience with respect to progress bars. - In one embodiment, fluid
progress bar generator 115 uses one or more linear functions to achieve the smoothening. Fluidprogress bar generator 115 may construct a linear function and use a computation performed using the linear function to determine each new location for the completion status indicator within the progress bar to increment to within the time interval. In some embodiments, using a linear function to compute each next location allows the progression of the completion status indicator to appear to be incrementing smoothly and at a constant speed. - In some embodiments, a progress value can indicate a completion status of a task. Browser application in some embodiments can receive a progress value from render engine When fluid
progress bar generator 115 receives a new progress value, fluidprogress bar generator 115 can use the progress value to estimate a new time until the task is completed (e.g., using a lookup table).Fluid bar generator 115 can then construct a new linear function using the newly estimated time. As such, the progression of completion status indicator continues to increase at a steady rate, although at a different rate from before. Regardless of the change in progression rate, constructing multiple linear equations to determine locations to increment for each time interval allows the progression of the completion status indicator to appear smooth and soothing to the user's eye. Incrementing the completion status indicator to steadily and within short time intervals causes its appearance to be smoothly increasing to a user. - In some embodiments,
rocket effect generator 120 is configured to cause the progression of the completion status indicator in the progress bar to “rocket” or accelerate from its current position to a position indicative of completion of the task when a triviality threshold is met. For example, forprogress bar 145 depicted inFIG. 1 , when the triviality threshold is met, the completion status indicator is animated to advance from its current position to it endposition 155, which indicates completion of the task to the user. - The triviality threshold for a task identifies a threshold at which a task, even though not fully completed, can be indicated as completed for purposes of the user. The triviality threshold is configurable and, for a task, is generally set to a threshold less than the full completion of the task. It should be appreciated in some embodiments, the triviality threshold can be set to the full completion of the task.
- The triviality threshold may be application and task-context specific. For example, if the task is loading of a web page, the triviality threshold can be set to a threshold percentage of the web page being loaded, for example, when the page is deemed “substantially loaded” or “visually complete.” In some embodiments,
rocket effect generator 120 can determine a triviality threshold using a set of criteria. For example, the triviality threshold can be met when 30% of a web page has been loaded. - In some embodiments,
rocket effect generator 120 can produce an animation that shows an accelerated progression of the completion status indicator from a current location in progress bar 105 to one end of progress bar 105. This would serve as a visual cue to the user that the page would appear complete to the user regardless of whether the page loading is complete. The user can use this visual cue as a signal that he or she may now start viewing the page. - Some embodiments can provide a visual modification of a user interface element in response to a completion status indicator indicating that the task is complete. In some embodiments,
feature enabler 125 is configured to cause a visual modification of a user interface element representing a feature. In response to determining that the triviality threshold is met and a “rocket effect” being enabled,feature enabler 125 can determine whether a particular feature is “to be enabled” subsequent to the display of the “rocket effect.” Whenfeature enabler 130 determines that the feature (e.g., specified by the user) is enabled, renderengine 115 in some embodiments can highlight the enabled feature or visually modify a user interface element representing the feature. In some embodiments, renderengine 115 can display the visual modification to the user interface element immediately following the accelerated progression of the completion status indicator or “rocket effect” caused byrocket effect generator 120 in order to further highlight the enabled feature. - In some embodiments,
secondary progress generator 135 is configured to cause an animation effect to be displayed by the progress bar, where the animation indicates a speed at which a task is being performed. In some embodiments,secondary progress generator 135 can monitor a speed at which the task, such as the loading of a web page, is currently being performed.Secondary progress generator 135 can determine an animation to be displayed in the progress bar to represent the speed.Secondary progress generator 135 can then cause renderengine 115 to display the animation. The animation effect allows the user to identify the speed at which the task is being performed such that the user can determine. -
FIG. 2 illustrates an example of a more detailed diagram 200 of fluidprogress bar generator 115 androcket effect generator 120 according to some embodiments. InFIG. 2 , fluidprogress bar generator 115 can include athreshold checker 205, athreshold determiner 210, an under-reporter 215, and aprogression smoothening module 220.Rocket effect generator 120 in some embodiments can include athreshold checker 205, athreshold determiner 210, and arocket effect creator 225. It should be appreciated that fluidprogress bar generator 115 androcket effect generator 120 as shown inFIG. 2 can include more or fewer components than those shown inFIG. 2 . Further, one or more components in fluidprogress bar generator 115 and rocket effect generator 120 (e.g.,threshold checker 205 and threshold determiner 210) can be implemented as a single function or application shared by both subsystems or integrated into one of the subsystems where it can be accessible by the other subsystem. - One or more communication paths can be provided to enable one or more of the components to communicate with and exchange data with one another. The various components described in
FIG. 2 can be implemented in software, hardware, or a combination thereof. - In some embodiments,
threshold determiner 215 is configured to determine a triviality threshold for a task being performed. As mentioned, the triviality threshold can be the threshold at which an average person would deem the task as being “complete” while the task may be only “substantially complete.” For instance, an average person may deem a web page loading task as appearing “complete” or the web page as being “visually complete” when key components of the web page (e.g., the leading news article) are loaded. Hence, the triviality threshold is determined to be met when the key components of the web page are loaded. - The triviality threshold in some embodiments can be different from task to task. In some embodiments, the triviality threshold for different tasks can be met upon satisfying a different set of criteria. For instance, the triviality threshold for the loading of a web page on a news website can be set at when the articles on the page have been loaded while the triviality threshold for the loading of a web page on a retail website can be set at when the product images have been loaded. In another instance, the triviality threshold relating to a particular website can be met when a threshold percentage of the total area of elements rendered on the web page is loaded. In even another instance, the triviality threshold can be met when everything in the page from different URLs aside from objects from a particular URL has been loaded. The triviality threshold for each task can be user configurable (e.g., via a preferences setting) or set by a system administrator or web developer to a default setting.
- In some embodiments,
threshold determiner 210 can determine the triviality threshold forthreshold checker 205 to use in checking whether the threshold is met.Threshold checker 205 can receive various information relating to a task (e.g., information necessary for determining whether the triviality threshold for the task is met) from renderengine 135. In this example,threshold checker 205 can obtain a percentage of the total area of elements rendered on the web page from renderengine 135 and determine whether the received percentage passes the threshold percentage determined bythreshold determiner 210. Upon determining that the received percentage passes the threshold percentage,threshold checker 205 determines that the triviality threshold is met. - In some embodiments, in response to determining that the triviality threshold is met,
rocket effect creator 225 inrocket effect generator 120 can determine a visual cue or a type of animation and visually display the visual cue on the progress bar.Rocket effect creator 225 in some embodiments can cause renderengine 135 to display a “rocket effect animation” where the progression of the completion status indicator in the progress bar accelerates toward one end of the progress bar that makes it look as if the completion status indicator of a task “rocketed” to completion. - In some embodiments, before
threshold checker 205 determines that the triviality threshold is met, fluidprogress bar generator 115 can determine how progression in the progress bar is to be displayed. Under-reporter 215 in fluidprogress bar generator 115 can receive progress values indicating a completion status of the task from renderengine 135 and cause renderengine 135 to display a completion status indicator that underreports the actual progress status of the task. In some embodiments, upon receiving a progress value, under-reporter 215 can determine an estimated completion time for the task at hand (e.g., using a lookup table). The estimated completion time can be an over-estimate of the amount of time necessary to complete the task. As such, the completion status indicator shown by the progress bar would indicate a slower progression (e.g., by incrementing in smaller increments) than the actual progress of the task. -
Progression smoothening module 220 in some embodiments can construct a linear equation using the estimated completion time.Progression smoothening module 220 can use the constructed linear equation to determine a next location to which the completion status indicator of the task should increment in the progress bar. Upon determining the next location,progression smoothening module 220 can cause renderengine 135 to display the incremental progress of the task using the completion status indicator in the progress bar. In some embodimentsprogression smoothening module 220 can continue to determine the next location to which to increment the completion status indicator based on the progress values from renderengine 135 and the constructed linear equations.Progression smoothening module 220 can continue to cause render engine to display a smooth progression of the completion status indicator of the task in the progress bar untilthreshold checker 205 determines that the triviality threshold is met androcket effect creator 225 causes renderengine 135 to display a “rocket effect.” -
FIG. 3 conceptually illustrates aprocess 300 for determining when to display the “rocket effect” in a progress bar in accordance with some embodiments. As described, renderengine 135 in some embodiments can render a visual cue such as a “rocket effect” upon determining that a triviality threshold is met. Some or all of the process 300 (or any other processes described herein, or variations and/or combinations thereof) may be performed under the control of one or more computer systems configured with executable instructions and may be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) collectively on one or more processors, by hardware, or combinations thereof. The code may be stored on a computer-readable storage medium, for example, in the form of a computer program to be executed by processing unit(s), such as a browser application. The computer-readable storage medium may be non-transitory. - At
block 302,process 300 can receive a request to perform a task such as loading a particular web page. For example, a browser application can receive a request upon a user entering a URL for a web page or upon the user activating a hyperlink embedded in a page. Atblock 304,process 300 can display a progress bar for the task being performed. The progress bar can display a completion status indicator in the progress bar that represents a progress status of a task using a such that the user can visualize the status of the ongoing task. - At
block 306,process 300 can determine a triviality threshold for the task. The triviality threshold in some embodiments can be a static threshold preconfigured by a user or by an administrator. For instance, the static threshold can be a percentage of the task that is complete. In the instance for loading a web page, the triviality threshold can be a percentage of the total area of elements rendered on the web page. In some embodiments, the triviality threshold can be dynamically determined using a set of metrics. For instance, some embodiments can determine the triviality threshold by determining a type of web page to be loaded and determining the amount and/or types of objects in the page that need to be loaded (e.g., using a lookup table) based on the type of web page for the page to be deemed “visually complete” to a user. - At
block 308,process 300 can receive a progress value for the task. During the web page loading process, render engine in some embodiments can periodically send progress values indicating a total loaded percentage of a page to the browser application. Atblock 310,process 300 can determine whether the triviality threshold is reached. Browser application in some embodiments can determine whether the triviality threshold is met using the progress value. - When
process 300 determines that the triviality threshold is reached,process 300 displays a rocket effect in the progress bar atblock 316. Whenprocess 300 displays the rocket effect, the process ends. On the other hand, whenprocess 300 determines that the triviality threshold is not reached, at block 312,process 300 displays a progression of completion status indicator of the task in the progress bar based on the progress value. In order to display the progression of the completion status indicator for the task, web browser in some embodiments can determine a next location to which to increment the completion status indicator using the progress value. - At
block 314,process 300 can determine whether a new progress value has been received. Whenprocess 300 determines that a new progress value has been received,process 300 returns to block 310 and determines whether the threshold is reached. Whenprocess 300 determines that a new progress value has not been received,process 300 returns to block 312 to continue displaying the progression of the completion status indicator of the task in the progress bar. As such, browser application can resume computing the next location to which to increment the completion status indicator in the progress bar. - In some embodiments, upon determining that a threshold is met, browser application can display a visual cue or a type of animation to indicate to the user that the task is “substantially complete” or that the web page is “visually complete to a user.”
FIG. 4 illustrates anexample process 400 of some embodiments for displaying the rocket animation. One of ordinary skill will recognize thatprocess 400 can be performed atblock 316 ofprocess 300 in some embodiments. - At
block 402,process 400 can identify the type of animation to show when the threshold is met. In response to determining that the threshold is met, browser application can identify the type of animation to show as a visual cue to the user. In some embodiments, the type of animation can be user configurable or pre-configured by the system administrator as a default setting. The type of animation can include one or more accelerated progression of a completion status indicator in the progress bar from a current position to another position in the progress bar in one embodiment. In some embodiments, the type of animation can include a “rocket effect” or “rocket animation” where the completion status indicator in the progress bar accelerates to one end of the progress bar. Atblock 404,process 400 can display the identified type of animation in the progress bar. - In some embodiments, before the threshold is met, browser application can provide a progress bar that displays a completion status indicator for the task that underreports the actual status of the task. Some embodiments underreport the completion status of an ongoing task in the progress bar to avoid the completion status indicator being stalled at the end of the progress bar due to miscalculation in the completion status.
FIG. 5 illustrates anexample process 500 of some embodiments for displaying an underreported progress status indicator for a task in a progress bar. One of ordinary skill will recognize thatprocess 500 can be performed at block 312 ofprocess 300 in some embodiments. Atblock 502,process 500 can receive a progress value for a task. In some embodiments, browser application can periodically receive a progress value from a render engine such as renderengine 135 inFIG. 1 . - At
block 504,process 500 can determine, based on the progress value, another progress value less than the progress value received atblock 502. In some embodiments, browser application can receive a progress value for a task from a render engine and determine an estimated time until the task would be complete (e.g., via a lookup table). Browser application in some embodiments can construct a linear equation based on the estimated completion time. Using the linear equation, browser application can determine the next location to where the completion status indicator in the progress bar should animate after the period of time. The period of time can be preconfigured by the user or pre-selected by an administrator. - At
block 506,process 500 can display the completions status indicator for the task in the progress bar based on the other value that underreports the actual completion status of the task. Browser application in some embodiments can display an incremented progress bar where the completion status indicator of the task indicates the other progress value calculated from the linear equation atblock 504. -
FIG. 6 illustrates anexample process 600 of some embodiments for displaying a progression of the completion status indicator for a task in a progress bar. One of ordinary skill will recognize thatprocess 600 can be performed at block 312 ofprocess 300 in some embodiments.Process 600 can be executed, e.g., in a browser application. In some embodiments, a browser application can provide a progress bar that allows a user to visualize a completion status of a task (e.g., via a completion status indicator) and a status progression along the progress bar. Some embodiments can generate a smooth progression using linear equations constructed using a time estimate until completion of the task. At the same time, web browser in some embodiments can display a progression of the completion status indicator for the task that underreports the actual status of the task. - At
block 602,process 600 can receive a progress value for a task such as loading a web page. In response to receiving a user request to load a web page, browser application in some embodiments can receive progress values from a render engine such as renderengine 135 inFIG. 1 . In some embodiments, the progress values can indicate a total percentage of the web page that has been loaded at a current time. - At
block 604,process 600 can determine an estimated load time based on the progress value received atblock 602. Browser application in some embodiments can determine the amount of time required to load the rest of the web page based at least in part on the percentage of the web page that has already been loaded and the amount of time it took to load that amount. In some embodiments, browser application can determine the amount of time required to load the rest of the web page using a lookup table. Browser application in some embodiments can map the progress value to an estimated time in the lookup table. The lookup table can be configurable by a user or a system administrator. - In some embodiments, the system administrator can configure and fine tune the lookup table such that the estimated would be more accurate. Browser application in some embodiments can use other attributes in addition to the progress value for the task, such as the type of web page being loaded, to compute the estimated load time. Further, in some embodiments, browser application can determine the estimated load time in such a way that over-estimates the amount of time it could possibly take to load the rest of the web page. By estimating a longer duration for the web page to finish loading, browser application in some embodiments can increment the completion status indicator in the progress bar in smaller increments such that it would cause an underreporting of the actual status for the task.
- At
block 606,process 600 can construct a linear equation using the estimated load time determined fromblock 604. The linear function F(t) would allow the browser application to determine a location within the progress bar to where the completion status indicator should be incremented based on time. In some embodiments, the linear function F(t) can take as an argument the time since the beginning of a page load and return a value with an X position that indicates the position where the completion status indicator in the progress bar should be at time t. - Browser application can use two known points to construct linear function F(t). In one example, the domain is the amount of time that has elapsed since the beginning of a load and the range is an X location along the fluid progress bar. One of ordinary skill would be able to determine the linear progression between two identified points by using F(t)=mt+b.
- In this example, one can set the first point to include the current information: T1=elapsed time since the beginning of a load and X1=current X position (represented as a fraction of the location field's width). Then, one can determine the second point to include where the completion status should be when the task is completed, that is, T2=estimated load time and X2=1 (representing 100% of the location field's width or fluid progress final destination).
- The linear equation F(t) can then be computed where
-
-
- For instance, if the location field has a width of 1000 pixels, and browser application estimates it will take 10 seconds for the page load to complete and if 3 seconds have already passed, indicating that the current location is 300, then T1=3, X1=300/1000=0.3, T2=10, X2=1000/1000=1, which would yield a function F(t)=0.1t. In some embodiments, the function is recomputed every time browser application receives a new progress value from render engine since the time estimate changes every time a new progress value is received.
- At
block 608,process 600 can compute a next location using the linear equation constructed inblock 606. In some embodiments, browser application is set to increment every time interval set by a user or administrator, such as every 200 ms or every 250 ms. If web browser is set to animate a single animation every 200 ms, the next location for the completion status indicator in the progress bar can be determined by solving F(3 s+0.2 s)=0.1(3.2)=0.32 or 320 pixels. Atblock 610,process 600 can animate to the next location computed inblock 608. In some embodiments, browser application can animate the completion status indicator in the fluid progress bar from location X=300 to X=320 within 200 ms. -
Process 600 then ends. In embodiments whereprocess 600 is performed at block 312 inFIG. 3 , afterprocess 600 ends,process 300 proceeds to block 314 to determine whether a new progress value has been received. If a new progress value has not been received,process 300 returns to block 312 whereprocess 600 can again be performed to calculate and animate the progress bar indicator to a next location within the progress bar. -
FIG. 7 illustrates an example ofprogression 700 of a completion status indicator for a task in a progress bar in accordance with some embodiments of the invention. As described, browser application in some embodiments can determine a threshold at which to set off the “rocket effect.” In response to determining that the threshold is met (e.g., when a progress value indicates that a threshold percentage of the task has been completed), browser application can display a visual cue that alerts the user that the threshold has been met. In some instance, the visual cue can be a “rocket effect” where the progression of the completion status indicator in the progress bar accelerates dramatically to the end of the progress bar. As described, the threshold can often be set at a point in time or at a loading percentage at which the user can deem a web page to be “visually complete” in terms of loading. - In
FIG. 7 , a user has requested a browser application to load a web page. Upon receiving the user request (e.g., when the user types in www.url.com in the address field of the web browser), browser application in some embodiments can display a GUI including a progress bar that can indicate a status indicator for the loading of the web page. As shown at t=T0, the progress bar shows that nothing in the web page has been loaded so far. The completion status indicator for the task reflects 0% at this time. At t=T0+x, the completion status indicator of the task as indicated in the progress bar has increased to approximately 20% of the progress bar. As described, browser application in some embodiments can display an underreported status of the task in the progress bar. This can account for and minimize the chances for pauses in the progression of the completion status indicator in the progress bar. In some embodiments, browser application can display an initial boost in response to receiving the user request in loading a web page. For instance, the status in the progress bar can display a 10% increase upon the user's request regardless of whether 10% of the web page or any of the web page has already been loaded. This makes the progress bar feel more responsive to user interaction and provides improved user experience. - In some embodiments, browser application can compute the next location to which to increment the status indicator in the progress bar and animate the progression (e.g., using
process 600 inFIG. 6 ). At t=T0+2x, the completion status has increased to approximately 15% of the progress bar. At t=T0+3x, the completion status has increased to approximately 40% of the progress bar. In some embodiments, the progress bar can display a smooth increase in the completion status indicator of the task. The rate at which the web page is being loaded can vary depending on various factors, such as the transfer rate, the bandwidth of the computing device on which the browser application is running, the servers from which information must be retrieved, etc. As browser application receives additional progress values, browser application can determine a different rate which the web page is being loaded and display a constant increase in between each receipt of a new progress value (e.g., using linear functions to compute each new location). - Upon reaching the triviality threshold at t=T0+4x=Tthresh (time at which the triviality threshold is met), the progression in the completion status indicator as shown in
FIG. 7 accelerates towards the end of the progress bar to convey completion of the task in loading the web page, regardless of whether the task is actually completed. This acceleration in the progression of completion status indicator serves as a visual cue to indicate to a user that the web page is “visually complete” at this moment. At t=T0+5x, the progress bar shows completion of the task. In some embodiments, as browser application determines that the threshold has been reached, browser application can accelerate the progression to a rate at which the progress bar would immediately indicate that the task has been completed. Different embodiments may display the visual cue to the user differently. For instance, some embodiments can display the visual cue by displaying multiple spurts of accelerations instead of a single accelerated progression all the way to the end of the progress bar. -
FIG. 8 illustrates an example of a time estimate table 800 of some embodiments that enables browser application to obtain a time estimate until a task is complete based on a set of parameters. In this example, time estimate table 800 provides time estimate values 810 fordifferent progress values 805 that browser application receives from a render engine such as renderengine 135 inFIG. 1 . While in this example, browser application can determine a time estimate using a single parameter (i.e., a progress value), in some embodiments, browser application can determine the time estimate using multiple parameters that are not included in time estimate table 800. - As shown in this example, the estimated time until a task is complete for a progress value that is between 0% and 35% is 30 seconds. While some embodiments can provide an estimated time for a progress value, some embodiments can provide a location in the progress bar for the progress value. In some embodiments, time estimate table 800 can be stored remotely or locally in a data storage accessible to browser application. Time estimate table 800 can also be stored in filesystem of an electronic computing device in a properly list format (e.g., as an eXtensible Markup Language (XML) file) in some embodiments.
- In response to receiving a progress value each time, browser application can retrieve an estimated page load time from time estimate table 800 based on the progress value. Browser application can then use the estimated time to construct a linear function and increment the completion status indicator in the progress bar based on the linear function. Browser application can continually increment the completion status indicator in the progress bar based on the constructed linear function until another progress value is received. In response, browser application can construct a new linear function based on the new progress value and increment the completion status indicator in the progress bar based on the new linear function.
- In some embodiments, the estimated load time can over-estimate the amount of time necessary for the task to complete, As such, the linear function constructed based on the over-estimated time can cause the completion status indicator in the progress bar to increment in smaller increments such that the progress bar would essentially underreport the actual completion status of the task. Further, while browser application in some embodiments uses static mapping and a set of linear functions to determine new locations in the progress bar to increment the reported status, some embodiments can determine the new location using other attributes that would also serve to underreport the status of the task.
-
FIG. 9 illustrates anexample sequence 900 of a progress bar that updates smoothly while underreporting an actual status of a task in accordance with some embodiments. In some embodiments, a browser application can display a fluid progress bar that updates a completion status indicator for a task in a manner that appears “smooth” or “fluid” to a user, instead of appearing “clunky.” The browser application can over-estimate an amount of time required to complete the task such that the progression of the status indicator displayed in the progress bar would make smaller increments and, in turn, underreport the actual status progression of the task. - As described, the browser application can receive a progress value from a render engine, compute an estimated page load time (e.g., by mapping the progress value to an estimated time using time estimate table 800 in
FIG. 8 ), construct a linear function using the estimated page load time, and determine a new location in the progress bar to increment the progress status indicator for a time interval. The browser application in some embodiments can then animate the progression of the task to the new location. By designating short time intervals (e.g., 200 ms, 250 ms) for determining and incrementing to a new location allows the progression of completion status indicator in the progress bar to appear smooth to a user. - In
FIG. 9 , browser application can receive a progress value of 40% from a render engine within a short period of time (e.g., after 5 milliseconds, 50 milliseconds, 3 seconds, 10 seconds) after receiving a user request for a particular web page. After receiving the progress value, browser application in some embodiments can determine a time estimate for the page loading to complete using time estimate table 800 inFIG. 8 . Using time estimate table 800, the estimated time until the web page finishes loading is 10 seconds. - Again, as described in
block 606 inprocess 600, browser application can construct a linear function using two known points. If the location field of the progress bar has a width of 1000 pixels and browser application (e.g., render engine) estimates that it will take 10 seconds for the load to complete, browser application can construct a linear function F(t) upon determining that 3 seconds have passed and that the current location is at X=300. In such an instance, browser application can construct linear function F(t) in a way such that the progression in the progress bar can complete within the estimated time (i.e., 10 seconds). Using -
- this example,
-
- In this case, if the time it takes to animate the status from a current position to a next position is set at 200 ms, then F(t)=F(3+0.2)=0.32, or around 320 pixels. As described, the time it takes to animate the status for a current position to a new position is configurable by a user or administrator in some embodiments. Further, browser application continues to update the status in the progress bar until a new progress value is received. As such, at t=3.4, since a new progress value has not been received, browser application uses the previously constructed linear equation and determines another new location. Using F(t)=0.1t, F(3.4)=0.34 of the progress bar, or 340 pixels in the progress that has a width of 1000 pixels. Browser application can continually update the completion status indicator in the progress bar using the linear function in a linear manner until a new progress value is finally received. By updating the status within short time intervals (e.g., 200 milliseconds), the progression of the completion status indicator in the progress bar can appear smooth to the user.
- Subsequently, a new progress value 60% is received at t=3.4 s where the new time estimate until the page load is complete is 5 seconds according to table 800 in
FIG. 8 . Browser application can reconstruct a new linear function using two new points and F(t)=mt+b. One of ordinary skill would be able to determine the linear function upon identifying two known points. Therefore, in this example, -
- Using the newly constructed linear function, browser application can then determine the new endpoints at which to increment (animate) the completion status indicator after each time interval. Again, if the time interval is at 200 ms, then at t=3.6, F(3.6)=0.37 or 370 pixels. After another 200 ms, the completion status indicator is calculated to be at F(3.8)=0.39 or 390 pixels, so on and so forth.
- In some embodiments, in response to receiving the user request to load a new web page, browser application can perform an increase in the completion status indicator (e.g., to 10% or 20% of the progress bar) regardless of the actual status for the task. Including this feature can make the progress bar feel responsive to user interaction.
- Browser application in some embodiments can visually modify a UI element on the GUI or display a visual effect when a status of a feature changes (e.g., when the feature becomes enabled). For example, browser application can display a change in the manner a particular element (representing a feature) is displayed by modifying the color of the particular UI element. In another example, the browser application can display a visual appearance of a UI element representing the feature on the GUI to indicate the status change. To provide additional visibility that the status of the feature is changed, some embodiment can visually modify the UI element at the same time or immediately following the “rocket effect” described above. For example, some embodiments can modify a UI element (e.g., present a visual appearance or highlight a UI element) or provide a visual effect next to one end of a progress bar following the completion of the “rocket effect” such that the animation of the rocket effect i.e., where the progress status indicator advances from a current position to an end of a progress bar) would direct the user's attention to the modified UI element or visual effect.
-
FIG. 10 illustrates an example of a more detailed diagram 1000 of feature enabler 125 (e.g.,feature enabling subsystem 125 inFIG. 1 ) that can signal browser application to display a visual effect in response to a status change for a feature in accordance with some embodiments. In some embodiments,feature enabling subsystem 125 can include arocket effect tracker 1005 that determines when the “rocket effect” is triggered (i.e., when the triviality threshold is met), afeature status tracker 1010 that determines whether the status for a feature has changed, and anenabler determiner 1015 that determines whether to visually modify the UI element representing the feature to convey the change in status. - In
FIG. 10 ,rocket effect tracker 1005 can receive a signal fromrocket effect generator 120 inFIG. 1 that indicates whether a triviality threshold is met and therefore the “rocket effect” triggered. In some embodiments, upon receiving the signal indicating that the threshold is met,rocket effect tracker 1005 can send a signal to enabledeterminer 1015 that causes enabledeterminer 1015 to determine whether to visually modify the element. - In some embodiments, in response to receiving the signal from
rocket effect tracker 1005 indicating that the threshold is met, enabledeterminer 1015 can send a request to feature status tracker 710 to determine whether the status of the feature is changed. If the status of the feature is determined to have been modified, enabledeterminer 1015 can send a request to renderengine 115 to visually modify the UI element. - In some embodiments,
feature status tracker 1010 can determine that the status of the feature has been changed prior to the triviality threshold being met.Feature status tracker 1010 in some embodiments can send a signal to enabledeterminer 1015 indicating that the feature is enabled. Enabledeterminer 1015 can then send a signal to renderengine 135 to visually modify the UI element upon receiving a signal fromrocket effect tracker 1005 indicating that the triviality threshold has been met. - In some embodiments, render
engine 135 can visually modify the UI element immediately following the “rocket effect” (i.e., as the completion status indicator arrives at one end of the progress bar from a current position when the threshold is determined to have met). Modifying the UI element following the “rocket effect” can direct the user's attention to the modified UI element. Some embodiments display the visual cue at the same time as the “rocket effect” (i.e., the animation of the accelerated progress status indicator in the progress bar). -
FIG. 11 illustrates anexample process 1100 of some embodiments for visually modifying a UI element in response to a feature being enabled when the triviality threshold is met. As described, in some embodiments,feature enabler 125 ofFIG. 1 can determine whether the status of a feature is changed (e.g., a feature is ready to be enabled) when the threshold is met and thereby cause renderengine 135 to display a change in the visual state of a UI element representing the feature's status. One of ordinary skill will recognize thatprocess 1100 can be performed afterprocess 300 determines that the threshold has been met atblock 310 in some embodiments. - At
block 1102, browser application can receive an indication that a the triviality threshold has been reached. Atblock 1104, browser application can determine whether a status of a feature is changed or whether the feature is to be enabled. Some embodiments can determine whether a feature status is changed or whether the feature is to be enabled by inquiring a module that is responsible for rendering the feature when it is enabled. In some embodiments, browser application can determine that a feature status is changed when the feature becomes functional from being non-functional. For instance, a feature that allows readers to view a web page in a different manner is changed or enabled when the different view is populated and ready for viewing. - If browser application determines that the feature status is modified, at
block 1106, browser application can visually modify a state of a UI element representing the feature status subsequent to displaying the “rocket effect.” if web browser determines that the feature is not to be enabled,process 1100 ends. In some embodiments, afterprocess 1100 ends, browser application displays the “rocket effect” without visually modifying the UI element. -
FIG. 12 illustrates anexample progression 1200 of a completion status indicator for a task in aprogress bar 1205 and visually modifying aUI element 1210 representing a feature in accordance with some embodiments. At t=T0,progress bar 1205 displays a completion status indicator indicating a 0% completion status for a task.UI element 1210 representing a status for a feature can be dotted as shown inFIG. 12 , indicating that the feature is currently disabled. At t=T1, the completion status indicator shows that the status of the task is approximately 20% complete. As described, in some embodiments the completion status indicator displayed inprogress bar 1205 can be an underreported status of the task. UI element 910 remains disabled at this stage. - At t=Tthresh, progression of the completion status indicator accelerates toward one end of the progress bar to indicate completion of the task. In some embodiments, browser application can determine whether the feature is enabled when the threshold is met. In this instance, the feature is ready to be enabled when the threshold is met. Before the completion status indicator reaches the end of the progress bar,
UI element 1210 remains disabled in this example. - in some embodiments,
UI element 1210 can be enabled when browser application determines that the threshold is met. In this instance, the visual cue indicating the status change for the feature (represented by UI element 1210) is enabled when the progression of the completion status indicator reaches the end of the progress bar. Changing a visual state ofUI element 1210 as the progression of the completion status indicator reaches the end of the progress bar allows the user's attention to be directed to theUI element 1210. -
FIG. 13 illustrates an example of a more detailed diagram 1300 ofsecondary progress generator 130 and renderengine 135 for rendering a secondary progress indicator in addition to a status of a task in a progress bar according to some embodiments. In some embodiments, a browser application can provide a progress bar that displays a secondary progress indicator along with the completion status indicator for the task. The secondary progress indicator can convey additional information about a task including a speed at which the task is currently being performed.Secondary progress generator 130 can determine a current speed at which a task is being performed and a type of animation corresponding to the determined speed, while renderengine 135 can display the type of animation corresponding to the determined speed. - In some embodiments, secondary progress generator can include a
speed determiner 1305 that can determine a current speed at which the task is being performed, and atranslator 1310 that can determine a type of animation associated with a speed. Whenspeed determiner 1305 determines a current speed at which a task is being performed (e.g., a download rate, a transfer rate), the current speed can be sent totranslator 1310,Translator 1310 can then determine the type of animation associated with the current speed.Secondary progress generator 130 can then send the type of animation to renderengine 135 for display to the user. -
FIG. 14 illustrates anexample process 1400 of some embodiments for displaying a secondary progress indicator along with the completion status indicator for the task in a progress bar. In some embodiments, the secondary progress indicator can convey additional information about the task undergoing completion, such as a current speed at which the task is being performed. Atblock 1402,process 1400 can display a progress bar for a task being performed. Browser application can display the progress bar for a web page loading in some embodiments. Atblock 1404,process 1400 can receive a progress value for the task. As described, browser application can receive a progress value for loading a web page from a render engine in some embodiments. - At
block 1406, browser application can display a completion status indicator for the task in the progress bar based on the progress value. As mentioned, in some embodiments, the completion status indicator displayed in the progress bar can underreport the completion status of the task. Atblock 1408,process 1400 can determine a speed at which the task is being performed. In some embodiments, browser application (e.g.,speed determiner 1305 inFIG. 13 ) can determine a speed at which the page is loading at the particular moment, based at least in part on the network connection, the transfer rate, location of the web server, number and size of objects to be loaded for the web page, etc. - At
block 1410,process 1400 can determine a type of animation to be used to represent the speed determined atblock 1408. In some embodiments, browser application (e.g.,translator 1310 inFIG. 13 ) can determine a type of animation from a list of different types of animation including a spinning wheel animation where the wheel spins faster when the determined speed is faster, a wave frequency animation where the waves displayed in a progress bar is at a high frequency when the determined speed is faster, etc. In some embodiments, the user can select the different types of animation to be used to represent the speed. - At
block 1412,process 1400 can determine an animation for the type of animation associated with the determined speed. In some embodiments, browser application (e.g., translator 1310) can map the determined speed to a corresponding animation in the type of animation. For instance, browser application can determine that a level three speed corresponds to a wave animation that is medium frequency using a lookup table. Atblock 1414,process 1400 can display the associated animation concurrently with the completion status indicator in the progress bar. In some embodiments, browser application can cause renderengine 135 inFIG. 1 to display the associated animation simultaneously along with progression of the completion status indicator in the progress bar. -
FIG. 15 illustrates anotherexample progression 1500 for displaying a secondary progress indicator along with a completion status indicator for a task in a progress bar according to some embodiments. In some embodiments, a browser application can display multiple indicators in a progress bar to convey different types of information to the user. As shown inFIG. 15 at t=T1, progress bar displays the completion status indicator to be at approximately ¼ of the progress bar, along with a secondary progress indication represented by the density of the completion status indicator. In this case, the density of the completion status indicator is fairly low (as the dots are spaced sparsely), indicating that the speed at which the task is being performed is fairly slow. - At t=T2, progress bar displays a completion status indicator to be at approximately ⅓ of the progress bar, along with a secondary progress indication with high density. At t=T3, progress bar displays a completion status indicator to be at around ½ of the progress bar, along with a secondary progress indication at medium density. The lessened density indicates that the speed at which the task is being performed has decreased from t=T2. In some embodiments, textual data can accompany the density display to convey the exact speed at which the task is being performed. In some instances, the secondary progress indicator can appear only if the user's cursor hovers over the progress bar or the progress bar indicator, indicating that the user would like to have additional information about the task. Further, browser application can display the secondary progress indicator in the portion of the progress bar that is not occupied by the completion status indicator such as not to obstruct the web address to the viewer.
-
FIG. 16 illustrates anexample progression 1600 for displaying another type of secondary progress indicator along with a completion status indicator of a task in a progress bar according to some embodiments. In some embodiments, a browser application can display another type of indicator, such as ripples emanating from the edge of the completion status indicator in a progress bar to convey additional information to the user. At t=T1, progress bar displays a completion status around ⅖ of the progress bar, along with a secondary progress indication represented by ripples emanating from the edge of the completion status indicator/bar that is inching forward. In this case, the frequency of the ripples are high, indicating that the speed at which the web page is being loaded is fast. - At t=T2, progress bar displays the completion status indicator to occupy around ½ of the progress bar, along with a secondary progress indication displaying medium frequency ripples. In this case, the speed at which the web page is being loaded is currently at a higher speed than the speed at t=T1. At t=T3, progress bar displays a completion status indicator to occupy around ⅔ of the progress bar, along with a secondary progress indication displaying low frequency ripples. The lowered frequency indicates that the speed at which the task is being performed has decreased from t=T2. In some embodiments, additional animation effects can be shown in the progress bar. For example, browser application can display another type of animation in addition to secondary progress indicator simultaneously in order to convey a speed at which a subtask (e.g., loading a particular object for the web page) is being performed.
-
FIG. 17 illustrates anotherexample progression 1700 for displaying a type of secondary progress indicator along with a completion status indicator for a task in a progress bar according to some embodiments. In some embodiments, a browser application can display another type of indicator, such as a spinning wheel, in a progress bar to convey a current speed at which a task is being performed to the user. At t=T1, progress bar displays a completion status indicator to be around ⅖ of the progress bar, along with a secondary progress indication represented by a spinning wheel in the progress bar. In this case, the speed at which the wheel is spinning is fast (indicated by the three arrows), indicating that the rate at which the web page is being loaded at the moment is high. - At t=T2, progress bar displays a completion status indicator to occupy around ½ of the progress bar, along with a secondary progress indication of a slowly spinning wheel. In this case, the speed at which the web page is being loaded is currently at a higher speed than the speed at t=T1. At t=T3, progress bar displays a completion status indicator to occupy around ⅔ of the progress bar, along with a secondary progress indication of a wheel that is spinning faster than at T=T2. The double arrows indicate that the speed at which the task is being performed has increased from t=T2. Different types of animation can be used in different embodiments. In some embodiments, the types of animation is configurable by the user and/or the system administrator.
- Many of the above-described features and applications can be implemented as software processes that are specified as a set of program instructions encoded on a computer readable storage medium. When these program instructions are executed by one or more processing units, the program instructions cause the processing unit(s) to perform the actions indicated in the instructions. Examples of computer readable storage media include CD-ROMs, flash drives, RAM chips, hard drives, EPROMs, etc. The computer readable storage media does not include carrier waves and electronic signals passing wirelessly or over wired connections. “Software” refers generally to sequences of instructions that, when executed by processing unit(s) cause one or more computer systems to perform various operations, thus defining one or more specific machine implementations that execute and perform the operations of the software programs.
-
FIG. 18 illustrates acomputer system 1800 according to an embodiment of the present invention.Progress bar system 100 can be implemented within a computer system such ascomputer system 1800 shown here.Computer system 1800 can be implemented as any of various computing devices, including, e.g., a desktop or laptop computer, tablet computer, smart phone, personal data assistant (FDA), or any other type of computing device, not limited to any particular form factor.Computer system 1800 can include processing unit(s) 1805,storage subsystem 1810,input devices 1820,display 1825,network interface 1835, andbus 1840. - Processing unit(s) 1805 can include a single processor, which can have one or more cores, or multiple processors. In some embodiments, processing unit(s) 1805 can include a general-purpose primary processor as well as one or more special-purpose co-processors such as graphics processors, digital signal processors, or the like. In some embodiments, some or all processing
units 1805 can be implemented using customized circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself. In other embodiments, processing unit(s) 1805 can execute instructions stored instorage subsystem 1810. -
Storage subsystem 1810 can include various memory units such as a system memory, a read-only memory (ROM), and a permanent storage device. The ROM can store static data and instructions that are needed by processing unit(s) 1805 and other modules ofelectronic device 1800. The permanent storage device can be a read-and-write memory device. This permanent storage device can be a non-volatile memory unit that stores instructions and data even whencomputer system 1800 is powered down. Some embodiments of the invention can use a mass-storage device (such as a magnetic or optical disk or flash memory) as a permanent storage device. Other embodiments can use a removable storage device (e.g., a floppy disk, a flash drive) as a permanent storage device. The system memory can be a read-and-write memory device or a volatile read-and-write memory, such as dynamic random access memory. The system memory can store some or all of the instructions and data that the processor needs at runtime. -
Storage subsystem 1810 can include any combination of computer readable storage media including semiconductor memory chips of various types (DRAM, SRAM, SDRAM, flash memory, programmable read-only memory) and so on. Magnetic and/or optical disks can also be used. In some embodiments,storage subsystem 1810 can include removable storage media that can be readable and/or writeable; examples of such media include compact disc (CD), read-only digital versatile disc (e.g., DVD-ROM, dual-layer DVD-ROM), read-only and recordable Blue-Ray® disks, ultra density optical disks, flash memory cards (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic “floppy” disks, and so on. The computer readable storage media do not include carrier waves and transitory electronic signals passing wirelessly or over wired connections. - In some embodiments,
storage subsystem 1810 can store one or more software programs to be executed by processing unit(s) 1805, such as a browser application 1845. As mentioned, “software” can refer to sequences of instructions that, when executed by processing unit(s) 1805cause computer system 1800 to perform various operations, thus defining one or more specific machine implementations that execute and perform the operations of the software programs. The instructions can be stored as firmware residing in read-only memory and/or applications stored in magnetic storage that can be read into memory for processing by a processor. Software can be implemented as a single program or a collection of separate programs or program modules that interact as desired. Programs and/or data can be stored in non-volatile storage and copied in whole or in part to volatile working memory during program execution. Fromstorage subsystem 1810, processing unit(s) 1805 can retrieve program instructions to execute and data to process in order to execute various operations described herein. - A user interface can be provided by one or more
user input devices 1820,display device 1825, and/or and one or more other user output devices (not shown).Input devices 1820 can include any device via which a user can provide signals tocomputing system 1800;computing system 1800 can interpret the signals as indicative of particular user requests or information. In various embodiments,input devices 1820 can include any or all of a keyboard touch pad, touch screen, mouse or other pointing device, scroll wheel, click wheel, dial, button, switch, keypad, microphone, and so on. -
Display 1825 can display images generated byelectronic device 1800 and can include various image generation technologies, e.g., a cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED) including organic light-emitting diodes (OLED), projection system, or the like, together with supporting electronics (e.g., digital-to-analog or analog-to-digital converters, signal processors, or the like). Some embodiments can include a device such as a touchscreen that function as both input and output device. In some embodiments, other user output devices can be provided in addition to or instead ofdisplay 1825. Examples include indicator lights, speakers, tactile “display” devices, printers, and so on. - In some embodiments,
display 1825 can provide a graphical user interface, in which visible image elements in certain areas ofdisplay 1825 are defined as active elements or control elements that the user selects usinguser input devices 1820. For example, the user can manipulate a user input device to position an on-screen cursor or pointer over the control element, then click a button to indicate the selection. Alternatively, the user can touch the control element (e.g., with a finger or stylus) on a touchscreen device. In some embodiments, the user can speak one or more words associated with the control element (the word can be, e.g., a label on the element or a function associated with the element). In some embodiments, user gestures on a touch-sensitive device can be recognized and interpreted as input commands; these gestures can be but need not be associated with any particular array indisplay 1825. Other user interfaces can also be implemented. -
Network interface 1835 can provide voice and/or data communication capability forelectronic device 1800. In some embodiments,network interface 1835 can include radio frequency (RF) transceiver components for accessing wireless voice and/or data networks (e.g., using cellular telephone technology, advanced data network technology such as 3G, 4G or EDGE, WiFi (IEEE 802.11 family standards, or other mobile communication technologies, or any combination thereof), GPS receiver components, and/or other components. In some embodiments,network interface 1835 can provide wired network connectivity (e.g., Ethernet) in addition to or instead of a wireless interface.Network interface 1835 can be implemented using a combination of hardware (e.g., antennas, modulators/demodulators, encoders/decoders, and other analog and/or digital signal processing circuits) and software components. -
Bus 1840 can include various system, peripheral, and chipset buses that communicatively connect the numerous internal devices ofelectronic device 1800. For example,bus 1840 can communicatively couple processing unit(s) 1805 withstorage subsystem 1810.Bus 1840 also connects to inputdevices 1820 anddisplay 1825,Bus 1840 also coupleselectronic device 1800 to a network throughnetwork interface 1835. In this manner,electronic device 1800 can be a part of a network of multiple computer systems (e.g., a local area network (LAN), a wide area network (WAN), an Intranet, or a network of networks, such as the Internet. Any or all components ofelectronic device 1800 can be used in conjunction with the invention. - Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a computer readable storage medium. Many of the features described in this specification can be implemented as processes that are specified as a set of program instructions encoded on a computer readable storage medium. When these program instructions are executed by one or more processing units, they cause the processing unit(s) to perform various operation indicated in the program instructions. Examples of program instructions or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
- Through suitable programming, processing unit(s) 1805 can provide various functionality for
electronic device 1800. For example, processing unit(s) 1805 can execute browser application 1845. Browser application 1845 can provide various functionality such as the ability to retrieve and display content items from local or remote sources (e.g., using HTTP or other data transfer protocols to retrieve and display web pages) in rendering a web page and the ability to receive and interpret user input pertaining to the content items, such as selection of a hyperlink, selection of an item to view, submission of data by the user in response to a particular content item (e.g., filling out a form on an interactive web page), and so on. In some embodiments, browser application 1845 can provide a progress bar that displays a completion status indicator representing a completion status of a task such as loading a web page. Various additional information can be display within the progress bar e.g., via animation effects. For example, a speed at which a web page is being loaded at a particular moment in time can be presented bybrowser application 145 through animating ripples with varying frequencies. - It will be appreciated that
computer system 1800 is illustrative and that variations and modifications are possible.Computer system 1800 can have other capabilities not specifically described here (e.g., mobile phone, global positioning system (GPS), power management, one or more cameras, various connection ports for connecting external devices or accessories, etc.). Further, whilecomputer system 1800 is described with reference to particular blocks, it is to be understood that these blocks are defined for convenience of description and are not intended to imply a particular physical arrangement of component parts. Further, the blocks need not correspond to physically distinct components. Blocks can be configured to perform various operations, e.g., by programming a processor or providing appropriate control circuitry, and various blocks might or might not be reconfigurable depending on how the initial configuration is obtained. Embodiments of the present invention can be realized in a variety of apparatus including electronic devices implemented using any combination of circuitry and software. - Different approaches can be implemented in various environments in accordance with the described embodiments.
FIG. 19 illustrates an example of anenvironment 1900 that can implement various aspects of the present invention. Although a Web-based environment is used for purposes of explanation, one of ordinary skill would recognize that different environments can be used to implement various embodiments of the invention. -
Environment 1900 includes anelectronic client device 1902, aWeb server 1906, and at least oneapplication server 1908.Electronic client device 1902 can include any appropriate electronic device operable to send and receive requests, messages, and/or data over a network and convey information to a user of the device. Examples of such client devices include personal computers, mobile phones, laptop computers, personal data assistances and the like,Electronic client device 1902 can communicate with aWeb server 1906 through at least one network whereWeb server 1906 can receive requests fromelectronic client device 1902 and serve content in response to communications over the network. - One of ordinary skill would recognize that there can be several application servers, layers or other elements, processes or components, which can be linked or otherwise configured and can interact to perform tasks such as Obtaining data from a data store (not shown here). As used herein, the term “data store” can refer to any device or combination of devices capable of storing, accessing, and retrieving data, such as one or more data servers, databases, data storage devices, and/or data storage media. Application server(s) 1908 can include hardware and/or software to execute aspects of one or more applications for the client device and is capable of generating content such as text, graphics, audio and/or video to be sent to the user through
Web server 1906 in the form of HTML, XML, or any other appropriate structured language. The handling of all requests and responses, as well as the delivery of content betweenclient device 1902 andapplication server 1908, can be handled byWeb server 1906. It should be understood that Web and application servers are not required and are merely examples components ofenvironment 1900. - In some embodiments,
Web server 1906 can run any of a variety of server or mid-tier applications, including HTTP servers, FTP servers, CGI servers, data servers, Java servers and business application servers. Web server(s) 1906 can also be capable of executing programs or scripts in response to requests fromclient device 1902, such as by executing one or more Web applications that can be implemented as one or more scripts or programs written in any programming language, such as Java®, C, C# or C++ or any scripting language, such as Perk Python or TCL, well as combinations thereof. - Each of the
client devices 1902 can include adisplay 1910 where messages and/or data received over a network can be locally rendered and displayed to the user. While browser application can cause a local render engine to display content (e.g., a web browser including content and a progress bar) to the user, processing can be performed “in the cloud” 1904 viaWeb server 1906 and one ormore application servers 1908 in some embodiments. For example, the data transfer rate, the completion status of a task, the underreporting of a progress status of a task, the speed at which the web page is being loaded can be determined “in the cloud” 1904.Environment 1900 can be a distributed computing system using several computer systems and components interconnected through various communication links (e.g., computer networks). - While the invention has been described with respect to specific embodiments, one skilled in the art will recognize that numerous modifications are possible: different ways to display a secondary progress indicator for progress bar, different types of animation for conveying the “rocket effect,” different ways to smoothen the progression of a completion status in the progress bar, different features can be enabled (aside from Safari reader button), etc. Thus, although the invention has been described with respect to specific embodiments, it will be appreciated that the invention is intended to cover all modifications and equivalents within the scope of the following claims.
Claims (20)
1. A method comprising:
displaying, by a processor, a progress bar for a task being performed;
receiving a first progress value indicative of a completion status of the task;
computing, based on the first progress value, a second progress value that is less than the first progress value; and
displaying, based on the second progress value, a completion status indicator in the progress bar.
2. The method of claim 1 , wherein the task is a loading of a web page in a web browser, wherein the completion status of the task indicates a percentage at which the loading of the web page is complete.
3. The method of claim 1 further comprising:
receiving a third progress value;
computing, based on the third progress value, a fourth progress value that is less than the third progress value; and
displaying, based on the third progress value, an updated completion status indicator of the task in the progress bar.
4. The method of claim 1 , wherein the first and second progress values are received from a rendering engine at a predetermined interval.
5. The method of claim 1 , wherein the second progress value represents a current location in the progress bar and the fourth progress value represents a new location in the progress bar, wherein the completion status indicator for the task increments from the current location to the new location using an animation effect.
6. The method of claim 1 , wherein the completion status indicator underreports the completion status of the task.
7. The method of claim 1 , wherein computing the second progress value comprises:
determining an estimated amount of time until the task is complete, wherein the second progress value is computed based on the estimated amount of time.
8. The method of claim 7 , wherein the estimated amount of time is determined by mapping the first progress value to a time interval in a lookup table.
9. A method comprising:
displaying, by a computing device, a progress bar for a task being performed;
receiving a progress value indicative of a completion status of the task, the progress value corresponding to a current location for a completion status indicator in the progress bar, the completion status indicator representing the completion status of the task;
computing, based on the progress value, a new location in the progress bar; and
displaying an animated progression of the completion status indicator in the progress bar from the current location to the new location, wherein the progression of the completion status indicator underreports the completion status of the task.
10. The method of claim 9 , wherein computing the new location in the progress bar comprises:
determining an estimated completion time based on the first progress value; and
constructing a linear function using the estimated completion time, wherein the new location is computed using the linear function.
11. The method of claim 10 , wherein the new location is further determined based on a predetermined time interval at which the completion status indicator is updated in the progress bar.
12. The method of claim 10 , wherein the estimated completion time is determined by mapping the progress value to a corresponding estimated completion time for the task in a lookup table, wherein the corresponding estimated completion time is an over-estimate of an amount of time required for the task to complete.
13. The method of claim 9 , wherein completion status indicator for the task increments from a current location to the next location using an animation effect.
14. The method of claim 9 , wherein the next location is computed based at least in part on a time interval allocated for an animation between a current location and the new location in the progress bar.
15. A method comprising:
displaying, by a processor, a progress bar that visually displays a completion status indicator for a task being performed;
receiving a progress value indicative of a completion status of the task; and
causing, based on the progress value, the progress bar to display the completion status indicator that underreports the completion status of the task.
16. The method of claim 15 , wherein the completion status indicator corresponds to a current location in the progress bar, the method further comprising:
determining, based on the progress value, an estimated completion time;
constructing a linear function using the estimated completion time, wherein the current location in the progress bar is determined using the linear function.
17. The method of claim 16 further comprising:
receiving another progress value; and
constructing a new linear function based at least in part on the other progress value.
18. The method of claim 17 further comprising:
determining a new estimated completion time based on the other progress value, wherein the new linear function is constructed using the new estimated completion time;
determining, based at least in part on a predetermined time interval, a new location in the progress bar using the new linear function; and
animating the completion status indicator to the new location within the predetermined time interval.
19. The method of claim 18 , wherein the predetermined time interval is configurable by at least one of a user or a system administrator.
20. The method of claim 15 , further comprising:
determining a triviality threshold for the task;
determining whether the triviality threshold is met; and
displaying a visual cue that indicates a completion of the progress bar when the triviality threshold is met.
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/615,025 US20130246962A1 (en) | 2012-03-09 | 2012-09-13 | Dynamic update of a completion status indicator |
EP20130158217 EP2639716A3 (en) | 2012-03-09 | 2013-03-07 | Progress bar |
TW102108323A TWI515637B (en) | 2012-03-09 | 2013-03-08 | Progress bar |
AU2013201390A AU2013201390B2 (en) | 2012-03-09 | 2013-03-08 | Progress bar |
CN201310206711.XA CN103365761B (en) | 2012-03-09 | 2013-03-08 | Progress bar |
KR1020130025869A KR101562098B1 (en) | 2012-03-09 | 2013-03-11 | Progress bar |
JP2013048464A JP5993324B2 (en) | 2012-03-09 | 2013-03-11 | Progress bar |
JP2016161384A JP6150930B2 (en) | 2012-03-09 | 2016-08-19 | Computing device, method, program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261609238P | 2012-03-09 | 2012-03-09 | |
US13/615,025 US20130246962A1 (en) | 2012-03-09 | 2012-09-13 | Dynamic update of a completion status indicator |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130246962A1 true US20130246962A1 (en) | 2013-09-19 |
Family
ID=49113702
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/615,025 Abandoned US20130246962A1 (en) | 2012-03-09 | 2012-09-13 | Dynamic update of a completion status indicator |
US13/615,140 Abandoned US20130235044A1 (en) | 2012-03-09 | 2012-09-13 | Multi-purpose progress bar |
US13/614,762 Active 2033-03-16 US9104296B2 (en) | 2012-03-09 | 2012-09-13 | Rocket effect in a progress bar |
US13/615,120 Active 2033-05-17 US9292177B2 (en) | 2012-03-09 | 2012-09-13 | Progress bar with feature availability indicator |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/615,140 Abandoned US20130235044A1 (en) | 2012-03-09 | 2012-09-13 | Multi-purpose progress bar |
US13/614,762 Active 2033-03-16 US9104296B2 (en) | 2012-03-09 | 2012-09-13 | Rocket effect in a progress bar |
US13/615,120 Active 2033-05-17 US9292177B2 (en) | 2012-03-09 | 2012-09-13 | Progress bar with feature availability indicator |
Country Status (6)
Country | Link |
---|---|
US (4) | US20130246962A1 (en) |
JP (2) | JP5993324B2 (en) |
KR (1) | KR101562098B1 (en) |
CN (1) | CN103365761B (en) |
AU (1) | AU2013201390B2 (en) |
TW (1) | TWI515637B (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130212514A1 (en) * | 2010-10-28 | 2013-08-15 | Zte Corporation | Method and Device for Displaying Start-Up Interface of Multimedia Terminal |
US20140053096A1 (en) * | 2012-08-15 | 2014-02-20 | Conductor, Inc. | User interface for task management |
US9104296B2 (en) | 2012-03-09 | 2015-08-11 | Apple Inc. | Rocket effect in a progress bar |
CN104951386A (en) * | 2014-03-28 | 2015-09-30 | 腾讯科技(深圳)有限公司 | Method and device for displaying content loading progress |
WO2016039717A1 (en) * | 2014-09-08 | 2016-03-17 | Hewlett Packard Enterprise Development Lp | User interface components load time visualization |
US9396088B2 (en) * | 2013-03-08 | 2016-07-19 | Sap Se | Computer execution progress indicator |
US20170353603A1 (en) * | 2016-06-03 | 2017-12-07 | Facebook, Inc. | Recommending applications using social networking information |
US20180325441A1 (en) * | 2017-05-09 | 2018-11-15 | International Business Machines Corporation | Cognitive progress indicator |
CN110457614A (en) * | 2019-07-03 | 2019-11-15 | 南方电网数字电网研究院有限公司 | Reduce data increment update method, device and the computer equipment of Data Concurrent amount |
US10921887B2 (en) * | 2019-06-14 | 2021-02-16 | International Business Machines Corporation | Cognitive state aware accelerated activity completion and amelioration |
US20220044812A1 (en) * | 2019-02-20 | 2022-02-10 | Roche Molecular Systems, Inc. | Automated generation of structured patient data record |
Families Citing this family (85)
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 |
CN103513856B (en) * | 2012-06-28 | 2017-08-25 | 腾讯科技(深圳)有限公司 | The method and apparatus of refresh page |
US20140331166A1 (en) * | 2013-05-06 | 2014-11-06 | Samsung Electronics Co., Ltd. | Customize smartphone's system-wide progress bar with user-specified content |
CN104244100B (en) * | 2013-06-13 | 2018-09-11 | 腾讯科技(深圳)有限公司 | progress bar control method and device |
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 |
US10496233B2 (en) * | 2013-10-23 | 2019-12-03 | Micro Focus Llc | Tracking a status of a process |
CN104572771B (en) * | 2013-10-25 | 2020-07-28 | 腾讯科技(深圳)有限公司 | Processing state display method and device |
US9335905B1 (en) * | 2013-12-09 | 2016-05-10 | Google Inc. | Content selection feedback |
CN104778167B (en) * | 2014-01-09 | 2019-05-03 | 中兴通讯股份有限公司 | A kind of webpage load progress control method, device and terminal |
CN104778055B (en) * | 2014-01-15 | 2020-11-06 | 腾讯科技(深圳)有限公司 | Method and device for displaying progress bar |
WO2015139083A1 (en) * | 2014-03-19 | 2015-09-24 | Digital Ashes Pty Ltd | System and method for network browsing |
CN103914303A (en) * | 2014-04-10 | 2014-07-09 | 福建伊时代信息科技股份有限公司 | Method and device for presenting progress bars |
CN103995771B (en) * | 2014-05-30 | 2017-12-01 | 北京安兔兔科技有限公司 | Task Progress methods of exhibiting and system |
US10795547B1 (en) * | 2014-06-11 | 2020-10-06 | Amazon Technologies, Inc. | User-visible touch event queuing |
KR101748680B1 (en) * | 2014-08-08 | 2017-06-20 | 네이버 주식회사 | Terminal apparatus and method for displaying web page by terminal apparatus, and web server and method for providing web page by web server |
DE102014013964A1 (en) * | 2014-09-19 | 2016-03-24 | Abb Technology Ag | Device for managing and configuring field devices of an automation system |
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 (en) * | 2014-11-11 | 2018-07-31 | 北京搜狗科技发展有限公司 | A kind of progress bar shows method and device |
USD770497S1 (en) * | 2014-12-17 | 2016-11-01 | Go Daddy Operating Company, LLC | Display screen with graphical user interface |
CN104572408B (en) * | 2014-12-29 | 2017-06-09 | 广东欧珀移动通信有限公司 | Progress bar display processing method and device |
CN107113281A (en) * | 2014-12-31 | 2017-08-29 | 华为技术有限公司 | Content shared method, terminal, server and system |
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 (en) * | 2015-01-23 | 2018-05-29 | 华为技术有限公司 | The method and apparatus presented for the visualization that data preload |
JPWO2016158801A1 (en) * | 2015-03-31 | 2018-01-25 | 三菱重工業株式会社 | Work planning system, work planning method, decision support system, computer program, and recording medium |
CN104821963B (en) * | 2015-04-30 | 2019-02-19 | 华为技术有限公司 | Recommendation information methods of exhibiting and device |
DE102015209185A1 (en) * | 2015-05-20 | 2016-11-24 | Siemens Schweiz Ag | Method for determining the transmission time or the remaining transmission time of data to a bus device of a bus-oriented programmable electrical installation |
CN105045464A (en) * | 2015-06-29 | 2015-11-11 | 努比亚技术有限公司 | Method and device for prompting of form filling progress |
CN105022639A (en) * | 2015-08-14 | 2015-11-04 | 环胜电子(深圳)有限公司 | Execution method and device for process management universal program |
CN105117008B (en) * | 2015-08-20 | 2018-07-20 | 小米科技有限责任公司 | Guiding method of operating and device, electronic equipment |
CN105159538A (en) * | 2015-09-09 | 2015-12-16 | 广州市久邦数码科技有限公司 | Display window data loading method and display window data loading system |
US10289281B2 (en) | 2015-11-30 | 2019-05-14 | International Business Machines Corporation | Progress bar updated based on crowd sourced statistics |
CN105491129A (en) * | 2015-12-07 | 2016-04-13 | 天津车之家科技有限公司 | Page loading progress display method and device and mobile terminal |
CN105657516A (en) * | 2016-01-04 | 2016-06-08 | 浪潮软件集团有限公司 | Application method and application device of broadcast control bar |
CN107092452A (en) | 2016-02-17 | 2017-08-25 | 阿里巴巴集团控股有限公司 | A kind of information processing method and device of displaying business completion status |
US10339367B2 (en) * | 2016-03-29 | 2019-07-02 | Microsoft Technology Licensing, Llc | Recognizing a face and providing feedback on the face-recognition process |
CN106649049A (en) * | 2016-05-09 | 2017-05-10 | 海尔优家智能科技(北京)有限公司 | Data downloading progress display method and device |
US10921952B2 (en) * | 2016-05-11 | 2021-02-16 | Sap Se | Dynamic button with visual indication of application action result |
CN106874024A (en) * | 2016-07-22 | 2017-06-20 | 阿里巴巴集团控股有限公司 | Load display methods, device and the electronic equipment of object |
CN106383704B (en) * | 2016-08-31 | 2021-01-15 | 腾讯科技(深圳)有限公司 | Progress bar data processing method and device |
RU2640329C1 (en) * | 2016-09-28 | 2017-12-27 | Общество с ограниченной ответственностью "ПИРФ" (ООО "ПИРФ") | Method, system and machine-readable media of data for controlling user device by means of context toolbar |
CN106502673B (en) * | 2016-10-21 | 2019-08-06 | 中国民生银行股份有限公司 | The display methods and device of service condition |
CN108228429A (en) * | 2016-12-15 | 2018-06-29 | 北京优朋普乐科技有限公司 | A kind of method and terminal for showing file download status information |
CN106658201B (en) * | 2017-01-13 | 2019-08-06 | 北京元心科技有限公司 | Method and device for optimizing progress bar of player |
CN107122448A (en) * | 2017-04-25 | 2017-09-01 | 广州市诚毅科技软件开发有限公司 | A kind of intelligent display method and device of the estimated response time of front end page request |
US10721152B2 (en) * | 2017-04-27 | 2020-07-21 | Salesforce.Com, Inc. | Automated analysis and recommendations for highly performant single page web applications |
US10845955B2 (en) | 2017-05-15 | 2020-11-24 | Apple Inc. | Displaying a scrollable list of affordances associated with physical activities |
US11048995B2 (en) | 2017-05-16 | 2021-06-29 | Google Llc | Delayed responses by computational assistant |
CN107291852B (en) * | 2017-06-07 | 2021-01-22 | 北京金山安全软件有限公司 | Progress bar display optimization method and device and electronic equipment |
CN107291356B (en) * | 2017-08-03 | 2020-05-01 | 北京达佳互联信息技术有限公司 | File transmission display control method and device and corresponding terminal |
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 (en) * | 2017-09-30 | 2020-12-18 | 北京金山安全软件有限公司 | Animation playing method and device |
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 (en) * | 2017-12-05 | 2023-02-10 | 阿里巴巴集团控股有限公司 | Method and device for linkage of commodity data information of Internet platform |
CN108491230A (en) * | 2018-01-24 | 2018-09-04 | 阿里巴巴集团控股有限公司 | Cartoon display method and device, client |
DK180246B1 (en) | 2018-03-12 | 2020-09-11 | 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 (en) * | 2018-07-25 | 2021-09-07 | 武汉斗鱼网络科技有限公司 | Counting method and device for countdown animation position |
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 (en) * | 2019-04-01 | 2022-01-11 | 宁波奥克斯电气股份有限公司 | Distribution network progress display method and device and air conditioner |
CN111798071A (en) * | 2019-04-07 | 2020-10-20 | 南京杰咖斯信息技术有限公司 | Task management method and system |
CN110083407B (en) * | 2019-04-16 | 2023-08-08 | 北京字节跳动网络技术有限公司 | Method and device for realizing step bar in applet, electronic equipment and storage medium |
KR20210074932A (en) * | 2019-12-12 | 2021-06-22 | 삼성전자주식회사 | Display apparatus and the control method thereof |
CN110996155B (en) * | 2019-12-12 | 2021-05-25 | 北京字节跳动网络技术有限公司 | Video playing page display method and device, electronic equipment and computer readable medium |
CN111338741B (en) * | 2020-03-27 | 2023-12-12 | 北京达佳互联信息技术有限公司 | Task progress display method and device and storage medium |
CN111444006B (en) * | 2020-03-31 | 2023-11-21 | 联想(北京)有限公司 | Processing method and electronic equipment |
CN111506382B (en) * | 2020-04-26 | 2022-11-04 | 网易(杭州)网络有限公司 | Progress bar curve determination method and device, storage medium and electronic equipment |
CN111857928A (en) * | 2020-07-23 | 2020-10-30 | 北京达佳互联信息技术有限公司 | Page task access method, device and system, electronic equipment and storage medium |
JP7558401B2 (en) | 2020-09-22 | 2024-09-30 | グーグル エルエルシー | User feedback guides fingerprint sensing |
CN112486783B (en) * | 2020-11-25 | 2022-09-27 | 建信金融科技有限责任公司 | Progress bar display method and device |
CN112435308B (en) * | 2020-11-30 | 2023-11-14 | 成都新潮传媒集团有限公司 | Drawing method and device of annular progress bar and storage medium |
CN112783907B (en) * | 2020-12-31 | 2024-06-07 | 深圳云天励飞技术股份有限公司 | Data updating method, application end data updating method and related products |
EP4374286A4 (en) * | 2021-07-19 | 2024-11-06 | Xero Ltd | Systems and methods for editing electronic documents |
CN114071238A (en) * | 2021-11-12 | 2022-02-18 | 北京百度网讯科技有限公司 | Method, apparatus, device, medium and product for generating video progress bar |
US11914668B2 (en) * | 2022-01-04 | 2024-02-27 | Truist Bank | Loading animation with shape that grows from within from central point |
CN115086363B (en) * | 2022-05-23 | 2024-02-13 | 北京声智科技有限公司 | Early warning method and device for learning task, electronic equipment and storage medium |
CN117519863B (en) * | 2023-09-19 | 2024-09-20 | 深圳三地一芯电子股份有限公司 | Progress bar control method, device, equipment and storage medium |
CN116991530B (en) * | 2023-09-25 | 2023-12-01 | 成都数联云算科技有限公司 | Implementation method for loading indicator with staggered shrinkage pattern |
CN118094045B (en) * | 2024-02-26 | 2024-09-06 | 浙江睿潮数字技术有限公司 | Webpage progress feedback method and system |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623590A (en) * | 1989-08-07 | 1997-04-22 | Lucent Technologies Inc. | Dynamic graphics arrangement for displaying spatial-time-series data |
US6275987B1 (en) * | 1998-11-05 | 2001-08-14 | International Business Machines Corporation | Adaptive, predictive progress indicator |
US20030163478A1 (en) * | 2002-02-27 | 2003-08-28 | International Business Machines Corporation | Apparatus and method for generating graphic presentation of estimated time of completion of a server request |
US20040078453A1 (en) * | 2002-10-17 | 2004-04-22 | International Business Machines Corporation | Method, apparatus, and computer program product to determine the progress of Web page downloads |
US20050222965A1 (en) * | 2004-03-31 | 2005-10-06 | Microsoft Corporation | Query progress estimation |
US20090083859A1 (en) * | 2007-09-21 | 2009-03-26 | Fuji Xerox Co., Ltd. | Progress indicators to encourage more secure behaviors |
US20100083159A1 (en) * | 2008-09-30 | 2010-04-01 | Dale Llewelyn Mountain | Segmented progress indicator |
US20110302524A1 (en) * | 2010-06-04 | 2011-12-08 | Scott Forstall | Progress indicators for loading content |
US20120159370A1 (en) * | 2010-12-15 | 2012-06-21 | Jochen Rode | System and method to visualize measuring and dosing operations |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6600496B1 (en) | 1997-09-26 | 2003-07-29 | Sun Microsystems, Inc. | Interactive graphical user interface for television set-top box |
JPH11205484A (en) * | 1998-01-08 | 1999-07-30 | Sharp Corp | Communication equipment and medium recording communication equipment control program |
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 |
US20030182409A1 (en) * | 2002-03-22 | 2003-09-25 | Seaman Mark D. | Method and system for indicating the progress of device services |
US7917847B2 (en) | 2003-10-31 | 2011-03-29 | Access Co., Ltd. | Method, program and terminal device for rendering web page |
CN1879076A (en) | 2003-12-11 | 2006-12-13 | 诺基亚公司 | 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 |
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 |
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 |
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 |
US8650290B2 (en) | 2008-12-19 | 2014-02-11 | Openpeak Inc. | Portable computing device and method of operation of same |
US20100162139A1 (en) * | 2008-12-19 | 2010-06-24 | Palm, Inc. | Multi-function status indicator for content receipt by a mobile computing device |
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 (en) * | 2009-12-11 | 2011-06-23 | Nec Corp | Progress information display device, method of displaying progress information, and progress information display program |
KR20110116524A (en) | 2010-04-19 | 2011-10-26 | 엘지전자 주식회사 | Mobile terminal and operation control method thereof |
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 |
CN102141953B (en) | 2011-04-01 | 2013-10-16 | 奇智软件(北京)有限公司 | Method and device for showing progress bar |
EP2525281B1 (en) * | 2011-05-20 | 2019-01-02 | EchoStar Technologies L.L.C. | Improved progress bar |
US20130246962A1 (en) | 2012-03-09 | 2013-09-19 | Apple Inc. | Dynamic update of a completion status indicator |
USD690719S1 (en) * | 2013-02-28 | 2013-10-01 | Nike, Inc. | Display screen with animated graphical user interface |
-
2012
- 2012-09-13 US US13/615,025 patent/US20130246962A1/en not_active Abandoned
- 2012-09-13 US US13/615,140 patent/US20130235044A1/en not_active Abandoned
- 2012-09-13 US US13/614,762 patent/US9104296B2/en active Active
- 2012-09-13 US US13/615,120 patent/US9292177B2/en active Active
-
2013
- 2013-03-08 CN CN201310206711.XA patent/CN103365761B/en active Active
- 2013-03-08 AU AU2013201390A patent/AU2013201390B2/en active Active
- 2013-03-08 TW TW102108323A patent/TWI515637B/en active
- 2013-03-11 JP JP2013048464A patent/JP5993324B2/en active Active
- 2013-03-11 KR KR1020130025869A patent/KR101562098B1/en active IP Right Grant
-
2016
- 2016-08-19 JP JP2016161384A patent/JP6150930B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623590A (en) * | 1989-08-07 | 1997-04-22 | Lucent Technologies Inc. | Dynamic graphics arrangement for displaying spatial-time-series data |
US6275987B1 (en) * | 1998-11-05 | 2001-08-14 | International Business Machines Corporation | Adaptive, predictive progress indicator |
US20030163478A1 (en) * | 2002-02-27 | 2003-08-28 | International Business Machines Corporation | Apparatus and method for generating graphic presentation of estimated time of completion of a server request |
US20040078453A1 (en) * | 2002-10-17 | 2004-04-22 | International Business Machines Corporation | Method, apparatus, and computer program product to determine the progress of Web page downloads |
US20050222965A1 (en) * | 2004-03-31 | 2005-10-06 | Microsoft Corporation | Query progress estimation |
US20090083859A1 (en) * | 2007-09-21 | 2009-03-26 | Fuji Xerox Co., Ltd. | Progress indicators to encourage more secure behaviors |
US20100083159A1 (en) * | 2008-09-30 | 2010-04-01 | Dale Llewelyn Mountain | Segmented progress indicator |
US20110302524A1 (en) * | 2010-06-04 | 2011-12-08 | Scott Forstall | Progress indicators for loading content |
US20120159370A1 (en) * | 2010-12-15 | 2012-06-21 | Jochen Rode | System and method to visualize measuring and dosing operations |
Non-Patent Citations (1)
Title |
---|
Harrison, C., Amento, B., Kuznetsov, S., and Bell, R. 2007. Rethinking the progress bar. In Proceedings of the 20th Annual ACM Symposium on User interface Software and Technology (Newport, Rhode Island, USA, October 07 - 10, 2007). UIST '07. ACM, New York, NY. 115-118. * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130212514A1 (en) * | 2010-10-28 | 2013-08-15 | Zte Corporation | Method and Device for Displaying Start-Up Interface of Multimedia Terminal |
US9292177B2 (en) | 2012-03-09 | 2016-03-22 | Apple Inc. | Progress bar with feature availability indicator |
US9104296B2 (en) | 2012-03-09 | 2015-08-11 | Apple Inc. | Rocket effect in a progress bar |
US8935625B2 (en) * | 2012-08-15 | 2015-01-13 | Conductor, Inc. | User interface for task management |
US20140053096A1 (en) * | 2012-08-15 | 2014-02-20 | Conductor, Inc. | User interface for task management |
US9396088B2 (en) * | 2013-03-08 | 2016-07-19 | Sap Se | Computer execution progress indicator |
CN104951386A (en) * | 2014-03-28 | 2015-09-30 | 腾讯科技(深圳)有限公司 | Method and device for displaying content loading progress |
WO2016039717A1 (en) * | 2014-09-08 | 2016-03-17 | Hewlett Packard Enterprise Development Lp | User interface components load time visualization |
US20170353603A1 (en) * | 2016-06-03 | 2017-12-07 | Facebook, Inc. | Recommending applications using social networking information |
US20180325441A1 (en) * | 2017-05-09 | 2018-11-15 | International Business Machines Corporation | Cognitive progress indicator |
US10772551B2 (en) * | 2017-05-09 | 2020-09-15 | International Business Machines Corporation | Cognitive progress indicator |
US20220044812A1 (en) * | 2019-02-20 | 2022-02-10 | Roche Molecular Systems, Inc. | Automated generation of structured patient data record |
US10921887B2 (en) * | 2019-06-14 | 2021-02-16 | International Business Machines Corporation | Cognitive state aware accelerated activity completion and amelioration |
CN110457614A (en) * | 2019-07-03 | 2019-11-15 | 南方电网数字电网研究院有限公司 | Reduce data increment update method, device and the computer equipment of Data Concurrent amount |
Also Published As
Publication number | Publication date |
---|---|
JP5993324B2 (en) | 2016-09-14 |
AU2013201390A1 (en) | 2013-09-26 |
JP2013186907A (en) | 2013-09-19 |
US9104296B2 (en) | 2015-08-11 |
TWI515637B (en) | 2016-01-01 |
CN103365761B (en) | 2016-12-28 |
US20130239040A1 (en) | 2013-09-12 |
US9292177B2 (en) | 2016-03-22 |
KR20130103450A (en) | 2013-09-23 |
AU2013201390B2 (en) | 2015-05-07 |
US20130239039A1 (en) | 2013-09-12 |
TW201351257A (en) | 2013-12-16 |
KR101562098B1 (en) | 2015-10-20 |
CN103365761A (en) | 2013-10-23 |
JP6150930B2 (en) | 2017-06-21 |
US20130235044A1 (en) | 2013-09-12 |
JP2017016673A (en) | 2017-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9292177B2 (en) | Progress bar with feature availability indicator | |
EP2639716A2 (en) | Progress bar | |
EP2252947B1 (en) | Acceleration of rendering of web-based content | |
JP6440828B2 (en) | Visibility detection of digital content | |
US20110258575A1 (en) | Displaying large datasets in a browser environment | |
CN107818008B (en) | Page loading method and device | |
US9772978B2 (en) | Touch input visualizations based on user interface context | |
KR20160120343A (en) | Cross-platform rendering engine | |
US11455075B2 (en) | Display method when application is exited and terminal | |
WO2019033995A1 (en) | Page updating method and device | |
CN110020300B (en) | Browser page synthesis method and terminal | |
KR20180081232A (en) | Method for displaying screen and an electronic device thereof | |
EP3011451A1 (en) | Synchronization points for state information | |
US20140229823A1 (en) | Display apparatus and control method thereof | |
US9256358B2 (en) | Multiple panel touch user interface navigation | |
KR102121641B1 (en) | Coalescing graphics operations | |
KR20170114625A (en) | Device For Reducing Current Consumption and Method Thereof | |
CN113763459A (en) | Element position updating method and device, electronic equipment and storage medium | |
CN110990730B (en) | Webpage operation method and device, electronic equipment and storage medium | |
KR102630191B1 (en) | Electronic apparatus and method for controlling thereof | |
CN117311710A (en) | Method, device and medium for dynamically selecting time range based on time axis interaction | |
CN117874386A (en) | Front-end page dynamic effect display method and device, electronic equipment and storage medium | |
GB2535755A (en) | Method and apparatus for managing graphical user interface items |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: APPLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KALETA, DAMIAN;DECKER, KEVIN;REEL/FRAME:028986/0975 Effective date: 20120824 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |