US20130243012A1 - Network browser system, method, and computer program product for conditionally loading a portion of data from a network based on a data transfer rate - Google Patents
Network browser system, method, and computer program product for conditionally loading a portion of data from a network based on a data transfer rate Download PDFInfo
- Publication number
- US20130243012A1 US20130243012A1 US11/766,698 US76669807A US2013243012A1 US 20130243012 A1 US20130243012 A1 US 20130243012A1 US 76669807 A US76669807 A US 76669807A US 2013243012 A1 US2013243012 A1 US 2013243012A1
- Authority
- US
- United States
- Prior art keywords
- data
- network
- loading
- transfer rate
- data transfer
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Definitions
- the present invention relates to data transfer, and more particularly to transferring data over a network.
- a system, method, and computer program product are provided for optimizing network browser performance by conditionally loading a portion of data from a network based on a data transfer rate.
- a data transfer rate associated with a device connected to a network is identified.
- a portion of data from the network is conditionally loaded utilizing a network browser of the device, based on the identified data transfer rate.
- the portion of the data is selected based on a relevancy of the portion of the data.
- FIG. 1 illustrates a network architecture, in accordance with one embodiment.
- FIG. 2 shows a representative hardware environment that may be associated with the servers and/or clients of FIG. 1 , in accordance with one embodiment.
- FIG. 3 shows a method for conditionally loading a portion of data from a network based on a data transfer rate, in accordance with one embodiment.
- FIG. 4 shows a system for conditionally loading a portion of data from a network based on a data transfer rate, in accordance with another embodiment.
- FIG. 5 shows a method for loading requested data utilizing a network browser based on a data transfer rate, in accordance with yet another embodiment.
- FIG. 6 shows a method for preventing loading of a portion of requested data based on a data transfer rate that is not determined to meet a data transfer threshold rate, in accordance with still yet another embodiment.
- FIG. 7A shows a graphical user interface in which a portion of requested data is prevented from loading, in accordance with another embodiment.
- FIG. 7B shows a graphical user interface in which requested data is loaded, in accordance with yet another embodiment.
- FIG. 1 illustrates a network architecture 100 , in accordance with one embodiment.
- a plurality of networks 102 is provided.
- the networks 102 may each take any form including, but not limited to a local area network (LAN), a wireless network, a wide area network (WAN) such as the Internet, a peer-to-peer network, a personal area network (PAN), etc.
- LAN local area network
- WAN wide area network
- PAN personal area network
- servers 104 which are capable of communicating over the networks 102 .
- clients 106 are also coupled to the networks 102 and the servers 104 .
- Such servers 104 and/or clients 106 may each include a desktop computer, lap-top computer, hand-held computer, mobile phone, personal digital assistant (PDA), peripheral (e.g., printer, etc.), any component of a computer, and/or any other type of logic.
- PDA personal digital assistant
- peripheral e.g., printer, etc.
- any component of a computer and/or any other type of logic.
- at least one gateway 108 is optionally coupled therebetween.
- FIG. 2 shows a representative hardware environment that may be associated with the servers 104 and/or clients 106 of FIG. 1 , in accordance with one embodiment.
- Such figure illustrates atypical hardware configuration of a workstation in accordance with one embodiment having a central processing unit 210 , such as a microprocessor, and a number of other units interconnected via a system bus 212 .
- a central processing unit 210 such as a microprocessor
- the workstation shown in FIG. 2 includes a Random Access Memory (RAM) 214 , Read Only Memory (ROM) 216 , an I/O adapter 218 for connecting peripheral devices such as disk storage units 220 to the bus 212 , a user interface adapter 222 for connecting a keyboard 224 , a mouse 226 , a speaker 228 , a microphone 232 , and/or other user interface devices such as a touch screen (not shown) to the bus 212 , communication adapter 234 for connecting the workstation to a communication network 235 (e.g., a data processing network) and a display adapter 236 for connecting the bus 212 to a display device 238 .
- a communication network 235 e.g., a data processing network
- display adapter 236 for connecting the bus 212 to a display device 238 .
- the workstation may have resident thereon any desired operating system. It will be appreciated that an embodiment may also be implemented on platforms and operating systems other than those mentioned.
- One embodiment may be written using JAVA, C, and/or C++ language, or other programming languages, along with an object oriented programming methodology.
- Object oriented programming (OOP) has become increasingly used to develop complex applications.
- FIG. 3 shows a method 300 for conditionally loading a portion of data from a network based on a data transfer rate, in accordance with one embodiment.
- the method 300 may be carried out in the context of the architecture and environment of FIGS. 1 and/or 2 . Of course, however, the method 300 may be carried out in any desired environment.
- a data transfer rate associated with a device connected to a network is identified.
- the device may include any device connected to the network that is capable of loading data.
- the device may include any of the devices described above with respect to FIGS. 1 and/or 2 .
- the network to which the device is connected may include any network over which data may be transferred (e.g. communicated, downloaded, etc.).
- the network may include a wireless network, the Internet and/or any of the other networks described above with respect to FIG. 1 .
- the network may include a mobile phone network for enabling communication between mobile phones, a business network utilized by an organization (e.g. company, etc.), a home network, a personal network for enabling communication between a computer and peripheral devices associated therewith, etc. In this way, the device may be wirelessly connected to the network, etc.
- the network may utilize any desired communication protocols.
- the network may utilize radio frequency (RF), infrared (IR), ultrasound, electromagnetic communications, etc.
- RF radio frequency
- IR infrared
- the data transfer rate associated with the device may indicate a speed with which data is transferred to the device via the network. For example, such speed may be indicated in terms of the communication protocol utilized in transferring the data over the network.
- the data transfer rate may be identified utilizing a network adapter.
- the network adapter may continuously monitor the data transfer rate associated with the device for the identification thereof.
- the data transfer rate may be identified based on a time between issuance of a request by the device over the network and receipt of a response to the request by the device (e.g. from another device on the network, etc.). Of course, however, the data transfer rate may be identified in any desired manner.
- a portion of data is conditionally loaded from the network utilizing a network browser of the device, based on the identified data transfer rate.
- the network browser may include any application on the device that is capable of loading data from the network. Such loading may include any type of transferring of the data to the network browser.
- the network browser may include a web browser, in one embodiment. Further, the network browser may be utilized for presenting the loaded data to a user of the device.
- the data may include any information, content, etc. capable of being loaded from the network utilizing the network browser.
- the data may include a web page.
- the data may include messages, such as, for example, an electronic mail (email) message, a short message service (SMS) message, an instant message, etc.
- the data may include a computer program to be installed, an update to a computer program on the device, etc.
- the portion of the data may include images, video, audio, advertisements, third party plug-ins (e.g. run time environment plug-in applications, etc.) and/or any other portion (e.g. segment, subpart, fraction, etc.) of the data.
- third party plug-ins e.g. run time environment plug-in applications, etc.
- any other portion e.g. segment, subpart, fraction, etc.
- the data may be formatted and/or written utilizing any desired language/format such as hypertext markup language (HTML), extensible hypertext markup language (XHTML), cascading style sheets (CSS), JavaScript, dynamic hypertext markup language (DHTML), extensible markup language (XML), JavaTM MIDlets, extensible stylesheet language (XSL), extensible stylesheet language transformation (XSLT), resource description framework site summary (RSS), asynchronous JavaScript and XML (AJAX), active server pages (ASP), etc.
- HTML hypertext markup language
- XHTML extensible hypertext markup language
- CSS cascading style sheets
- JavaScript dynamic hypertext markup language
- DHTML dynamic hypertext markup language
- XML extensible markup language
- JavaTM MIDlets extensible stylesheet language
- XSL extensible stylesheet language transformation
- RLS resource description framework site summary
- AJAX active server pages
- the portion of the data is selected based on a relevancy of the portion of the data.
- the relevancy may include relevancy with respect to any aspect of the data, hardware and/or software of the device, and/or a user, etc.
- the portion of the data may be selected from a plurality of different portions of the data.
- such relevancy may include, as an option, the pertinence of the portion of the data with respect to any of the other portions of the data. In this way, the least relevant portion may be selected.
- the relevancy may include a value, weight, and/or any other indicator of the relevancy of the portion of the data.
- the relevancy may be identified based on rules
- rules may specify a relevancy hierarchy of data portion types. For example, advertisements may be specified as least relevant to data being loaded, whereas text, input fields, etc. may be specified as most relevant to data being downloaded.
- the rules may be manually configured.
- the rules may be user-configured.
- the rules may be automatically configured.
- the rules may be configured automatically based on capabilities of the device.
- the rules may specify types of data portions (e.g. types of images, etc.) which the device is not necessarily adapted to process (e.g. display, render, etc.).
- the rules may be configured automatically based on different types of applications (e.g. installed on the device, etc.). For example, relevancy of different data portion types may be specified with respect to various applications. Just by way of example, text within email messages accessed utilizing an email application may be specified as a higher relevancy than images within such email messages. Thus, the relevancy of the portion of the data may be based on an application associated with the data.
- the portion of the data may be conditionally loaded, if the identified transfer rate meets a predefined threshold rate.
- a data transfer threshold rate may be predefined (e.g. user-configured, automatically configured, etc.), such that the identified data transfer rate may be compared to such threshold.
- the portion of the data is loaded.
- the portion of the data may be loaded, such that all of the data is loaded.
- the portion of the data may be prevented from being loaded, if the identified data transfer rate is below a predefined threshold rate. In response to a determination that the identified data transfer rate is lower (e.g. slower) than the threshold rate (based on a comparison), the portion of the data may be prevented from being loaded.
- the size of the data being loaded may be decreased by preventing the loading of a portion thereof, while loading the remaining portions of the data. Accordingly, decreasing the size of the data being loaded may reduce an amount of time required to load the remaining portions of the data (i.e. the entire data less the portion prevented from loading).
- FIG. 4 shows a system 400 for conditionally loading a portion of data from a network based on a data transfer rate, in accordance with another embodiment.
- the system 400 may be implemented in the context of the architecture and environment of FIGS. 1-3 . Of course, however, the system 400 may be implemented in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.
- a client 402 is in communication with a server 412 via a network 404 . While only a single client 402 and server 412 are shown, it should be noted that the client 402 may also optionally be in communication with a plurality of different servers and/or other clients via the network 404 .
- the network 404 may include a single network, as shown, but, of course, may also include any combination of networks by which the client 402 and the server 412 communicate.
- the server 412 includes a content database 414 .
- the content database 414 may include any data structure capable of being utilized for storing data. Further, in the context of the present embodiment, at least some of such data is capable of being transferred to the client 402 .
- the content database 414 may store web pages, email message, etc.
- the network adapter 410 of the client 402 is utilized for communicating with the server 412 over the network 404 .
- the network adapter 410 may be capable of sending and receiving data over the network 404 .
- the network adapter 410 may be specific to the network 404 .
- the network adapter 410 may include a wireless network, adapter (e.g. RF adapter, etc.).
- the network adapter 410 may also include any other type adapter that is adapted for facilitating communication over the network 404 .
- the browser controller 408 of the client 402 is in communication with the network adapter 410 .
- the browser controller 408 may identify data transfer rates associated with the network adapter 410 of the client 402 .
- the browser controller 408 may continuously monitor such data transfer rates.
- the data transfer rates may be identified based on a difference between a time a request is issued by the client 402 via the network adapter 410 and a time a response to the request is received by the client 402 via the network adapter 410 .
- the browser controller 408 may include logic for determining the data transfer rates.
- the browser controller 408 may identify the data transfer rates in any desired manner.
- the browser controller 408 may include an application installed on the client 402 .
- the browser controller 408 may be integrated with the network browser 406 of the client 402 (e.g. as an add-on, plug-in, etc.).
- the browser controller 408 may also include an application that operates independently with respect to the network browser 406 of the client 402 , while remaining in communication with such network browser 406 , as shown.
- the browser controller 408 may be integrated with other applications, such as, for example, applications (e.g. customized corporate applications, etc.) utilized for connecting to various networks.
- the browser controller 408 may be utilized for controlling the network browser 406 .
- commands e.g. instructions, etc.
- Such commands issued by the browser controller 408 may include commands preventing loading of data from the content database 414 of the server 412 via the network 404 utilizing the network browser 406 , for example.
- the browser controller 408 may identify data transfer rates of the client 402 , and may control the network browser 406 based thereon. For example, in one embodiment, the browser controller 408 may identify a request issued by the client 402 via the network browser 406 (e.g. user initiated request, etc.) for data from the content database 414 of the server 412 . In response, the browser controller 408 may identify a data transfer rate (e.g. a latest determined data transfer rate, etc.) associated with the network adapter 410 of the client 402 .
- a data transfer rate e.g. a latest determined data transfer rate, etc.
- the browser controller 408 may further conditionally allow loading of an entirety of the requested data based on the identified data transfer rate. For example, the browser controller 408 may compare the identified data transfer rate to a predefined data transfer threshold rate. If the browser controller 408 determines that the identified data transfer rate meets or exceeds the threshold rate, the browser controller 408 may passively allow the network browser 406 to load an entirety of the requested data, but of course, in another embodiment, may also instruct the network, browser 406 to load the entirety of the requested data.
- the browser controller 408 may automatically begin issuing commands associated with an optimized mode.
- the browser controller 408 may command the network browser 406 to prevent loading of a portion of the requested data, where such portion is selected based on a relevancy thereof.
- the browser controller 408 may select the portion of the data based on the relevancy.
- the network browser 406 may select such portion of the data based on the relevancy.
- the client 402 may store relevancy rules utilized in selecting the portion of the data.
- such relevancy-based selection may be conducted by first gathering information about the portions of the data such as the size, extension, format, etc., and then applying such rules to this information, prior to loading.
- the browser controller 408 may be utilized for controlling the network browser 406 to conditionally load a portion of data from the content database 414 of the server 412 over the network 404 .
- the browser controller 408 may create a log file.
- the log file may record commands issued by the browser controller 408 , data transfer rates associated with the network adapter 410 , an amount of data transferred via the network adapter 410 , a date and/or time of each data transfer, etc.
- the log file may be utilized for billing purposes by a service provider that provides network access to the client 402 .
- the browser controller 408 may be utilized for scheduling downloads of data to the client 402 over the network 404 .
- the browser controller 408 may queue data downloads requested by the client 402 .
- such downloads may be queued when the data transfer rate associated with the network adapter 410 is below the predetermined threshold.
- the browser controller 408 may communicate a notification to a user of the client 402 when a plurality of windows associated with the network browser 406 are concurrently open (e.g. being utilized for presenting data), but when the user requests data over the network 404 which requires additional bandwidth for transfer to the client 402 .
- a notification may prompt the user to close at least some of the windows. In this way, additional bandwidth may be provided for fulfilling the user request for data.
- FIG. 5 shows a method 500 for loading requested data utilizing a network browser based on a data transfer rate, in accordance with yet another embodiment.
- the method 500 may be carried out in the context of the architecture and environment of FIGS. 1-4 .
- the method 500 may be carried out in any desired environment.
- the aforementioned definitions may apply during the present description.
- data transfer rates associated with a device are monitored.
- the data transfer rates may be monitored continuously, in one embodiment.
- such data transfer rates may be monitored periodically (e.g. based on configured time periods, etc.).
- a data transfer threshold rate In response to identification of a data transfer rate of the device from such monitoring, it is determined whether a data transfer threshold rate has been met. Note decision 504 . Such determination may be made by comparing the latest identified data transfer rate with the threshold rate. Of course, the determination may also be made utilizing any data transfer rate of the device (e.g. an average of data transfer rates for a particular period of time, etc.).
- the data may be requested by a user entering a universal resource locator (URL) associated with the data into a web browser.
- URL universal resource locator
- such data request is processed according to the operations of FIG. 6 , as described below. See operation 508 .
- the operations of FIG. 6 may allow the data request to be processed in a manner that decreases a size of the data requested, for further reducing the time in which such request is fulfilled (e.g. by loading a lesser amount of data, etc.). If a data request has not been made by the device, data transfer rates continue to be monitored (operation 502 ).
- the data may be loaded by transferring the data to the network browser.
- the data may be parsed by analyzing the data. For example, the data may be analyzed for determining an output format for the data.
- the data is displayed utilizing the network browser, as shown in operation 514 .
- the data may be displayed in a window of the network browser utilizing a display of the device.
- all of the data requested by the device may be displayed, in response to a determination that a data transfer rate of the device meets a predefined threshold rate.
- FIG. 6 shows a method 600 for preventing loading of a portion of requested data based on a data transfer rate that is not determined to meet a data transfer threshold rate, in accordance with another embodiment.
- the method 600 may be carried out in the context of the architecture and environment of FIGS. 1-5 .
- the method 600 may be carried out in the context of operation 508 of FIG. 5 .
- the method 600 may be carried out in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.
- a relevancy of portions of requested data is identified.
- the relevancy is determined for each of the portions of requested data.
- loading of at least one portion of the requested data is prevented based on the identified relevancies. Note operation 604 .
- loading of a portion of the requested data associated with the lowest relevancy may be prevented.
- loading of any portions of the requested data associated with a relevancy that is below a predefined relevancy threshold may be prevented.
- a predefined relevancy threshold may be predefined by user. In this way, a single portion of the requested data may be prevented from being loaded, or, in another embodiment, a plurality of portions of the requested data may be prevented from being loaded, based on relevancies thereof.
- the remaining requested data is loaded and parsed, utilizing a network browser, as shown in operation 605 .
- the remaining requested data may include portions of the data excluded from the portions of the data prevented from being loaded.
- any data permitted to be loaded based on an associated relevancy is loaded and parsed utilizing the network browser.
- the remaining requested data is displayed.
- a portion of data may be prevented from, being loaded utilizing the network browser, in response to a determination that a data transfer rate of an associated device has not met a threshold rate.
- the size of data loaded may be lessened for decreasing latency associated with the loading of such data.
- an alert is communicated.
- the alert may be communicated, in response to preventing the loading of the portion of the data.
- the alert may be communicated in association with the display of the remaining requested data.
- the alert may be communicated via a window in which the remaining requested data is displayed.
- the alert may be communicated by changing a color of the network browser.
- the alert may be displayed utilizing a pop-up window that is separate from the display of the remaining requested data.
- the alert may be displayed in a tool bar menu of the network browser.
- Such alert may be utilized to indicate that the portion of the data has been prevented from being loaded, in one embodiment.
- the alert may be utilized to indicate whether the data transfer rate has met a threshold rate.
- Such alert may include an image, text, audio, etc.
- the alert may be configured by a user.
- the mode of communication associated with the alert may be configured, an option may be provided for disabling the alert, etc.
- the alert may optionally inform a user of the network browser, if requested data is unavailable for loading, if data transfer rates are below a predefined threshold rate, etc.
- the user may opt to retry requesting the data at a later time (e.g. when data transfer rates increase above the threshold rate, etc.).
- loaded data may be parsed and displayed (not shown). To this end, once it is determined that the data transfer rate has met the threshold rate, any previously unloaded data may be loaded automatically. If, however, it is determined that the other identified data transfer rate still does not meet the threshold rate, it may further be determined whether a manual request to load the previously prevented portion of data has been received. Note decision 614 .
- the manual request may be initiated by a user, for example.
- such manual request may be initiated by selecting and right-clicking, double clicking, etc. the display area where the portion of the data would otherwise have been displayed, utilizing a mouse device.
- such manual request may be initiated utilizing the network browser via which the remaining requested data is displayed (see operation 606 ).
- the manual request to load any unloaded data may be received in response to the display of the remaining requested data.
- the manual request may specify any or all of such portions to be loaded.
- the previously prevented portion of data indicated by the manual request may be loaded, as shown in operation 612 . Accordingly, in response to the portion of the data being prevented from loading based on the identified data transfer rate, such portion of the data may be loaded based on a manual request. Thus, all requested data (or a selected portion thereof) may be displayed in response to a manual request, even if the data transfer threshold rate has not been met.
- a user may request a web page over a network utilizing a network browser of a device, when a data transfer rate associated with the device is below a predetermined threshold rate.
- such web page may include a web page for allowing the user to log into a web site.
- a relevancy of each of the portions of the web page may be identified.
- images within the web page may be assigned a lower relevancy than fields for inputting a user name and password.
- the images may be prevented from being loaded, whereas the fields may be loaded and parsed utilizing the network browser.
- the portions of the data most relevant to the request may be loaded in the network browser for display to the user.
- an alert may be communicated to the user for indicating that the prevented images were not loaded utilizing the network browser.
- the user may further manually request for such prevented images to be loaded, or such prevented images may be automatically loaded in response to a determination that the data transfer rate has met the threshold rate.
- FIG. 7A shows a graphical user interface (GUI) 700 in which a portion of requested data is prevented from loading, in accordance with yet another embodiment.
- GUI graphical user interface
- the GUI 700 may be implemented in the context of the architecture and environment of FIGS. 1-6 .
- the GUI 700 may be implemented in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.
- the GUI 700 is utilized to display data requested by a user over a network.
- the GUI 700 may include a window of a web browser, for example.
- the requested data includes a web page for new content, as shown.
- the requested data may also include any other type of data.
- a portion of the requested data is prevented from loading utilizing the network browser.
- the portion of the data prevented from being loaded may include an image, for example.
- the display area of the GUI 700 associated with the prevented portion of the data (see item 702 ) is prevented from being populated with such portion of the data.
- the remaining portion of the data which, in the present embodiment, includes a text portion of the requested data 704 , is displayed.
- a menu 708 of the GUI 700 may be utilized for manually selecting to load the previously prevented portion of the data.
- a status indicator 706 is also displayed via the GUI 700 .
- the status indicator 706 may be utilized for indicating that a portion of the requested data has been prevented from being loaded.
- the status indicator 706 may be utilized for indicating whether a data transfer rate associated with the device meets a predefined threshold rate.
- the status indicator 706 may change color.
- the status indicator 706 may be of a blue color if the data transfer rate associated with the device is lower than the threshold rate.
- the status indicator 706 may be of a red color if the data transfer rate is zero (e.g. indicating a communication signal utilized by the device is disabled, etc.).
- the status indicator 706 may be of a green color if the data transfer rate meets or exceeds the threshold rate.
- the status indicator 706 may also be customized by a user.
- the status indicator 706 may be configured by the user during installation of a browser controller utilized to control a browser associated with the GUI 700 .
- the status indicator 706 may be configured by selecting a configuration option on the menu 708 .
- the GUI 700 may be utilized for displaying information describing the portion of the data prevented from being loaded.
- the menu 708 of the GUI 700 may include an option for displaying such descriptive information.
- the GUI 700 may display a current data transfer rate associated with the device, as an option.
- a message may be communicated (e.g. via the GUI 700 ) indicating such change, and that portions of requested data may be prevented from being loaded.
- FIG. 7B shows a graphical user interface (GUI) 750 in which requested data is loaded, in accordance with yet another embodiment.
- GUI graphical user interface
- the GUI 750 may be implemented in the context of the architecture and environment of FIGS. 1-6 .
- the GUI 750 may be implemented in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.
- the GUI 700 is utilized to display data requested by a user over a network.
- an entirety of the requested data is loaded utilizing an associated network browser.
- an image 752 associated with the requested data is displayed, as shown.
- a status indicator 754 is included in the GUI 700 for indicating that the entirety of the requested data has been loaded, that the data transfer rate of an associated device meets the threshold rate, etc.
- a predetermined color may be utilized for providing such indication via the status indicator 754 .
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- The present invention relates to data transfer, and more particularly to transferring data over a network.
- Today, transferring data over a network is common practice. For example, clients connected to the network oftentimes request data from servers and/or other clients via the network. However, the speed with which such network data is capable of being transferred has traditionally been restricted due to available bandwidth constraints, connectivity constraints, etc. Attempts to minimize such speed restrictions have generally been limited to reducing the size of data transferred over the network at the server, or client, on which the data is stored (e.g. via data compression techniques, down-sizing, etc.). Nevertheless, such attempts have sometimes been unsuccessful when the source of the data being transferred is itself contributing to the speed restrictions (e.g. due to operative failure of the source, etc.).
- There is thus a need for addressing these and/or other issues associated with the prior art.
- A system, method, and computer program product are provided for optimizing network browser performance by conditionally loading a portion of data from a network based on a data transfer rate. In use, a data transfer rate associated with a device connected to a network is identified. Additionally, a portion of data from the network is conditionally loaded utilizing a network browser of the device, based on the identified data transfer rate. Further, the portion of the data is selected based on a relevancy of the portion of the data.
-
FIG. 1 illustrates a network architecture, in accordance with one embodiment. -
FIG. 2 shows a representative hardware environment that may be associated with the servers and/or clients ofFIG. 1 , in accordance with one embodiment. -
FIG. 3 shows a method for conditionally loading a portion of data from a network based on a data transfer rate, in accordance with one embodiment. -
FIG. 4 shows a system for conditionally loading a portion of data from a network based on a data transfer rate, in accordance with another embodiment. -
FIG. 5 shows a method for loading requested data utilizing a network browser based on a data transfer rate, in accordance with yet another embodiment. -
FIG. 6 shows a method for preventing loading of a portion of requested data based on a data transfer rate that is not determined to meet a data transfer threshold rate, in accordance with still yet another embodiment. -
FIG. 7A shows a graphical user interface in which a portion of requested data is prevented from loading, in accordance with another embodiment. -
FIG. 7B shows a graphical user interface in which requested data is loaded, in accordance with yet another embodiment. -
FIG. 1 illustrates anetwork architecture 100, in accordance with one embodiment. As shown, a plurality ofnetworks 102 is provided. In the context of thepresent network architecture 100, thenetworks 102 may each take any form including, but not limited to a local area network (LAN), a wireless network, a wide area network (WAN) such as the Internet, a peer-to-peer network, a personal area network (PAN), etc. - Coupled to the
networks 102 areservers 104 which are capable of communicating over thenetworks 102. Also coupled to thenetworks 102 and theservers 104 is a plurality ofclients 106.Such servers 104 and/orclients 106 may each include a desktop computer, lap-top computer, hand-held computer, mobile phone, personal digital assistant (PDA), peripheral (e.g., printer, etc.), any component of a computer, and/or any other type of logic. In order to facilitate communication among thenetworks 102, at least onegateway 108 is optionally coupled therebetween. -
FIG. 2 shows a representative hardware environment that may be associated with theservers 104 and/orclients 106 ofFIG. 1 , in accordance with one embodiment. Such figure illustrates atypical hardware configuration of a workstation in accordance with one embodiment having acentral processing unit 210, such as a microprocessor, and a number of other units interconnected via asystem bus 212. - The workstation shown in
FIG. 2 includes a Random Access Memory (RAM) 214, Read Only Memory (ROM) 216, an I/O adapter 218 for connecting peripheral devices such asdisk storage units 220 to thebus 212, auser interface adapter 222 for connecting akeyboard 224, amouse 226, aspeaker 228, amicrophone 232, and/or other user interface devices such as a touch screen (not shown) to thebus 212,communication adapter 234 for connecting the workstation to a communication network 235 (e.g., a data processing network) and adisplay adapter 236 for connecting thebus 212 to adisplay device 238. - The workstation may have resident thereon any desired operating system. It will be appreciated that an embodiment may also be implemented on platforms and operating systems other than those mentioned. One embodiment may be written using JAVA, C, and/or C++ language, or other programming languages, along with an object oriented programming methodology. Object oriented programming (OOP) has become increasingly used to develop complex applications.
- Of course, the various embodiments set forth herein may be implemented utilizing hardware, software, or any desired combination thereof. For that matter, any type of logic may be utilized which is capable of implementing the various functionality set forth herein.
-
FIG. 3 shows amethod 300 for conditionally loading a portion of data from a network based on a data transfer rate, in accordance with one embodiment. As an option, themethod 300 may be carried out in the context of the architecture and environment ofFIGS. 1 and/or 2. Of course, however, themethod 300 may be carried out in any desired environment. - As shown in
operation 302, a data transfer rate associated with a device connected to a network is identified. In the context of the present description, the device may include any device connected to the network that is capable of loading data. Just by way of example, the device may include any of the devices described above with respect toFIGS. 1 and/or 2. - In addition, the network to which the device is connected may include any network over which data may be transferred (e.g. communicated, downloaded, etc.). For example, the network may include a wireless network, the Internet and/or any of the other networks described above with respect to
FIG. 1 . In various embodiments, the network may include a mobile phone network for enabling communication between mobile phones, a business network utilized by an organization (e.g. company, etc.), a home network, a personal network for enabling communication between a computer and peripheral devices associated therewith, etc. In this way, the device may be wirelessly connected to the network, etc. - Further, the network may utilize any desired communication protocols. In various embodiments, the network may utilize radio frequency (RF), infrared (IR), ultrasound, electromagnetic communications, etc. Thus, in one embodiment, the data transfer rate associated with the device may indicate a speed with which data is transferred to the device via the network. For example, such speed may be indicated in terms of the communication protocol utilized in transferring the data over the network.
- Moreover, in one embodiment, the data transfer rate may be identified utilizing a network adapter. Optionally, the network adapter may continuously monitor the data transfer rate associated with the device for the identification thereof. In another embodiment, the data transfer rate may be identified based on a time between issuance of a request by the device over the network and receipt of a response to the request by the device (e.g. from another device on the network, etc.). Of course, however, the data transfer rate may be identified in any desired manner.
- As also shown, a portion of data is conditionally loaded from the network utilizing a network browser of the device, based on the identified data transfer rate.
Note operation 304. The network browser may include any application on the device that is capable of loading data from the network. Such loading may include any type of transferring of the data to the network browser. Just by way of example, the network browser may include a web browser, in one embodiment. Further, the network browser may be utilized for presenting the loaded data to a user of the device. - Additionally, the data may include any information, content, etc. capable of being loaded from the network utilizing the network browser. In one embodiment, the data may include a web page. In other embodiments, the data may include messages, such as, for example, an electronic mail (email) message, a short message service (SMS) message, an instant message, etc. In still yet another embodiment, the data may include a computer program to be installed, an update to a computer program on the device, etc.
- To this end, the portion of the data may include images, video, audio, advertisements, third party plug-ins (e.g. run time environment plug-in applications, etc.) and/or any other portion (e.g. segment, subpart, fraction, etc.) of the data. Just by way of example, the data (and the portions thereof) may be formatted and/or written utilizing any desired language/format such as hypertext markup language (HTML), extensible hypertext markup language (XHTML), cascading style sheets (CSS), JavaScript, dynamic hypertext markup language (DHTML), extensible markup language (XML), Java™ MIDlets, extensible stylesheet language (XSL), extensible stylesheet language transformation (XSLT), resource description framework site summary (RSS), asynchronous JavaScript and XML (AJAX), active server pages (ASP), etc.
- Furthermore, the portion of the data is selected based on a relevancy of the portion of the data. In the context of the present description, the relevancy may include relevancy with respect to any aspect of the data, hardware and/or software of the device, and/or a user, etc. In one embodiment, the portion of the data may be selected from a plurality of different portions of the data. Still yet, such relevancy may include, as an option, the pertinence of the portion of the data with respect to any of the other portions of the data. In this way, the least relevant portion may be selected. Optionally, the relevancy may include a value, weight, and/or any other indicator of the relevancy of the portion of the data.
- In one embodiment, the relevancy may be identified based on rules Such rules may specify a relevancy hierarchy of data portion types. For example, advertisements may be specified as least relevant to data being loaded, whereas text, input fields, etc. may be specified as most relevant to data being downloaded.
- In one embodiment, the rules may be manually configured. For example, the rules may be user-configured. In another embodiment, the rules may be automatically configured. As an option, the rules may be configured automatically based on capabilities of the device. Just by way of example, the rules may specify types of data portions (e.g. types of images, etc.) which the device is not necessarily adapted to process (e.g. display, render, etc.).
- As another option, the rules may be configured automatically based on different types of applications (e.g. installed on the device, etc.). For example, relevancy of different data portion types may be specified with respect to various applications. Just by way of example, text within email messages accessed utilizing an email application may be specified as a higher relevancy than images within such email messages. Thus, the relevancy of the portion of the data may be based on an application associated with the data.
- Furthermore, in one embodiment, the portion of the data may be conditionally loaded, if the identified transfer rate meets a predefined threshold rate. For example, a data transfer threshold rate may be predefined (e.g. user-configured, automatically configured, etc.), such that the identified data transfer rate may be compared to such threshold. In response to a determination that the identified transfer rate meets or is higher (e.g. faster) than the threshold rate (based on a comparison), the portion of the data is loaded. Thus, the portion of the data may be loaded, such that all of the data is loaded.
- In another embodiment, the portion of the data may be prevented from being loaded, if the identified data transfer rate is below a predefined threshold rate. In response to a determination that the identified data transfer rate is lower (e.g. slower) than the threshold rate (based on a comparison), the portion of the data may be prevented from being loaded.
- In this way, the size of the data being loaded may be decreased by preventing the loading of a portion thereof, while loading the remaining portions of the data. Accordingly, decreasing the size of the data being loaded may reduce an amount of time required to load the remaining portions of the data (i.e. the entire data less the portion prevented from loading).
- More illustrative information will now be set forth regarding various optional architectures and features with which the foregoing technique may or may not be implemented, per the desires of the user. It should be strongly noted that the following information is set forth for illustrative purposes and should not be construed as limiting in any manner. Any of the following features may be optionally incorporated with or without the exclusion of other features described.
-
FIG. 4 shows asystem 400 for conditionally loading a portion of data from a network based on a data transfer rate, in accordance with another embodiment. As an option, thesystem 400 may be implemented in the context of the architecture and environment ofFIGS. 1-3 . Of course, however, thesystem 400 may be implemented in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description. - As shown, a
client 402 is in communication with aserver 412 via anetwork 404. While only asingle client 402 andserver 412 are shown, it should be noted that theclient 402 may also optionally be in communication with a plurality of different servers and/or other clients via thenetwork 404. In addition, thenetwork 404 may include a single network, as shown, but, of course, may also include any combination of networks by which theclient 402 and theserver 412 communicate. - As also shown, the
server 412 includes acontent database 414. Thecontent database 414 may include any data structure capable of being utilized for storing data. Further, in the context of the present embodiment, at least some of such data is capable of being transferred to theclient 402. For example, thecontent database 414 may store web pages, email message, etc. - In use, the
network adapter 410 of theclient 402 is utilized for communicating with theserver 412 over thenetwork 404. To this end, thenetwork adapter 410 may be capable of sending and receiving data over thenetwork 404. Thenetwork adapter 410 may be specific to thenetwork 404. For example, if thenetwork 404 includes a wireless network, thenetwork adapter 410 may include a wireless network, adapter (e.g. RF adapter, etc.). Of course, however, thenetwork adapter 410 may also include any other type adapter that is adapted for facilitating communication over thenetwork 404. - Additionally, the
browser controller 408 of theclient 402 is in communication with thenetwork adapter 410. In this way, thebrowser controller 408 may identify data transfer rates associated with thenetwork adapter 410 of theclient 402. As an option, thebrowser controller 408 may continuously monitor such data transfer rates. - In one embodiment, the data transfer rates may be identified based on a difference between a time a request is issued by the
client 402 via thenetwork adapter 410 and a time a response to the request is received by theclient 402 via thenetwork adapter 410. Thus, thebrowser controller 408 may include logic for determining the data transfer rates. Of course, it should be noted that thebrowser controller 408 may identify the data transfer rates in any desired manner. - Further, the
browser controller 408 may include an application installed on theclient 402. In one embodiment, thebrowser controller 408 may be integrated with thenetwork browser 406 of the client 402 (e.g. as an add-on, plug-in, etc.). Of course, however, thebrowser controller 408 may also include an application that operates independently with respect to thenetwork browser 406 of theclient 402, while remaining in communication withsuch network browser 406, as shown. As another option, thebrowser controller 408 may be integrated with other applications, such as, for example, applications (e.g. customized corporate applications, etc.) utilized for connecting to various networks. - Still yet, the
browser controller 408 may be utilized for controlling thenetwork browser 406. For example, commands (e.g. instructions, etc.) issued by thebrowser controller 408 to thenetwork browser 406 may take precedence over operations of thenetwork browser 406 Such commands issued by thebrowser controller 408 may include commands preventing loading of data from thecontent database 414 of theserver 412 via thenetwork 404 utilizing thenetwork browser 406, for example. - To this end, the
browser controller 408 may identify data transfer rates of theclient 402, and may control thenetwork browser 406 based thereon. For example, in one embodiment, thebrowser controller 408 may identify a request issued by theclient 402 via the network browser 406 (e.g. user initiated request, etc.) for data from thecontent database 414 of theserver 412. In response, thebrowser controller 408 may identify a data transfer rate (e.g. a latest determined data transfer rate, etc.) associated with thenetwork adapter 410 of theclient 402. - The
browser controller 408 may further conditionally allow loading of an entirety of the requested data based on the identified data transfer rate. For example, thebrowser controller 408 may compare the identified data transfer rate to a predefined data transfer threshold rate. If thebrowser controller 408 determines that the identified data transfer rate meets or exceeds the threshold rate, thebrowser controller 408 may passively allow thenetwork browser 406 to load an entirety of the requested data, but of course, in another embodiment, may also instruct the network,browser 406 to load the entirety of the requested data. - If, however, the
browser controller 408 determines that the identified data transfer rate is lower than the threshold rate, thebrowser controller 408 may automatically begin issuing commands associated with an optimized mode. In particular, thebrowser controller 408 may command thenetwork browser 406 to prevent loading of a portion of the requested data, where such portion is selected based on a relevancy thereof. In one embodiment, thebrowser controller 408 may select the portion of the data based on the relevancy. In another embodiment, thenetwork browser 406 may select such portion of the data based on the relevancy. As an option, theclient 402 may store relevancy rules utilized in selecting the portion of the data. In one possible embodiment, such relevancy-based selection may be conducted by first gathering information about the portions of the data such as the size, extension, format, etc., and then applying such rules to this information, prior to loading. To this end, thebrowser controller 408 may be utilized for controlling thenetwork browser 406 to conditionally load a portion of data from thecontent database 414 of theserver 412 over thenetwork 404. - As an option, the
browser controller 408 may create a log file. The log file may record commands issued by thebrowser controller 408, data transfer rates associated with thenetwork adapter 410, an amount of data transferred via thenetwork adapter 410, a date and/or time of each data transfer, etc. For example, the log file may be utilized for billing purposes by a service provider that provides network access to theclient 402. - As another option, the
browser controller 408 may be utilized for scheduling downloads of data to theclient 402 over thenetwork 404. Thus, thebrowser controller 408 may queue data downloads requested by theclient 402. In one embodiment, such downloads may be queued when the data transfer rate associated with thenetwork adapter 410 is below the predetermined threshold. - As still yet another option, the
browser controller 408 may communicate a notification to a user of theclient 402 when a plurality of windows associated with thenetwork browser 406 are concurrently open (e.g. being utilized for presenting data), but when the user requests data over thenetwork 404 which requires additional bandwidth for transfer to theclient 402. For example, such notification may prompt the user to close at least some of the windows. In this way, additional bandwidth may be provided for fulfilling the user request for data. -
FIG. 5 shows amethod 500 for loading requested data utilizing a network browser based on a data transfer rate, in accordance with yet another embodiment. As an option, themethod 500 may be carried out in the context of the architecture and environment ofFIGS. 1-4 . Of course, however, themethod 500 may be carried out in any desired environment. Again, it should also be noted that the aforementioned definitions may apply during the present description. - As shown in
operation 502, data transfer rates associated with a device are monitored. The data transfer rates may be monitored continuously, in one embodiment. As another option, such data transfer rates may be monitored periodically (e.g. based on configured time periods, etc.). - In response to identification of a data transfer rate of the device from such monitoring, it is determined whether a data transfer threshold rate has been met. Note
decision 504. Such determination may be made by comparing the latest identified data transfer rate with the threshold rate. Of course, the determination may also be made utilizing any data transfer rate of the device (e.g. an average of data transfer rates for a particular period of time, etc.). - If it is determined that threshold rate has not been met, it is determined whether data has been requested by the device. Note
decision 506. In one embodiment, the data may be requested by a user entering a universal resource locator (URL) associated with the data into a web browser. Of course, however, the data may be requested in any desired manner. - In response to a determination that data has been requested, such data request is processed according to the operations of
FIG. 6 , as described below. Seeoperation 508. For example, the operations ofFIG. 6 may allow the data request to be processed in a manner that decreases a size of the data requested, for further reducing the time in which such request is fulfilled (e.g. by loading a lesser amount of data, etc.). If a data request has not been made by the device, data transfer rates continue to be monitored (operation 502). - If, in
decision 504, if is determined that the threshold rate has been met, if is further determined whether data has been requested by the device. Noteoperation 510. In response to a determination that data has been requested, an entirety of the requested data is loaded and parsed utilizing a network browser, as shown inoperation 512. For example, the requested data may be loaded and parsed from a network. - In one embodiment, the data may be loaded by transferring the data to the network browser. In another embodiment, the data may be parsed by analyzing the data. For example, the data may be analyzed for determining an output format for the data. To this end, the data is displayed utilizing the network browser, as shown in
operation 514. For example, the data may be displayed in a window of the network browser utilizing a display of the device. Thus, all of the data requested by the device may be displayed, in response to a determination that a data transfer rate of the device meets a predefined threshold rate. -
FIG. 6 shows amethod 600 for preventing loading of a portion of requested data based on a data transfer rate that is not determined to meet a data transfer threshold rate, in accordance with another embodiment. As an option, themethod 600 may be carried out in the context of the architecture and environment ofFIGS. 1-5 . For example, themethod 600 may be carried out in the context ofoperation 508 ofFIG. 5 . Of course, however, themethod 600 may be carried out in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description. - As shown in
operation 602, a relevancy of portions of requested data is identified. In the context of the present embodiment, the relevancy is determined for each of the portions of requested data. In addition, loading of at least one portion of the requested data is prevented based on the identified relevancies. Noteoperation 604. - In one embodiment, loading of a portion of the requested data associated with the lowest relevancy may be prevented. In another embodiment, loading of any portions of the requested data associated with a relevancy that is below a predefined relevancy threshold may be prevented. For example, such relevancy threshold may be predefined by user. In this way, a single portion of the requested data may be prevented from being loaded, or, in another embodiment, a plurality of portions of the requested data may be prevented from being loaded, based on relevancies thereof.
- Further, the remaining requested data is loaded and parsed, utilizing a network browser, as shown in
operation 605. In the context of the present embodiment, the remaining requested data may include portions of the data excluded from the portions of the data prevented from being loaded. Thus, any data permitted to be loaded based on an associated relevancy is loaded and parsed utilizing the network browser. - Moreover, as shown in
operation 606, the remaining requested data is displayed. To this end, a portion of data may be prevented from, being loaded utilizing the network browser, in response to a determination that a data transfer rate of an associated device has not met a threshold rate. In this way, the size of data loaded may be lessened for decreasing latency associated with the loading of such data. - As also shown in
operation 608, an alert is communicated. Thus, the alert may be communicated, in response to preventing the loading of the portion of the data. In one embodiment, the alert may be communicated in association with the display of the remaining requested data. For example, the alert may be communicated via a window in which the remaining requested data is displayed. In such example, the alert may be communicated by changing a color of the network browser. In another embodiment, the alert may be displayed utilizing a pop-up window that is separate from the display of the remaining requested data. In yet another embodiment, the alert may be displayed in a tool bar menu of the network browser. - Such alert may be utilized to indicate that the portion of the data has been prevented from being loaded, in one embodiment. In another embodiment, the alert may be utilized to indicate whether the data transfer rate has met a threshold rate. Such alert may include an image, text, audio, etc. Optionally, the alert may be configured by a user. For example, the mode of communication associated with the alert may be configured, an option may be provided for disabling the alert, etc.
- In this way, the alert may optionally inform a user of the network browser, if requested data is unavailable for loading, if data transfer rates are below a predefined threshold rate, etc. Thus, the user may opt to retry requesting the data at a later time (e.g. when data transfer rates increase above the threshold rate, etc.).
- Still yet, it is determined whether another data transfer rate identified during or subsequent to the loading of the remaining requested data meets the threshold rate, as shown in
decision 610. In this way, such determination may be made even after, or during, display of the remaining requested data. If it is determined that the other identified data transfer rate meets the threshold rate, the previously prevented portion of data is loaded. Noteoperation 612. - Further, such loaded data may be parsed and displayed (not shown). To this end, once it is determined that the data transfer rate has met the threshold rate, any previously unloaded data may be loaded automatically. If, however, it is determined that the other identified data transfer rate still does not meet the threshold rate, it may further be determined whether a manual request to load the previously prevented portion of data has been received. Note
decision 614. - The manual request may be initiated by a user, for example. In various embodiments, such manual request may be initiated by selecting and right-clicking, double clicking, etc. the display area where the portion of the data would otherwise have been displayed, utilizing a mouse device. In addition, such manual request may be initiated utilizing the network browser via which the remaining requested data is displayed (see operation 606). In this way, in one embodiment, the manual request to load any unloaded data may be received in response to the display of the remaining requested data. As an option, if multiple portions of the data were previously prevented from being loaded, the manual request may specify any or all of such portions to be loaded.
- If it is determined that a manual request has been received, the previously prevented portion of data indicated by the manual request may be loaded, as shown in
operation 612. Accordingly, in response to the portion of the data being prevented from loading based on the identified data transfer rate, such portion of the data may be loaded based on a manual request. Thus, all requested data (or a selected portion thereof) may be displayed in response to a manual request, even if the data transfer threshold rate has not been met. - In one exemplary embodiment, a user may request a web page over a network utilizing a network browser of a device, when a data transfer rate associated with the device is below a predetermined threshold rate. In the context of the present exemplary embodiment, such web page may include a web page for allowing the user to log into a web site. In response to the request, a relevancy of each of the portions of the web page may be identified.
- For example, images within the web page may be assigned a lower relevancy than fields for inputting a user name and password. Thus, the images may be prevented from being loaded, whereas the fields may be loaded and parsed utilizing the network browser. In this way, the portions of the data most relevant to the request may be loaded in the network browser for display to the user. In addition, an alert may be communicated to the user for indicating that the prevented images were not loaded utilizing the network browser. The user may further manually request for such prevented images to be loaded, or such prevented images may be automatically loaded in response to a determination that the data transfer rate has met the threshold rate.
-
FIG. 7A shows a graphical user interface (GUI) 700 in which a portion of requested data is prevented from loading, in accordance with yet another embodiment. As an option, theGUI 700 may be implemented in the context of the architecture and environment ofFIGS. 1-6 . Of course, however, theGUI 700 may be implemented in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description. - As shown, the
GUI 700 is utilized to display data requested by a user over a network. TheGUI 700 may include a window of a web browser, for example. In the present embodiment, the requested data includes a web page for new content, as shown. Of course, however, the requested data may also include any other type of data. - In response to a determination that a data transfer rate of an associated device is lower than a predefined threshold rate, a portion of the requested data is prevented from loading utilizing the network browser. In the present embodiment, the portion of the data prevented from being loaded may include an image, for example. As shown, the display area of the
GUI 700 associated with the prevented portion of the data (see item 702) is prevented from being populated with such portion of the data. However, the remaining portion of the data, which, in the present embodiment, includes a text portion of the requesteddata 704, is displayed. - Moreover, a
menu 708 of theGUI 700 may be utilized for manually selecting to load the previously prevented portion of the data. In addition, astatus indicator 706 is also displayed via theGUI 700. Thestatus indicator 706 may be utilized for indicating that a portion of the requested data has been prevented from being loaded. As another option, thestatus indicator 706 may be utilized for indicating whether a data transfer rate associated with the device meets a predefined threshold rate. - In one embodiment the
status indicator 706 may change color. For example, thestatus indicator 706 may be of a blue color if the data transfer rate associated with the device is lower than the threshold rate. As another example, thestatus indicator 706 may be of a red color if the data transfer rate is zero (e.g. indicating a communication signal utilized by the device is disabled, etc.). As yet another example, thestatus indicator 706 may be of a green color if the data transfer rate meets or exceeds the threshold rate. - Of course, however, the
status indicator 706, including utilized colors, etc. may also be customized by a user. In one embodiment, thestatus indicator 706 may be configured by the user during installation of a browser controller utilized to control a browser associated with theGUI 700. In another embodiment, thestatus indicator 706 may be configured by selecting a configuration option on themenu 708. - As yet another option, the
GUI 700 may be utilized for displaying information describing the portion of the data prevented from being loaded. For example, themenu 708 of theGUI 700 may include an option for displaying such descriptive information. Still yet, theGUI 700 may display a current data transfer rate associated with the device, as an option. Moreover, in response to identification that the data transfer rate has changed from meeting the threshold rate to being below the threshold rate, a message may be communicated (e.g. via the GUI 700) indicating such change, and that portions of requested data may be prevented from being loaded. -
FIG. 7B shows a graphical user interface (GUI) 750 in which requested data is loaded, in accordance with yet another embodiment. As an option, theGUI 750 may be implemented in the context of the architecture and environment ofFIGS. 1-6 . Of course, however, theGUI 750 may be implemented in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description. - As shown, the
GUI 700 is utilized to display data requested by a user over a network. In response to a determination that a data transfer rate of an associated device is meets a predefined threshold rate, an entirety of the requested data is loaded utilizing an associated network browser. Thus, animage 752 associated with the requested data is displayed, as shown. - In addition, a
status indicator 754 is included in theGUI 700 for indicating that the entirety of the requested data has been loaded, that the data transfer rate of an associated device meets the threshold rate, etc. For example, a predetermined color may be utilized for providing such indication via thestatus indicator 754. - While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Claims (22)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/766,698 US8521891B1 (en) | 2007-06-21 | 2007-06-21 | Network browser system, method, and computer program product for conditionally loading a portion of data from a network based on a data transfer rate |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/766,698 US8521891B1 (en) | 2007-06-21 | 2007-06-21 | Network browser system, method, and computer program product for conditionally loading a portion of data from a network based on a data transfer rate |
Publications (2)
Publication Number | Publication Date |
---|---|
US8521891B1 US8521891B1 (en) | 2013-08-27 |
US20130243012A1 true US20130243012A1 (en) | 2013-09-19 |
Family
ID=48999883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/766,698 Active 2028-08-11 US8521891B1 (en) | 2007-06-21 | 2007-06-21 | Network browser system, method, and computer program product for conditionally loading a portion of data from a network based on a data transfer rate |
Country Status (1)
Country | Link |
---|---|
US (1) | US8521891B1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9454411B2 (en) * | 2007-08-30 | 2016-09-27 | International Business Machines Corporation | User-selectable progress bar threshold triggers and notification by detecting color change |
GB2519294A (en) * | 2013-10-15 | 2015-04-22 | Ibm | Storage controller quality of service |
US10284439B2 (en) | 2013-12-02 | 2019-05-07 | Google Llc | Method for measuring end-to-end internet application performance |
US9882959B2 (en) * | 2014-09-30 | 2018-01-30 | International Business Machines Corporation | Managing requests to a high utilization website |
CN109644148B (en) * | 2016-08-22 | 2021-04-09 | 三菱电机株式会社 | Communication apparatus and band control method |
GB2576633B (en) * | 2018-08-02 | 2024-10-23 | Idera Inc | Rate limiter for database access |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020194354A1 (en) * | 2001-04-19 | 2002-12-19 | Discreet Logic Inc. | Displaying image data |
US20060041637A1 (en) * | 2004-08-18 | 2006-02-23 | Jerrard-Dunne Stanley K | Reverse proxy portlet with rule-based, instance level configuration |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845084A (en) | 1996-04-18 | 1998-12-01 | Microsoft Corporation | Automatic data display formatting with a networking application |
US6892226B1 (en) * | 1997-03-27 | 2005-05-10 | Intel Corporation | System for delivery of dynamic content to a client device |
US6742047B1 (en) * | 1997-03-27 | 2004-05-25 | Intel Corporation | Method and apparatus for dynamically filtering network content |
US6073142A (en) | 1997-06-23 | 2000-06-06 | Park City Group | Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments |
US6366947B1 (en) * | 1998-01-20 | 2002-04-02 | Redmond Venture, Inc. | System and method for accelerating network interaction |
US5987610A (en) | 1998-02-12 | 1999-11-16 | Ameritech Corporation | Computer virus screening methods and systems |
US6141686A (en) * | 1998-03-13 | 2000-10-31 | Deterministic Networks, Inc. | Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control |
US6460050B1 (en) | 1999-12-22 | 2002-10-01 | Mark Raymond Pace | Distributed content identification system |
US6901519B1 (en) | 2000-06-22 | 2005-05-31 | Infobahn, Inc. | E-mail virus protection system and method |
US7039678B1 (en) * | 2000-09-07 | 2006-05-02 | Axis Mobile, Ltd. | E-mail proxy |
US20030110272A1 (en) * | 2001-12-11 | 2003-06-12 | Du Castel Bertrand | System and method for filtering content |
DE60208786T2 (en) * | 2002-04-05 | 2006-09-28 | Telefonaktiebolaget Lm Ericsson (Publ) | TRANSFER CONTROL FOR OBJECTS IN A COMMUNICATION NETWORK |
US7747729B2 (en) * | 2002-06-14 | 2010-06-29 | Hanoch Levy | Determining client latencies over a network |
US20050188007A1 (en) * | 2004-02-24 | 2005-08-25 | Rich Warner | System and method for embedding data transmission in a web page |
EP1825388A4 (en) * | 2004-11-17 | 2010-07-28 | Univ California | SYSTEM AND METHOD FOR OBTAINING A WEB PAGE |
US20060294223A1 (en) * | 2005-06-24 | 2006-12-28 | Microsoft Corporation | Pre-fetching and DNS resolution of hyperlinked content |
-
2007
- 2007-06-21 US US11/766,698 patent/US8521891B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020194354A1 (en) * | 2001-04-19 | 2002-12-19 | Discreet Logic Inc. | Displaying image data |
US20060041637A1 (en) * | 2004-08-18 | 2006-02-23 | Jerrard-Dunne Stanley K | Reverse proxy portlet with rule-based, instance level configuration |
Also Published As
Publication number | Publication date |
---|---|
US8521891B1 (en) | 2013-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10013502B1 (en) | Preloading resources of a web page | |
EP1320972B1 (en) | Network server | |
US8949258B2 (en) | Techniques to manage file conversions | |
US8521891B1 (en) | Network browser system, method, and computer program product for conditionally loading a portion of data from a network based on a data transfer rate | |
US20100161547A1 (en) | Personalized Web Feed Views | |
US10637910B1 (en) | Method for dynamically generating information objects based on a restful subscription request | |
US20090003362A1 (en) | Event notification control based on data about a user's communication device stored in a user notification profile | |
US10659411B2 (en) | Notification forwarding | |
US6751633B2 (en) | Information processing apparatus, information transmitting method, computer readable recording medium, and program for allowing computer to execute the information transmitting method | |
US20140208193A1 (en) | Method and electronic device for sharing resource file data | |
EP3080722B1 (en) | Web page rendering on wireless devices | |
US7925934B2 (en) | Information providing system, information providing device, appropriateness judgment information generation method and appropriateness judgment information generation process program | |
US8863009B2 (en) | Method and apparatus for integrating social networking staus updates with contact data at a communication device | |
US20090031005A1 (en) | Portal COM Module | |
WO2005022411A1 (en) | Interface for transcoding system | |
US20090193030A1 (en) | electronic device, a database, system, and method for presenting the content of a file to a user | |
WO2021005808A1 (en) | Information processing device, information processing method, and program | |
EP1821193B1 (en) | Adaptive configuration of imaging devices | |
US9215150B2 (en) | Feature set negotiation framework | |
US20080174804A1 (en) | Method and System for Transmitting Print Information Between A Client and A Server Over A Wide Area Network | |
EP2504778A1 (en) | Method and apparatus for providing a context resource description language and framework for supporting the same | |
US9128808B2 (en) | Computer readable storage medium for registration of site information and a computer to register site information | |
CN113778504B (en) | Publishing method, publishing system and routing device | |
KR100933477B1 (en) | File sending server | |
JP5251753B2 (en) | Terminal, request transmission method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MCAFEE, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHINDE, RAJESH;MARRI, SRIKANTH CHOWDARY;REEL/FRAME:019462/0497 Effective date: 20070621 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: MCAFEE, LLC, CALIFORNIA Free format text: CHANGE OF NAME AND ENTITY CONVERSION;ASSIGNOR:MCAFEE, INC.;REEL/FRAME:043665/0918 Effective date: 20161220 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: SECURITY INTEREST;ASSIGNOR:MCAFEE, LLC;REEL/FRAME:045056/0676 Effective date: 20170929 Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK Free format text: SECURITY INTEREST;ASSIGNOR:MCAFEE, LLC;REEL/FRAME:045055/0786 Effective date: 20170929 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MCAFEE, LLC;REEL/FRAME:054206/0593 Effective date: 20170929 Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MCAFEE, LLC;REEL/FRAME:055854/0047 Effective date: 20170929 |
|
AS | Assignment |
Owner name: MCAFEE, LLC, CALIFORNIA Free format text: RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:054238/0001 Effective date: 20201026 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
AS | Assignment |
Owner name: MCAFEE, LLC, CALIFORNIA Free format text: RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:059354/0213 Effective date: 20220301 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT, NEW YORK Free format text: SECURITY INTEREST;ASSIGNOR:MCAFEE, LLC;REEL/FRAME:059354/0335 Effective date: 20220301 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT, NEW YORK Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:MCAFEE, LLC;REEL/FRAME:060792/0307 Effective date: 20220301 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |