Apple is working on new ways to present data in Mac OS X, it seems. A company patent (number 20110119615) for an adaptive data loader has appeared at the US Patent & Trademark Office.
The patent involves methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for presenting data. In one aspect, a method includes receiving a request for data; submitting the request while maintaining a currently displayed user interface; determining whether a specified amount of the data has been received within a threshold delay period; if the data has been received within the threshold delay period, displaying a new user interface including representations of a portion of the received data; and if the data has not been received within the threshold delay period, displaying a placeholder user interface. The inventors are Pavel Cisler, Loic Vandereyken, David Hart and Peter McInerney.
Here's Apple's background and summary of the invention: "Conventional computing systems display data using graphical user interfaces drawn on a display device. For example, the graphical user interfaces can present information regarding file system structures, content for various applications (e.g., documents, mail), Web pages, and other data.
"In some conventional systems when new data is to be presented (e.g., in response to a user request), the system fetches the data, processes the fetched data (e.g., identifies location and arrangement of objects or items to present), and then displays representations of the data to the user in a newly drawn user interface. For example, when interacting with a user interface window representing a file system, a user can select a folder to open. The system then fetches the data and displays the contents of the folder in a user interface window.
"In some conventional systems, once a selection has been made within a currently presented user interface (which triggers a fetch of data and a newly drawn user interface), the currently presented user interface is maintained and locked until the new user interface is drawn with the fetched data. If the delay is long, the user can not interact with the user interface and the lag in responsiveness may appear to the user as a system error. In some other conventional systems, the system immediately draws a placeholder user interface when the system begins fetching the data. However, this requires an additional drawing operation and can generate a noticeable flash when the new user interface including the fetched data is drawn over the placeholder user interface.
"In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a request for data; submitting the request while maintaining a currently displayed user interface; while maintaining the currently displayed user interface, determining whether a specified amount of the data has been received within a threshold delay period; if the data has been received within the threshold delay period, displaying a new user interface including representations of a portion of the received data; and if the data has not been received within the threshold delay period, displaying a placeholder user interface. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products.
"These and other embodiments can optionally include one or more of the following features. The method further includes drawing representations of received data to the placeholder user interface as the data is received. The method further includes determining whether the data has been received within a second threshold delay period; and if the data has not been received within the second threshold delay period, drawing a second placeholder user interface replacing the first placeholder user interface. The threshold delay period has a minimum value based on display hardware constraints.
"The placeholder user interface is a blank screen. The placeholder user interface includes a partial display of the user interface to be drawn for representing the received data. The placeholder user interface includes placeholders for icons, where the data including the icons has not been received. The placeholders for icons include outlines of items in the placeholder user interface to be represented by the corresponding icons. The partially drawn user interface includes representations of items that are user-interactable.
"A user selection of an item represented in the partially drawn user interface cancels the pending request for data and initiates a new request for displaying data associated with the selection. The placeholder user interface or the new user interface are presented without a flicker effect caused by transitioning from the currently displayed user interface.
"In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of presenting a user interface including one or more folder icons; receiving a request to present the contents of a folder represented by one of the one or more folder icons; fetching data for displaying the contents of the folder while maintaining the displayed user interface; while maintaining the displayed user interface, determining whether a specified amount of the data has been received within a threshold time; if the data has been received within the threshold time, displaying a new user interface including representations of the folder contents viewable within the dimensions of the new user interface; and if the data has not been received within the threshold time, displaying a placeholder user interface. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products.
"Particular embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages. User interface transitions are optimized to present placeholder user interfaces only in particular circumstances. Flicker effects of rapid user interface transitions can be prevented.
"Users can interact with placeholder user interfaces, allowing users to select items more quickly without waiting for all of the data to be fetched. Additionally, interacting within the placeholder user interface reduces processing when a user selects another item since any remaining data associated with a loading user interface no longer needs to be fetched once the user navigates away. The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims."
-- Dennis Sellers