WO2016018291A1 - Modifying web pages based upon importance ratings and bandwidth - Google Patents

Modifying web pages based upon importance ratings and bandwidth Download PDF

Info

Publication number
WO2016018291A1
WO2016018291A1 PCT/US2014/048849 US2014048849W WO2016018291A1 WO 2016018291 A1 WO2016018291 A1 WO 2016018291A1 US 2014048849 W US2014048849 W US 2014048849W WO 2016018291 A1 WO2016018291 A1 WO 2016018291A1
Authority
WO
WIPO (PCT)
Prior art keywords
web page
content elements
subset
bandwidth
received
Prior art date
Application number
PCT/US2014/048849
Other languages
French (fr)
Inventor
Elad LEVI
Avigad MIZRAHI
Ran BAR ZIK
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2014/048849 priority Critical patent/WO2016018291A1/en
Priority to US15/326,155 priority patent/US10241982B2/en
Publication of WO2016018291A1 publication Critical patent/WO2016018291A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Definitions

  • FIG. 1 is a block diagram depicting an example environment in which various embodiments may be implemented.
  • FIG. 2 is a block diagram depicting an example of a system to modify web pages based upon importance ratings and bandwidth.
  • FIG. 3 is a block diagram depicting an example data structure for a system to modify web pages based upon importance ratings and bandwidth.
  • FIG. 4 is a block diagram depicting a memory resource and a processing resource according to an example.
  • FIG. 5 illustrates an example of modifying web pages based upon importance ratings and bandwidth.
  • FIG. 6 is a flow diagram depicting steps taken to implement an example.
  • Content hosting services can provide via the internet content to be consumed by mobile computing devices.
  • Such content can be provided via web pages, and via web applications enabled by the web pages.
  • These web pages may include HTML, Cascading Style Sheets, JavaScript and content elements such as images, videos, and fonts.
  • the images, videos and other content elements can take up much of the internet bandwidth available to users of the mobile computing devices.
  • Users that are experiencing unreliable internet quality e.g., due to distance from a cellular ceil, atmospheric interferences, constraints of the client device or provider, network load, etc., may experience very fast internet connection for one moment and low bandwidth connection the next moment.
  • Such occurrences diminish the experience for the mobile device user, and will likely result in the user decreasing his or her usage of the web pages and hosted web applications that are slow or inconsistent in uploading and execution due to the high bandwidth content.
  • various embodiments described in more detail below provide a system and a method to enable modification of web pages based upon importance ratings and bandwidth measurements.
  • a web page, and a plurality of content elements as candidates for incorporation into the web page are received.
  • a user-assigned importance rating for each of the received content elements is received.
  • For each of the received content elements a reduced- sized version of the content element, smaller than the content element as received, is created.
  • a web page request is received from a requestor computing device and bandwidth available to the requestor computing device is measured.
  • the web page is modified based upon the importance rating and the bandwidth measurement.
  • a predetermined importance rating threshold for identifying high priority candidate content elements is accessed, and the web page is modified by including a subset of the plurality of content elements having a rating exceeding the importance rating threshold.
  • the subset of content elements that is included in the web page is a mix of as-received size content elements and modified-size content elements, such that the cumulative size of the subset content elements does not exceed a predetermined size limit for the subset that correlates with the measured bandwidth.
  • the web page is modified by incorporating all reduced-sized versions of content elements.
  • a predetermined importance rating threshold for identifying high priority content elements is accessed, high priority content elements are identified according to the importance ratings and the importance rating threshold, and the web page is modified such that each of the high priority content elements is incorporated at the as-received resolution.
  • the web page that is modified is a responsive design web page that is adaptable such that the layout of the web page will vary according to the device-type of the requestor computing device.
  • the responsive design web page includes design information indicating a number of the plurality of candidate content elements to be included in the web page.
  • reduced- sized versions of image and/or video content elements are created, to be smaller than the content elements as received, by resizing, changing color depth of, or changing encoding of the content elements as received.
  • the web page that is modified as described in the preceding paragraph is a second web page, and the measurement of bandwidth is determined based upon a sending of a first web page to the requestor computing device in advance of the second web page.
  • bandwidth is measured responsive to a determination that a first attempt to load the web page at the requestor computing device failed to occur within a predetermined loading duration, and wherein the modification engine sends the modified web page to the requestor computing device as a second attempt.
  • examples described herein may present an automated and efficient manner for application development teams to adapt web pages for users with unstable or low bandwidth connections.
  • Disclosed examples will enable internet hosting providers to create low or medium bandwidth versions of resources and serve them to users dynamically according to the bandwidth measurements and user-assigned importance ratings, allowing for changes to the resource even in the middle of the web page loading. Examples described herein may further help users and developers to deal with unstable or low internet connection in a way that does not require user action and enables positive user experiences. Developer-user satisfaction with development software programs and other development products and services that utilize the examples described herein should increase. Likewise, consumer-user satisfaction with the software programs developed utilizing the examples described herein, and with the computing devices upon which such software programs are executed or displayed, should increase.
  • Environment describes an environment in which various embodiments may be implemented.
  • the second section labeled “Components,” describes examples of various physical and logical components for implementing various embodiments.
  • the third section labeled “Illustrative Example,” presents an example of modifying web pages based upon importance ratings and bandwidth.
  • the fourth section labeled “Operation,” describes steps taken to implement various embodiments.
  • FIG. 1 depicts an example environment 100 in which embodiments may be implemented as a system 102 to modify web pages based upon importance ratings and bandwidth.
  • Environment 100 is show to include computing device 104, client devices 106, 108, and 1 10, server device 1 12, and server devices 1 14.
  • Components 104-1 14 are interconnected via link 1 16.
  • Link 1 16 represents generally any infrastructure or combination of
  • infrastructures configured to enable an electronic connection, wireless connection, other connection, or combination thereof, to enable data communication between components 104 106 108 1 10 1 12 1 14.
  • Such infrastructure or infrastructures may include, but are not limited to, one or more of a cable, wireless, fiber optic, or remote connections via telecommunication link, an infrared link, or a radio frequency link.
  • link 1 16 may represent the internet, one or more intranets, and any intermediate routers, switches, and other interfaces.
  • an "electronic connection” refers generally to a transfer of data between components, e.g., between two computing devices, that are connected by an electrical conductor.
  • a “wireless connection” refers generally to a transfer of data between two components, e.g., between two computing devices, that are not directly connected by an electrical conductor.
  • a wireless connection may be via a wireless communication protocol or wireless standard for exchanging data.
  • Client devices 106-1 10 represent generally any computing device with which a user may interact to communicate with other client devices, server device 1 12, and/or server devices 1 14 via link 1 16.
  • Server device 1 12 represents generally any- computing device configured to serve an application and corresponding data for consumption by components 104-1 10.
  • Server devices 1 14 represent generally a group of computing devices collectively configured to serve an application and corresponding data for consumption by components 104-1 10.
  • Computing device 104 represents generally any computing device with which a user may interact to communicate with client devices 106-1 10, server device 1 12, and/or server devices 1 14 via link 1 16.
  • Computing device 104 is shown to include core device components 1 18, Core device components 1 18 represent generally the hardware and programming for providing the computing functions for which device 104 is designed.
  • Such hardware can include a processor and memory, a display apparatus 120, and a user interface 122.
  • the programming can include an operating system and applications.
  • Display apparatus 120 represents generally any combination of hardware and programming configured to exhibit or present a message, image, view, or other presentation for perception by a user, and can include, but is not limited to, a visual, tactile or auditory display.
  • the display apparatus 120 may be or include a monitor, a touchscreen, a projection device, a touch/sensory display device, or a speaker.
  • User interface 122 represents generally any combination of hardware and programming configured to enable interaction between a user and device 104 such that the user may effect operation or control of device 104.
  • user interface 122 may be, or include, a keyboard, keypad, or a mouse, in some examples, the functionality of display apparatus 120 and user interface 122 may be combined, as in the case of a touchscreen apparatus that may enable presentation of images at device 104, and that also may enable a user to operate or control functionality of device 104.
  • System 102 represents generally a combination of hardware and programming configured to enable modification of web pages based upon importance ratings and bandwidth.
  • System 102 is to receive a web page and a plurality of content elements as candidates for incorporation into the web page.
  • System 102 is to receive a user-assigned importance rating for each of the received content elements, and, for each of the received content elements, create a reduced-sized version of the content element that is smaller than the content element as received.
  • System 102 is to receive a web page request from a requestor computing device and measure the network bandwidth available to the device.
  • System 102 is to modify the web page based upon the user-supplied importance ratings and the bandwidth measurement.
  • system 102 may be wholly integrated within core device components 1 18.
  • system 102 may be implemented as a component of any of computing device 104, client devices 106-1 10, server device 1 12, or server devices 1 14 where it may take action based in part on data received from core device components 1 18 via link 1 16.
  • system 102 may be distributed across computing device 104, and any of client devices 106-1 10, server device 1 12, or server devices 1 14.
  • components that implement receiving a web page and a set of content elements as candidates for incorporation into the web page, receiving a user-assigned importance rating for each of the received content elements, and creating a reduced-sized versions of the content elements that are smaller than the content elements as received may be included within a server device 1 12.
  • components that implement receiving a web page request from a requestor computing device, and measuring bandwidth available to the device, and modifying the web page based upon the importance ratings and the bandwidth measurement may be components included within computing device 104.
  • FIGS. 2, 3, and 4 depict examples of physical and logical components for implementing various embodiments, in FIG. 2 various components are identified as engines 202 204 206 208 210.
  • engines 202 204 206 208 210 focus is on each engine's designated function.
  • the term engine refers generally to a combination of hardware and programming configured to perform a designated function.
  • the hardware of each engine for example, may include one or both of a processor and a memory, while the programming may be code stored on that memory and executable by the processor to perform the designated function.
  • FIG. 2 is a block diagram depicting components of a system 102 to modify web pages based upon importance ratings and bandwidth
  • system 102 includes design engine 202, rating engine 204, reduction engine 206, measurement engine 208, and modification engine 210.
  • engines 202 204 206 208 210 may access data repository 212.
  • Repository 212 represents generally any memory accessible to system 102 that can be used to store and retrieve data.
  • design engine 202 represents generally a combination of hardware and programming configured to receive a web page and a plurality of content elements as candidates for incorporation into the web page.
  • a "web page” refers generally to a computer file or document that incorporates or references content elements and programming for hyperlinks. in examples, a "web page” may include or enable a "web application.”
  • a "web application” refers generally to a computer software application that is coded in a browser-supported language (such as XML, HTML, or HTML with
  • JavaScript JavaScript and is reliant on a web browser application to render the application executable or presentable.
  • Examples of web pages that may include or facilitate web applications are webmail pages, online search engine pages, online sale pages, auction sites pages, and wiki pages.
  • a “content element” refers generally to any content element that is displayable at a display device as or after the web page is interpreted by a web browser. Content elements may be or include, but are not limited to, style sheets, scripts, images, and videos.
  • a “hyperlink” refers generally to a reference to a certain content elements of a web page that, when activated or interacted with via user interaction (including but not limited to, clicking on, depressing, or hovering over the hyperlink content element via a user interface device), causes display of new or additional content.
  • new content that the hyperlink points to may be a new web page, a specific content element within a new web page, or a specific content element or set of content elements within a currently displayed web page.
  • the web page is a responsive design web page
  • the received content elements include image or video content elements.
  • a "responsive design web page” refers generally to a web page that has been coded or designed to for automatic adjustment of positioning of content elements or adjustment of relative proportions of content elements to provide an optimal viewing experience for various display devices, e.g., to provide for readability and easy navigation with a minimum of resizing, panning, and scrolling.
  • design engine 202 may determine a type of display device and adjust positioning or relative proportions of content elements according to the type or dimensions of the determined display device type, in other examples, design engine 202 may determine a type of computing device (e.g., a smart phone, laptop computer, or desktop computer with monitor, etc.) that is requesting or accessing the web page, and adjust positioning or relative proportions of content elements according to the type of computing device requesting or accessing the web page.
  • a type of computing device e.g., a smart phone, laptop computer, or desktop computer with monitor, etc.
  • Rating engine 204 represents generally a combination of hardware and programming configured to receive a user-assigned importance rating for each of the received content elements.
  • the rating engine 204 is to provide, to a graphic user interface ("GUI") to be used by the user to input the importance ratings for the content elements.
  • GUI graphic user interface
  • a graphic user interface, or “GUI” refers generally to any type of display caused by an application that can enable a user to interact with the application via visual properties of the display.
  • an "importance rating” refers generally to any ranking, a score, a grade, a value, or other comparative assessment of importance of a content element relative to other content elements.
  • an importance rating may be or include an importance rating within established range (e.g., "an importance rating between "x and "y”), wherein "x" and “y” are integers and "y” has a value greater than "x.”
  • the importance rating methodology may be:
  • IR Importance Rating
  • items with value 1 may be deemed the most important while items with a lower value (e.g., "0.3") may be deemed less important.
  • items with a lower value e.g., "0.3”
  • left side images that are to be displayed as a side bar menu may receive a value of "1 ", while other items on the web page may receive lower rankings such as "0.3", "0.7”, etc.).
  • an importance rating may be or include a numerical score (e.g., 90%), a letter grade (e.g., "A"), or a pass/fail rating.
  • importance rating methodologies may be (but are not limited to):
  • Reduction engine 206 represents generally a combination of hardware and programming configured to, for each of the received content elements, create a reduced-sized version of the content element that is smaller than the content element as it was received.
  • reduction engine 206 is to create reduced- sized versions of the content elements as received by at least one of resizing, changing color depth of, and changing encoding of one or more of the received content elements.
  • Measurement engine 208 represents generally a combination of hardware and programming configured to receive a web page request from a requestor computing device and measure bandwidth available to the device.
  • bandwidth refers generally to a rate of data transfer across a network, e.g., a throughput rate that measures an amount of data that can be carried from one point to another in a given time period.
  • bandwidth may be a bit rate measured in bits of data per second (bit/s).
  • bandwidth may be a byte rate measured in bytes of data per second (B/s).
  • measurement engine 208 may operate to classify measurements of bandwidth with certain pre- established ranges as a "low bandwidth”, “medium bandwidth”, or "high bandwidth” situations.
  • measurement engine 208 is to receive from a requestor computing device a request for a first web page that is to be modified, and is to determine the bandwidth measurement based upon the sending of a second web page that is distinct from the first web page. In another example, measurement engine 208 is to measure bandwidth responsive to a determination that a first attempt to load the requested web page at the requestor computing device failed to occur within a predetermined loading duration. Other measurement methodologies are possible and contemplated by this disclosure.
  • Modification engine 210 represents generaily a combination of hardware and programming configured to modify the web page based upon the user-assigned importance ratings and the bandwidth measurement, and send the modified web page to the requestor computing device.
  • modification engine 210 is to determine a number of content elements to be included within the modified web page, to determine a subset of the plurality of content elements that is the number of content elements from the plurality having high rankings according to a ranking methodology, and to modify the web page by including the subset, in an example, modification engine 210 may determine the number of content elements to be included in the modified web page based upon design information included within the web page.
  • modification engine 210 is to, in determining the subset of content elements with the high rankings according to a ranking methodology, create a mix of as-received size content elements and modified-size content elements such that the cumulative size of the subset does not exceed a
  • predetermined size limit for the subset that corresponds with the measured bandwidth is the predetermined size limit for the subset that corresponds with the measured bandwidth.
  • modification engine 210 is to select for inclusion in the web page a subset of the plurality of received content elements, with each member of the subset having an importance rating exceeding a predetermined importance rating threshold, and with the members of the subset cumulatively not exceeding a predetermined size limit corresponding to the measured bandwidth.
  • modification engine 210 is to, responsive to determining the bandwidth measurement is below a pre-established bandwidth threshold, modify the web page by incorporating ail reduced-sized versions of content elements.
  • modification engine 210 is to modify the web page to incorporate at as-received resolution or size all content that has been identified as high priority content.
  • modification engine 210 is to access a predetermined importance rating threshold for the content elements, and to identify the high priority content elements according to the user-assigned importance ratings and the importance rating threshold.
  • design engine 202 may receive the web page and the plurality of content elements
  • rating engine 204 may receive the user-assigned importance ratings
  • measurement engine 208 may receive the web page request from a requestor computing device and measure bandwidth available to the device
  • modification engine 210 may send the modified web page based to the requestor computing device via a networking protocol.
  • the networking protocol may include, but is not limited to Transmission Control Protocol/Internet Protocol ("TCP/IP”), HyperText Transfer Protocol (“HTTP”), Simple Mail Transfer Protocol (“SMTP”), Extensible Messaging and Presence Protocol (“XMPP”) and/or Session Initiation Protocol (“SIP”).
  • FIG. 3 depicts an example implementation of data repository 212.
  • data repository 212 includes First Web Page 302, Received Content Elements 304, Images Content 306, Video Content 308, Importance Ratings input GUI 310, User-Assigned Importance Ratings 312, Reduced-Sized Versions of Content Elements 314, Web Page Request 316, Bandwidth Measurement 318, Failed Loading Data 320, Target Loading Duration 322, Second Web Page 324, Rating Threshold 326, Modified First Web Page 328, High Importance Subset 330, Combined Elements Size Limit 332, and Target Number of Content Elements 334.
  • design engine 202 FIG. 3 in view of FIG. 2, in one example, design engine 202 (FIG.
  • Design engine 202 additionally receives a set of content elements 304 as candidates for incorporation into the first web page 302. in this example, the set of content elements 304 includes image content 306 and video content 308 elements.
  • rating engine 204 sends to an importance rating-provider computing device (e.g., server device 1 12, FIG. 1 ) a GUI 310 to be utilized by a user to input the importance ratings for the content elements.
  • Rating engine 204 receives (e.g., via link 1 16, FIG. 1 ) a user-assigned importance rating 312 for each of the received content elements 304.
  • reduction engine 206 creates, for each of the received content elements 304, a reduced-sized version 314 of the content element that is smaller than size of the content element as received 304.
  • reduction engine 206 reduces size of the received image and/or video content elements 306 308 from the as-received size 304 by changing color depth, changing encoding of, subsampiing, dovvnsampling, or otherwise resizing to produce the reduced-size versions 314.
  • measurement engine 208 receives (e.g., via link 1 16, FIG. 1 ) a web page request 316 from a requestor computing device (e.g., client device 106, FIG. 1 ) and measures bandwidth 318 available to the requestor computing device, in one example, measurement engine 208 receives failed loading data 320 indicative that an attempt to load the first web page 302 at the requestor computing device failed to occur within a predetermined target loading duration 322. in this example, measurement engine 208 determines the measurement of bandwidth 318 available to the requestor computing device based upon such failed loading data 320. In another example, measurement engine 208 sends a second web page 324, that is distinct from the first web page 302, to the requestor computing device, and determines the bandwidth measurement 318 based upon data indicative of time to send the second web page 324.
  • a requestor computing device e.g., client device 106, FIG. 1
  • measurement engine 208 receives failed loading data 320 indicative that an attempt to load the first web page 302 at the requestor computing
  • modification engine 210 accesses a predetermined importance rating threshold 326 for identifying high priority content elements from within the received image and video content elements 304.
  • Modification engine 210 modifies the first web page 302 to create a modified first web page 328 by including a high importance subset 330 of the received set 304 of content elements, wherein each content element of the high importance subset 330 has a user-assigned importance rating 312 that exceeds the pre-established importance rating threshold 326.
  • the high importance subset 330 of content elements includes a mix of as-received size content elements 304 and reduced-sized versions 314 of the content elements such that the cumulative size of the high importance subset 330 of content elements does not exceed a predetermined combined elements size limit 332 for the subset 330 that corresponds to the measured bandwidth.
  • modification engine 210 determines the high importance subset 330 in consideration of a target number 334 of content elements to be included within the first web page 302. in this example, the predetermined combined elements size limits, corresponding to measured bandwidths, for the high importance subset 330 and the target number 334 are stored within the first web page 302 for access by modification engine 210.
  • engines 202 204 206 208 210 were described as combinations of hardware and programming. Engines 202 204 206 208 210 may be implemented in a number of fashions. Looking at FIG. 4 the programming may be processor executable instructions stored on a tangible memory resource 402 and the hardware may include a processing resource 404 for executing those instructions. Thus memory resource 402 can be said to store program instructions that when executed by processing resource 404 implement system 102 of FIGS. 1 and 2.
  • Memory resource 402 represents generally any number of memory components capable of storing instructions that can be executed by processing resource 404.
  • Memory resource 402 is non-transitory in the sense that it does not encompass a transitory signal but instead is made up of more or more memory components configured to store the relevant instructions.
  • Memory resource 402 may be implemented in a single device or distributed across devices.
  • processing resource 404 represents any number of processors capable of executing instructions stored by memory resource 402.
  • Processing resource 404 may be integrated in a single device or distributed across devices. Further, memory resource 402 may be fully or partially integrated in the same device as processing resource 404, or it may be separate but accessible to that device and processing resource 404.
  • the program instructions can be part of an installation package that when installed can be executed by processing resource 404 to implement system 102.
  • memory resource 402 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed.
  • the program instructions may be part of an application or applications already installed.
  • memory resource 402 can include integrated memory such as a hard drive, solid state drive, or the like.
  • the executable program instructions stored in memory resource 402 are depicted as design module 408, rating module 408, reduction module 410, measurement module 412, and modification module 414.
  • Design module 406 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to design engine 202 of FIG. 2.
  • Rating module 408 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to rating engine 204 of FIG. 2.
  • Reduction module 410 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to reduction engine 206 of FIG. 2.
  • Measurement module 412 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to measurement engine 208 of FIG. 2.
  • Modification module 414 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to modification engine 210 of FIG. 2.
  • FIG. 5 illustrates an example of modifying web pages based upon importance ratings and bandwidth, in an example, system 102 (FIG. 2) sends, via a network 1 16 (FIG. 1 ), a first web page to a page-requestor computing device, and determines a measurement of bandwidth 502 available to the page- requestor computing device based upon the sending of the first web page.
  • system 102 sends, via a network 1 16 (FIG. 1 ), a first web page to a page-requestor computing device, and determines a measurement of bandwidth 502 available to the page- requestor computing device based upon the sending of the first web page.
  • System 102 receives, via a network 1 16 (FIG. 1 ), a second web page 504 that is a responsive design web page.
  • Second web page 504 includes templates for display of content elements at various types of computing devices, including a smart phone display template 504A, a smart watch display template 504B, and a tablet display template 504C.
  • System 102 additionally receives, via a network 1 16 (FIG. 1 ), a set of content elements 506 that are candidates for incorporation into the second page 504, and a user-assigned importance rating 508 for each of the received content elements 506.
  • System 102 creates, for each of the received content elements 506, a reduced-sized version 510 that is smaller than the content element's as-received size 512.
  • System 102 modifies the second web page 504 in consideration of the importance ratings 508 and the bandwidth measurement 502. in an example, system 102 may selects for inclusion in the second web page 504 a subset 514 of the set of content elements 506. in this example, each member of the subset 514 is selected according to the members having an importance rating 508 exceeding a predetermined importance rating threshold 516 of "50", and with the total size of the subset cumulatively not exceeding a predetermined size limit "Y" 518 that
  • FIG. 6 is a flow diagram of steps taken to implement a method for modifying web pages based upon importance ratings and bandwidth.
  • FIG. 6 reference may be made to the components depicted in FIGS. 2 and 4. Such reference is made to provide contextual examples and not to limit the manner in which the method depicted by FIG. 6 may be implemented.
  • a web page and a set of content elements as candidates for incorporation into the web page are received (block 602).
  • design engine 202 (FIG. 2) or design module 406 (FIG. 4)
  • processing resource 404 may be
  • a user-assigned importance rating is received for each of the received content elements (block 604).
  • rating engine 204 (FIG. 2) or rating module 408 (FIG. 4), when executed by processing resource 404, may be responsible for implementing block 604.
  • a reduced-sized version of each of the received content elements is created (block 606).
  • reduction engine 206 (FIG. 2) or reduction module 410 (FIG. 4), when executed by processing resource 404, may be responsible for implementing block 606.
  • a web page request is received from a requestor computing device, and bandwidth available to the requestor computing device is measured (block 608).
  • the web page is modified based upon the importance ratings and the bandwidth measurement (block 610).
  • modification engine 210 (FIG. 2) or modification module 414 (FIG. 4), when executed by processing resource 404, may be responsible for implementing block 610.
  • FiGS. 1 -8 aid in depicting the architecture, functionality, and operation of various embodiments, in particular, FiGS. 1 -4 depict various physical and logical components.
  • Various components are defined at least in part as programs or programming. Each such component, portion thereof, or various combinations thereof may represent in whole or in part a module, segment, or portion of code that comprises one or more executable instructions to implement any specified logical funcfion(s). Each component or various combinations thereof may represent a circuit or a number of interconnected circuits to implement the specified logical function(s).
  • Embodiments can be realized in any memory resource for use by or in connection with processing resource.
  • a "processing resource" is an instruction execution system such as a computer/processor based system or an ASIC
  • a "memory resource” is any non-transitory storage media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system.
  • the term “non-transitory” is used only to clarify that the term media, as used herein, does not encompass a signal.
  • the memory resource can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, hard drives, solid state drives, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory, flash drives, and portable compact discs.
  • FIG. 6 shows a specific order of execution
  • the order of execution may differ from that which is depicted.
  • the order of execution of two or more blocks or arrows may be scrambled relative to the order shown.
  • two or more blocks shown in succession may be executed

Abstract

In one example of the disclosure, a web page and a plurality of content elements that are candidates for incorporation into the web page are received. A user-assigned importance rating for each of the received content elements is received. A reduced-sized version of the content element is created for each of the received content elements. A web page request is received from a requestor computing device and bandwidth available to the device is measured. The web page is modified based upon the importance ratings and the bandwidth measurement.

Description

[0001 ] Usage of mobile computing devices, such as smart phones, tablets, e- readers, GPS systems, video games and wireless home appliances, to access the internet is growing exponentially. Factors contributing to the rapid growth include proliferation of better devices and mobile applications, availability of better data coverage, increased mobile e-commerce, and a trend towards increased storage of personal content in the cloud.
DRAWINGS
[0002] FIG. 1 is a block diagram depicting an example environment in which various embodiments may be implemented.
[0003] FIG. 2 is a block diagram depicting an example of a system to modify web pages based upon importance ratings and bandwidth.
[0004] FIG. 3 is a block diagram depicting an example data structure for a system to modify web pages based upon importance ratings and bandwidth.
[0005] FIG. 4 is a block diagram depicting a memory resource and a processing resource according to an example.
[0006] FIG. 5 illustrates an example of modifying web pages based upon importance ratings and bandwidth.
[0007] FIG. 6 is a flow diagram depicting steps taken to implement an example.
[0008] INTRODUCTION: Content hosting services can provide via the internet content to be consumed by mobile computing devices. Such content can be provided via web pages, and via web applications enabled by the web pages. These web pages may include HTML, Cascading Style Sheets, JavaScript and content elements such as images, videos, and fonts.
[0009] However, the images, videos and other content elements can take up much of the internet bandwidth available to users of the mobile computing devices. Users that are experiencing unreliable internet quality, e.g., due to distance from a cellular ceil, atmospheric interferences, constraints of the client device or provider, network load, etc., may experience very fast internet connection for one moment and low bandwidth connection the next moment. Such occurrences diminish the experience for the mobile device user, and will likely result in the user decreasing his or her usage of the web pages and hosted web applications that are slow or inconsistent in uploading and execution due to the high bandwidth content.
[0010] To address these issues, various embodiments described in more detail below provide a system and a method to enable modification of web pages based upon importance ratings and bandwidth measurements. In an example, a web page, and a plurality of content elements as candidates for incorporation into the web page, are received. A user-assigned importance rating for each of the received content elements is received. For each of the received content elements, a reduced- sized version of the content element, smaller than the content element as received, is created. A web page request is received from a requestor computing device and bandwidth available to the requestor computing device is measured. The web page is modified based upon the importance rating and the bandwidth measurement.
[0011] In examples, a predetermined importance rating threshold for identifying high priority candidate content elements is accessed, and the web page is modified by including a subset of the plurality of content elements having a rating exceeding the importance rating threshold. The subset of content elements that is included in the web page is a mix of as-received size content elements and modified-size content elements, such that the cumulative size of the subset content elements does not exceed a predetermined size limit for the subset that correlates with the measured bandwidth.
[0012] In examples, responsive to determining the bandwidth measurement is below a pre-established bandwidth threshold, the web page is modified by incorporating all reduced-sized versions of content elements. In another example, a predetermined importance rating threshold for identifying high priority content elements is accessed, high priority content elements are identified according to the importance ratings and the importance rating threshold, and the web page is modified such that each of the high priority content elements is incorporated at the as-received resolution.
[0013] In examples, the web page that is modified is a responsive design web page that is adaptable such that the layout of the web page will vary according to the device-type of the requestor computing device. In an example, the responsive design web page includes design information indicating a number of the plurality of candidate content elements to be included in the web page. In examples, reduced- sized versions of image and/or video content elements are created, to be smaller than the content elements as received, by resizing, changing color depth of, or changing encoding of the content elements as received.
[0014] In examples, the web page that is modified as described in the preceding paragraph is a second web page, and the measurement of bandwidth is determined based upon a sending of a first web page to the requestor computing device in advance of the second web page. In other examples, bandwidth is measured responsive to a determination that a first attempt to load the web page at the requestor computing device failed to occur within a predetermined loading duration, and wherein the modification engine sends the modified web page to the requestor computing device as a second attempt.
[0015] In this manner, examples described herein may present an automated and efficient manner for application development teams to adapt web pages for users with unstable or low bandwidth connections. Disclosed examples will enable internet hosting providers to create low or medium bandwidth versions of resources and serve them to users dynamically according to the bandwidth measurements and user-assigned importance ratings, allowing for changes to the resource even in the middle of the web page loading. Examples described herein may further help users and developers to deal with unstable or low internet connection in a way that does not require user action and enables positive user experiences. Developer-user satisfaction with development software programs and other development products and services that utilize the examples described herein should increase. Likewise, consumer-user satisfaction with the software programs developed utilizing the examples described herein, and with the computing devices upon which such software programs are executed or displayed, should increase.
[0016] The following description is broken into sections. The first, labeled
"Environment," describes an environment in which various embodiments may be implemented. The second section, labeled "Components," describes examples of various physical and logical components for implementing various embodiments. The third section, labeled "Illustrative Example," presents an example of modifying web pages based upon importance ratings and bandwidth. The fourth section, labeled "Operation," describes steps taken to implement various embodiments.
[0017] E^svs O SME T: FIG. 1 depicts an example environment 100 in which embodiments may be implemented as a system 102 to modify web pages based upon importance ratings and bandwidth. Environment 100 is show to include computing device 104, client devices 106, 108, and 1 10, server device 1 12, and server devices 1 14. Components 104-1 14 are interconnected via link 1 16.
[0018] Link 1 16 represents generally any infrastructure or combination of
infrastructures configured to enable an electronic connection, wireless connection, other connection, or combination thereof, to enable data communication between components 104 106 108 1 10 1 12 1 14. Such infrastructure or infrastructures may include, but are not limited to, one or more of a cable, wireless, fiber optic, or remote connections via telecommunication link, an infrared link, or a radio frequency link. For example, link 1 16 may represent the internet, one or more intranets, and any intermediate routers, switches, and other interfaces. As used herein an "electronic connection" refers generally to a transfer of data between components, e.g., between two computing devices, that are connected by an electrical conductor. A "wireless connection" refers generally to a transfer of data between two components, e.g., between two computing devices, that are not directly connected by an electrical conductor. A wireless connection may be via a wireless communication protocol or wireless standard for exchanging data.
[0019] Client devices 106-1 10 represent generally any computing device with which a user may interact to communicate with other client devices, server device 1 12, and/or server devices 1 14 via link 1 16. Server device 1 12 represents generally any- computing device configured to serve an application and corresponding data for consumption by components 104-1 10. Server devices 1 14 represent generally a group of computing devices collectively configured to serve an application and corresponding data for consumption by components 104-1 10.
[0020] Computing device 104 represents generally any computing device with which a user may interact to communicate with client devices 106-1 10, server device 1 12, and/or server devices 1 14 via link 1 16. Computing device 104 is shown to include core device components 1 18, Core device components 1 18 represent generally the hardware and programming for providing the computing functions for which device 104 is designed. Such hardware can include a processor and memory, a display apparatus 120, and a user interface 122. The programming can include an operating system and applications. Display apparatus 120 represents generally any combination of hardware and programming configured to exhibit or present a message, image, view, or other presentation for perception by a user, and can include, but is not limited to, a visual, tactile or auditory display. In examples, the display apparatus 120 may be or include a monitor, a touchscreen, a projection device, a touch/sensory display device, or a speaker. User interface 122 represents generally any combination of hardware and programming configured to enable interaction between a user and device 104 such that the user may effect operation or control of device 104. In examples, user interface 122 may be, or include, a keyboard, keypad, or a mouse, in some examples, the functionality of display apparatus 120 and user interface 122 may be combined, as in the case of a touchscreen apparatus that may enable presentation of images at device 104, and that also may enable a user to operate or control functionality of device 104.
[0021] System 102, discussed in more detail below, represents generally a combination of hardware and programming configured to enable modification of web pages based upon importance ratings and bandwidth. System 102 is to receive a web page and a plurality of content elements as candidates for incorporation into the web page. System 102 is to receive a user-assigned importance rating for each of the received content elements, and, for each of the received content elements, create a reduced-sized version of the content element that is smaller than the content element as received. System 102 is to receive a web page request from a requestor computing device and measure the network bandwidth available to the device. System 102 is to modify the web page based upon the user-supplied importance ratings and the bandwidth measurement.
[0022] In some examples, system 102 may be wholly integrated within core device components 1 18. in other examples, system 102 may be implemented as a component of any of computing device 104, client devices 106-1 10, server device 1 12, or server devices 1 14 where it may take action based in part on data received from core device components 1 18 via link 1 16. In other examples, system 102 may be distributed across computing device 104, and any of client devices 106-1 10, server device 1 12, or server devices 1 14. In a particular example, components that implement receiving a web page and a set of content elements as candidates for incorporation into the web page, receiving a user-assigned importance rating for each of the received content elements, and creating a reduced-sized versions of the content elements that are smaller than the content elements as received, may be included within a server device 1 12. Continuing with this particular example, components that implement receiving a web page request from a requestor computing device, and measuring bandwidth available to the device, and modifying the web page based upon the importance ratings and the bandwidth measurement may be components included within computing device 104. Other distributions of system across computing device 104, client devices 106-1 10, server device 1 12, and server devices 1 14 are possible and contemplated by this disclosure, if is noted that ail or portions of the system 102 to modify web pages based upon importance ratings and bandwidth may also be included on client devices 106, 108 or 1 10.
[0023] COMPONENTS: FIGS. 2, 3, and 4 depict examples of physical and logical components for implementing various embodiments, in FIG. 2 various components are identified as engines 202 204 206 208 210. In describing engines 202 204 206 208 210 focus is on each engine's designated function. However, the term engine, as used herein, refers generally to a combination of hardware and programming configured to perform a designated function. As is illustrated later with respect to FIG. 4, the hardware of each engine, for example, may include one or both of a processor and a memory, while the programming may be code stored on that memory and executable by the processor to perform the designated function.
[0024] FIG. 2 is a block diagram depicting components of a system 102 to modify web pages based upon importance ratings and bandwidth, in this example, system 102 includes design engine 202, rating engine 204, reduction engine 206, measurement engine 208, and modification engine 210. In performing their respective functions, engines 202 204 206 208 210 may access data repository 212. Repository 212 represents generally any memory accessible to system 102 that can be used to store and retrieve data. In an example, design engine 202 represents generally a combination of hardware and programming configured to receive a web page and a plurality of content elements as candidates for incorporation into the web page. As used herein, a "web page" refers generally to a computer file or document that incorporates or references content elements and programming for hyperlinks. in examples, a "web page" may include or enable a "web application." As used herein, a "web application" refers generally to a computer software application that is coded in a browser-supported language (such as XML, HTML, or HTML with
JavaScript) and is reliant on a web browser application to render the application executable or presentable. Examples of web pages that may include or facilitate web applications are webmail pages, online search engine pages, online sale pages, auction sites pages, and wiki pages.
[0025] As used herein, a "content element" refers generally to any content element that is displayable at a display device as or after the web page is interpreted by a web browser. Content elements may be or include, but are not limited to, style sheets, scripts, images, and videos. As used herein, a "hyperlink" refers generally to a reference to a certain content elements of a web page that, when activated or interacted with via user interaction (including but not limited to, clicking on, depressing, or hovering over the hyperlink content element via a user interface device), causes display of new or additional content. In examples, new content that the hyperlink points to may be a new web page, a specific content element within a new web page, or a specific content element or set of content elements within a currently displayed web page.
[0026] In a particular example, the web page is a responsive design web page, and the received content elements include image or video content elements. As used herein, a "responsive design web page" refers generally to a web page that has been coded or designed to for automatic adjustment of positioning of content elements or adjustment of relative proportions of content elements to provide an optimal viewing experience for various display devices, e.g., to provide for readability and easy navigation with a minimum of resizing, panning, and scrolling. In examples, design engine 202 may determine a type of display device and adjust positioning or relative proportions of content elements according to the type or dimensions of the determined display device type, in other examples, design engine 202 may determine a type of computing device (e.g., a smart phone, laptop computer, or desktop computer with monitor, etc.) that is requesting or accessing the web page, and adjust positioning or relative proportions of content elements according to the type of computing device requesting or accessing the web page.
[0027] Rating engine 204 represents generally a combination of hardware and programming configured to receive a user-assigned importance rating for each of the received content elements. In examples, the rating engine 204 is to provide, to a graphic user interface ("GUI") to be used by the user to input the importance ratings for the content elements. As used herein, a graphic user interface, or "GUI", refers generally to any type of display caused by an application that can enable a user to interact with the application via visual properties of the display. As used herein, an "importance rating" refers generally to any ranking, a score, a grade, a value, or other comparative assessment of importance of a content element relative to other content elements. In examples, an importance rating may be or include an importance rating within established range (e.g., "an importance rating between "x and "y"), wherein "x" and "y" are integers and "y" has a value greater than "x."
[0028] In one example, the importance rating methodology may be:
® Importance Rating (IR) is a value in the range of 0-1 that indicates the import of the item.
In this example, items with value 1 may be deemed the most important while items with a lower value (e.g., "0.3") may be deemed less important. For instance, left side images that are to be displayed as a side bar menu may receive a value of "1 ", while other items on the web page may receive lower rankings such as "0.3", "0.7", etc.).
[0029] In other examples, an importance rating may be or include a numerical score (e.g., 90%), a letter grade (e.g., "A"), or a pass/fail rating. In examples, importance rating methodologies may be (but are not limited to):
® "A" or "95%<=X<=100%" - importance criteria are evaluated and a content element is evaluated to "A" or 95%<=X<=10Q% of a 100% importance criteria target, such that the content element is deemed very important;
• "Pass" or "75%<=X<=100%" - importance criteria are evaluated and a content element is evaluated to 75%<=X<=1 Q0% of a 100% importance criteria target, such that the content element is deemed of importance; ® "Fail" or "X<=75%" - importance criteria are evaluated and a content element is evaluated to "X<=75%" of a 100% importance criteria target, such that the content element is deemed of low importance.
[0030] Reduction engine 206 represents generally a combination of hardware and programming configured to, for each of the received content elements, create a reduced-sized version of the content element that is smaller than the content element as it was received. In examples, reduction engine 206 is to create reduced- sized versions of the content elements as received by at least one of resizing, changing color depth of, and changing encoding of one or more of the received content elements.
[0031] Measurement engine 208 represents generally a combination of hardware and programming configured to receive a web page request from a requestor computing device and measure bandwidth available to the device. As used herein "bandwidth" refers generally to a rate of data transfer across a network, e.g., a throughput rate that measures an amount of data that can be carried from one point to another in a given time period. In an example, bandwidth may be a bit rate measured in bits of data per second (bit/s). In an example, bandwidth may be a byte rate measured in bytes of data per second (B/s). In other examples, measurement engine 208 may operate to classify measurements of bandwidth with certain pre- established ranges as a "low bandwidth", "medium bandwidth", or "high bandwidth" situations. In an example, measurement engine 208 is to receive from a requestor computing device a request for a first web page that is to be modified, and is to determine the bandwidth measurement based upon the sending of a second web page that is distinct from the first web page. In another example, measurement engine 208 is to measure bandwidth responsive to a determination that a first attempt to load the requested web page at the requestor computing device failed to occur within a predetermined loading duration. Other measurement methodologies are possible and contemplated by this disclosure.
[0032] Modification engine 210 represents generaily a combination of hardware and programming configured to modify the web page based upon the user-assigned importance ratings and the bandwidth measurement, and send the modified web page to the requestor computing device. In an example, modification engine 210 is to determine a number of content elements to be included within the modified web page, to determine a subset of the plurality of content elements that is the number of content elements from the plurality having high rankings according to a ranking methodology, and to modify the web page by including the subset, in an example, modification engine 210 may determine the number of content elements to be included in the modified web page based upon design information included within the web page.
[0033] In another example, modification engine 210 is to, in determining the subset of content elements with the high rankings according to a ranking methodology, create a mix of as-received size content elements and modified-size content elements such that the cumulative size of the subset does not exceed a
predetermined size limit for the subset that corresponds with the measured bandwidth.
[0034] In another example, modification engine 210 is to select for inclusion in the web page a subset of the plurality of received content elements, with each member of the subset having an importance rating exceeding a predetermined importance rating threshold, and with the members of the subset cumulatively not exceeding a predetermined size limit corresponding to the measured bandwidth. In another example, modification engine 210 is to, responsive to determining the bandwidth measurement is below a pre-established bandwidth threshold, modify the web page by incorporating ail reduced-sized versions of content elements.
[0035] In yet another example, modification engine 210 is to modify the web page to incorporate at as-received resolution or size all content that has been identified as high priority content. In this example, modification engine 210 is to access a predetermined importance rating threshold for the content elements, and to identify the high priority content elements according to the user-assigned importance ratings and the importance rating threshold.
[0036] In examples, design engine 202 may receive the web page and the plurality of content elements, rating engine 204 may receive the user-assigned importance ratings, measurement engine 208 may receive the web page request from a requestor computing device and measure bandwidth available to the device, and/or modification engine 210 may send the modified web page based to the requestor computing device via a networking protocol. In examples, the networking protocol may include, but is not limited to Transmission Control Protocol/Internet Protocol ("TCP/IP"), HyperText Transfer Protocol ("HTTP"), Simple Mail Transfer Protocol ("SMTP"), Extensible Messaging and Presence Protocol ("XMPP") and/or Session Initiation Protocol ("SIP").
[0037] FIG. 3 depicts an example implementation of data repository 212. In this example, data repository 212 includes First Web Page 302, Received Content Elements 304, Images Content 306, Video Content 308, Importance Ratings input GUI 310, User-Assigned Importance Ratings 312, Reduced-Sized Versions of Content Elements 314, Web Page Request 316, Bandwidth Measurement 318, Failed Loading Data 320, Target Loading Duration 322, Second Web Page 324, Rating Threshold 326, Modified First Web Page 328, High Importance Subset 330, Combined Elements Size Limit 332, and Target Number of Content Elements 334. Referring to FIG. 3 in view of FIG. 2, in one example, design engine 202 (FIG. 2) receives (e.g., via link 1 16, FIG. 1 ) a first web page 302 that is a responsive design web page. Design engine 202 additionally receives a set of content elements 304 as candidates for incorporation into the first web page 302. in this example, the set of content elements 304 includes image content 306 and video content 308 elements.
[0038] Continuing with the example data repository 212 of FIG. 3 in view of FIG. 2, rating engine 204 sends to an importance rating-provider computing device (e.g., server device 1 12, FIG. 1 ) a GUI 310 to be utilized by a user to input the importance ratings for the content elements. Rating engine 204 receives (e.g., via link 1 16, FIG. 1 ) a user-assigned importance rating 312 for each of the received content elements 304.
[0039] Continuing with the example data repository 212 of FIG. 3 in view of FIG. 2, reduction engine 206 creates, for each of the received content elements 304, a reduced-sized version 314 of the content element that is smaller than size of the content element as received 304. In examples, reduction engine 206 reduces size of the received image and/or video content elements 306 308 from the as-received size 304 by changing color depth, changing encoding of, subsampiing, dovvnsampling, or otherwise resizing to produce the reduced-size versions 314.
[0040] Continuing with the example data repository 212 of FIG. 3 in view of FIG. 2, measurement engine 208 receives (e.g., via link 1 16, FIG. 1 ) a web page request 316 from a requestor computing device (e.g., client device 106, FIG. 1 ) and measures bandwidth 318 available to the requestor computing device, in one example, measurement engine 208 receives failed loading data 320 indicative that an attempt to load the first web page 302 at the requestor computing device failed to occur within a predetermined target loading duration 322. in this example, measurement engine 208 determines the measurement of bandwidth 318 available to the requestor computing device based upon such failed loading data 320. In another example, measurement engine 208 sends a second web page 324, that is distinct from the first web page 302, to the requestor computing device, and determines the bandwidth measurement 318 based upon data indicative of time to send the second web page 324.
[0041] Continuing with the example data repository 212 of FIG. 3 in view of FIG. 2, modification engine 210 accesses a predetermined importance rating threshold 326 for identifying high priority content elements from within the received image and video content elements 304. Modification engine 210 modifies the first web page 302 to create a modified first web page 328 by including a high importance subset 330 of the received set 304 of content elements, wherein each content element of the high importance subset 330 has a user-assigned importance rating 312 that exceeds the pre-established importance rating threshold 326.
[0042] Continuing with the example data repository 212 of FIG. 3 in view of FIG. 2, in this example, the high importance subset 330 of content elements includes a mix of as-received size content elements 304 and reduced-sized versions 314 of the content elements such that the cumulative size of the high importance subset 330 of content elements does not exceed a predetermined combined elements size limit 332 for the subset 330 that corresponds to the measured bandwidth. In this example, modification engine 210 determines the high importance subset 330 in consideration of a target number 334 of content elements to be included within the first web page 302. in this example, the predetermined combined elements size limits, corresponding to measured bandwidths, for the high importance subset 330 and the target number 334 are stored within the first web page 302 for access by modification engine 210.
[0043] In the foregoing discussion of FIGS. 2-3, engines 202 204 206 208 210 were described as combinations of hardware and programming. Engines 202 204 206 208 210 may be implemented in a number of fashions. Looking at FIG. 4 the programming may be processor executable instructions stored on a tangible memory resource 402 and the hardware may include a processing resource 404 for executing those instructions. Thus memory resource 402 can be said to store program instructions that when executed by processing resource 404 implement system 102 of FIGS. 1 and 2.
[0044] Memory resource 402 represents generally any number of memory components capable of storing instructions that can be executed by processing resource 404. Memory resource 402 is non-transitory in the sense that it does not encompass a transitory signal but instead is made up of more or more memory components configured to store the relevant instructions. Memory resource 402 may be implemented in a single device or distributed across devices. Likewise, processing resource 404 represents any number of processors capable of executing instructions stored by memory resource 402. Processing resource 404 may be integrated in a single device or distributed across devices. Further, memory resource 402 may be fully or partially integrated in the same device as processing resource 404, or it may be separate but accessible to that device and processing resource 404.
[0045] In one example, the program instructions can be part of an installation package that when installed can be executed by processing resource 404 to implement system 102. In this case, memory resource 402 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed. In another example, the program instructions may be part of an application or applications already installed. Here, memory resource 402 can include integrated memory such as a hard drive, solid state drive, or the like.
[0046] In FIG. 4, the executable program instructions stored in memory resource 402 are depicted as design module 408, rating module 408, reduction module 410, measurement module 412, and modification module 414. Design module 406 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to design engine 202 of FIG. 2. Rating module 408 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to rating engine 204 of FIG. 2. Reduction module 410 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to reduction engine 206 of FIG. 2. Measurement module 412 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to measurement engine 208 of FIG. 2. Modification module 414 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to modification engine 210 of FIG. 2.
[0047] ILLUSTRATIVE EXAMPLE: FIG. 5 illustrates an example of modifying web pages based upon importance ratings and bandwidth, in an example, system 102 (FIG. 2) sends, via a network 1 16 (FIG. 1 ), a first web page to a page-requestor computing device, and determines a measurement of bandwidth 502 available to the page- requestor computing device based upon the sending of the first web page.
[0048] System 102 receives, via a network 1 16 (FIG. 1 ), a second web page 504 that is a responsive design web page. Second web page 504 includes templates for display of content elements at various types of computing devices, including a smart phone display template 504A, a smart watch display template 504B, and a tablet display template 504C.
[0049] System 102 additionally receives, via a network 1 16 (FIG. 1 ), a set of content elements 506 that are candidates for incorporation into the second page 504, and a user-assigned importance rating 508 for each of the received content elements 506. System 102 creates, for each of the received content elements 506, a reduced-sized version 510 that is smaller than the content element's as-received size 512.
[0050] System 102 modifies the second web page 504 in consideration of the importance ratings 508 and the bandwidth measurement 502. in an example, system 102 may selects for inclusion in the second web page 504 a subset 514 of the set of content elements 506. in this example, each member of the subset 514 is selected according to the members having an importance rating 508 exceeding a predetermined importance rating threshold 516 of "50", and with the total size of the subset cumulatively not exceeding a predetermined size limit "Y" 518 that
corresponds to the measured bandwidth 502.
[0051 ] OPERATION: FIG. 6 is a flow diagram of steps taken to implement a method for modifying web pages based upon importance ratings and bandwidth. In discussing FIG. 6, reference may be made to the components depicted in FIGS. 2 and 4. Such reference is made to provide contextual examples and not to limit the manner in which the method depicted by FIG. 6 may be implemented. A web page and a set of content elements as candidates for incorporation into the web page are received (block 602). Referring back to FIGS. 2 and 4, design engine 202 (FIG. 2) or design module 406 (FIG. 4), when executed by processing resource 404, may be
responsible for implementing block 802.
[0052] A user-assigned importance rating is received for each of the received content elements (block 604). Referring back to FiGS. 2 and 4, rating engine 204 (FIG. 2) or rating module 408 (FIG. 4), when executed by processing resource 404, may be responsible for implementing block 604.
[0053] A reduced-sized version of each of the received content elements is created (block 606). Referring back to FIGS. 2 and 4, reduction engine 206 (FIG. 2) or reduction module 410 (FIG. 4), when executed by processing resource 404, may be responsible for implementing block 606.
[0054] A web page request is received from a requestor computing device, and bandwidth available to the requestor computing device is measured (block 608). Referring back to FiGS. 2 and 4, measurement engine 208 (FIG. 2) or measurement module 412 (FIG. 4), when executed by processing resource 404, may be
responsible for implementing block 608.
[0055] The web page is modified based upon the importance ratings and the bandwidth measurement (block 610). Referring back to FiGS. 2 and 4, modification engine 210 (FIG. 2) or modification module 414 (FIG. 4), when executed by processing resource 404, may be responsible for implementing block 610.
[0056] CONCLUSION: FiGS. 1 -8 aid in depicting the architecture, functionality, and operation of various embodiments, in particular, FiGS. 1 -4 depict various physical and logical components. Various components are defined at least in part as programs or programming. Each such component, portion thereof, or various combinations thereof may represent in whole or in part a module, segment, or portion of code that comprises one or more executable instructions to implement any specified logical funcfion(s). Each component or various combinations thereof may represent a circuit or a number of interconnected circuits to implement the specified logical function(s). Embodiments can be realized in any memory resource for use by or in connection with processing resource. A "processing resource" is an instruction execution system such as a computer/processor based system or an ASIC
(Application Specific integrated Circuit) or other system that can fetch or obtain instructions and data from computer-readable media and execute the instructions contained therein. A "memory resource" is any non-transitory storage media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. The term "non-transitory" is used only to clarify that the term media, as used herein, does not encompass a signal. Thus, the memory resource can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, hard drives, solid state drives, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory, flash drives, and portable compact discs.
[0057] Although the flow diagram of FIG. 6 shows a specific order of execution, the order of execution may differ from that which is depicted. For example, the order of execution of two or more blocks or arrows may be scrambled relative to the order shown. Also, two or more blocks shown in succession may be executed
concurrently or with partial concurrence. All such variations are within the scope of the present invention.
[0058] The present invention has been shown and described with reference to the foregoing exemplary embodiments, it is to be understood, however, that other forms, details and embodiments may be made without departing from the spirit and scope of the invention that is defined in the following claims. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or ail of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.

Claims

What is claimed is:
1 . A system, comprising: a design engine, to receive a web page and a plurality of content elements as candidates for incorporation into the web page; a rating engine, to receive a user-assigned importance rating for each of the received content elements; a reduction engine, to, for each of the received content elements, create a reduced-sized version of the content element; a measurement engine, to receive a web page request from a requestor computing device and measure bandwidth available to the device; and a modification engine, to modify the web page based upon the importance ratings and the bandwidth measurement.
2. The system of claim 1 , wherein the web page is a responsive design web page and the content elements include image or a video content elements.
3. The system of claim 1 , wherein the modification engine is to determine a number of content elements to be included within the web page; determine a subset of the plurality of content elements that is the number of content elements from the plurality having the high rankings according to a ranking methodology; and modify the web page by including the subset,
4. The system of claim 3, wherein the modification engine is to, in determining the subset, create a mix of as-received size content elements and modified-size content elements such that the cumulative size of the subset does not exceed a predetermined size limit for the subset.
5. The system of claim 3, wherein the modification engine is to determine the number of content elements to be included in the web page based upon design information included within the web page.
6. The system of claim 1 , wherein the modification engine is to select for inclusion in the web page a subset of the plurality of content elements, each member of the subset having an importance rating exceeding a predetermined importance rating threshold, and the members of the subset cumulatively not exceeding a predetermined size limit for the subset that corresponds to the measured bandwidth.
7. The system of claim 1 , wherein the modification engine is to, responsive to determining the bandwidth measurement is below a pre-established bandwidth threshold, modify the web page by incorporating all reduced-sized versions of content elements.
8. The system of claim 1 , wherein the modification engine is to access a predetermined importance rating threshold, is to identify high priority content elements based upon the importance ratings and the importance rating threshold, and is to modify the web page such that each of the high priority content elements is incorporated at as-received resolution.
9. The system of claim 1 , wherein the reduction engine is to create a reduced-sized version of a first content element that is smaller than the first content element as received by at least one of resizing, changing color depth of, and changing encoding of the first content element.
10. The system of claim 1 , wherein the web page is a second web page, and the measurement engine is to send a first web page to the requestor computing device and determine the bandwidth measurement based upon the sending of the first web page.
1 1 . The system of claim 1 , wherein the measurement engine is to measure bandwidth based upon data indicative that an attempt to load the web page at the requestor computing device failed to occur within a target loading duration
12. A memory resource storing instructions that when executed cause a processing resource to implement a system to modify web pages, the instructions comprising: a design module, to receive a responsive design web page and a plurality of content elements as candidates for incorporation into the web page; a rating module, to receive a user-assigned importance rating for each of the received content elements; a reduction module, to, for each of the received content elements, create a reduced-sized version of the content element that is smaller than the content element as received; a measurement module, to receive a web page request from a requestor computing device and measure bandwidth available to the device; and a modification module, to access a predetermined importance rating threshold for identifying high priority content elements, and to modify the web page by including a subset of the plurality of content elements with each content element of the subset having an importance rating exceeding the importance rating threshold, wherein the subset includes a mix of as-received size content elements and modified-size content elements such that the cumulative size of the subset content elements does not exceed a predetermined size limit for the subset that corresponds with the measured bandwidth.
The memory resource of claim 12, wherein the modification module includes instructions to modify the web page by including the subset to the exclusion of other content elements from the plurality of content elements.
14. The memory resource of claim 12, wherein the modification module is to determine the number of content elements to be included in the web page based upon design information included within the web page.
15. A method to modify web pages based upon content element importance ratings and bandwidth measurements, comprising: sending a first web page to a page-requestor computing device, and determining a measurement of bandwidth available to the page-requestor computing device based upon the sending; receiving a second web page that is a responsive design web page and a plurality of content elements as that are identified for incorporation into the second page; receiving a user-assigned importance rating for each of the received content elements; creating, for each of the received content elements, a reduced-sized version that is smaller than the content element as received; modifying the second page in consideration of the ratings and the bandwidth measurement, and sending the modified second page to the page-requestor computing device.
PCT/US2014/048849 2014-07-30 2014-07-30 Modifying web pages based upon importance ratings and bandwidth WO2016018291A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/US2014/048849 WO2016018291A1 (en) 2014-07-30 2014-07-30 Modifying web pages based upon importance ratings and bandwidth
US15/326,155 US10241982B2 (en) 2014-07-30 2014-07-30 Modifying web pages based upon importance ratings and bandwidth

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/048849 WO2016018291A1 (en) 2014-07-30 2014-07-30 Modifying web pages based upon importance ratings and bandwidth

Publications (1)

Publication Number Publication Date
WO2016018291A1 true WO2016018291A1 (en) 2016-02-04

Family

ID=55218010

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/048849 WO2016018291A1 (en) 2014-07-30 2014-07-30 Modifying web pages based upon importance ratings and bandwidth

Country Status (2)

Country Link
US (1) US10241982B2 (en)
WO (1) WO2016018291A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10175866B2 (en) 2015-06-05 2019-01-08 Apple Inc. Providing complications on an electronic watch
US10572571B2 (en) * 2015-06-05 2020-02-25 Apple Inc. API for specifying display of complication on an electronic watch
US11327640B2 (en) 2015-06-05 2022-05-10 Apple Inc. Providing complications on an electronic device
US11288336B2 (en) * 2018-04-18 2022-03-29 Google Llc Systems and methods for providing content items in situations involving suboptimal network conditions
US20190347315A1 (en) * 2018-05-08 2019-11-14 International Business Machines Corporation Methods and systems for rendering web pages with restricted features
US11269756B1 (en) * 2018-09-26 2022-03-08 A9.Com, Inc. Self-healing web applications
US10915336B1 (en) * 2018-11-05 2021-02-09 Amazon Technologies, Inc. Optimizing content engagement with imposed content constraints
US11178069B2 (en) * 2020-03-20 2021-11-16 International Business Machines Corporation Data-analysis-based class of service management for different web resource sections

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144996A (en) * 1998-05-13 2000-11-07 Compaq Computer Corporation Method and apparatus for providing a guaranteed minimum level of performance for content delivery over a network
US6243761B1 (en) * 1998-03-26 2001-06-05 Digital Equipment Corporation Method for dynamically adjusting multimedia content of a web page by a server in accordance to network path characteristics between client and server
US20070283036A1 (en) * 2004-11-17 2007-12-06 Sujit Dey System And Method For Providing A Web Page
US20090265611A1 (en) * 2008-04-18 2009-10-22 Yahoo ! Inc. Web page layout optimization using section importance
US8726149B2 (en) * 1997-10-09 2014-05-13 Cisco Technology, Inc. Method and system for providing reduced-size hypertext content to a limited-display client device

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010010059A1 (en) * 1998-10-28 2001-07-26 Steven Wesley Burman Method and apparatus for determining travel time for data sent between devices connected to a computer network
US20040015777A1 (en) * 2002-07-22 2004-01-22 International Business Machines Corporation System and method for sorting embedded content in Web pages
US7502834B2 (en) * 2003-09-30 2009-03-10 International Business Machines Corporation Autonomic content load balancing
US7308649B2 (en) * 2003-09-30 2007-12-11 International Business Machines Corporation Providing scalable, alternative component-level views
US20060259462A1 (en) * 2005-05-12 2006-11-16 Sybase, Inc. System and Methodology for Real-time Content Aggregation and Syndication
US10510043B2 (en) * 2005-06-13 2019-12-17 Skyword Inc. Computer method and apparatus for targeting advertising
US8438469B1 (en) * 2005-09-30 2013-05-07 Google Inc. Embedded review and rating information
US8582584B2 (en) * 2005-10-04 2013-11-12 Time Warner Cable Enterprises Llc Self-monitoring and optimizing network apparatus and methods
US20070220010A1 (en) * 2006-03-15 2007-09-20 Kent Thomas Ertugrul Targeted content delivery for networks
US7802286B2 (en) * 2007-07-24 2010-09-21 Time Warner Cable Inc. Methods and apparatus for format selection for network optimization
US7770200B2 (en) * 2007-07-24 2010-08-03 Time Warner Cable Inc. Methods and apparatus for format selection for network optimization
AU2008310814A1 (en) * 2007-10-09 2009-04-16 Skiff, Llc Systems, methods and apparatus for content distribution
US8606846B2 (en) * 2007-10-15 2013-12-10 Nbcuniversal Media, Llc Accelerating peer-to-peer content distribution
US20140304583A1 (en) * 2008-05-21 2014-10-09 Adobe Systems Incorporated Systems and Methods for Creating Web Pages Based on User Modification of Rich Internet Application Content
US8316124B1 (en) * 2008-09-29 2012-11-20 Amazon Technologies, Inc. Managing network data display
US9519728B2 (en) * 2009-12-04 2016-12-13 Time Warner Cable Enterprises Llc Apparatus and methods for monitoring and optimizing delivery of content in a network
US9588632B1 (en) * 2011-05-24 2017-03-07 A9.Com, Inc. Techniques for providing personalized behavior-based content
US8937744B1 (en) * 2011-07-30 2015-01-20 PrintEco, Inc. Modifying electronic data layout for efficient printing of electronic data
US8868639B2 (en) * 2012-03-10 2014-10-21 Headwater Partners Ii Llc Content broker assisting distribution of content
US9043260B2 (en) * 2012-03-16 2015-05-26 Nokia Technologies Oy Method and apparatus for contextual content suggestion
EP2670110B1 (en) 2012-06-01 2015-07-08 Alcatel Lucent Method, system and devices for improved content delivery
US8626910B1 (en) * 2012-06-19 2014-01-07 Edgecast Networks, Inc. Systems and methods for performing localized server-side monitoring in a content delivery network
US9262389B2 (en) * 2012-08-02 2016-02-16 International Business Machines Corporation Resource-adaptive content delivery on client devices
US8965880B2 (en) * 2012-10-05 2015-02-24 Google Inc. Transcoding and serving resources
GB2507036A (en) * 2012-10-10 2014-04-23 Lifecake Ltd Content prioritization
WO2014114361A1 (en) * 2013-01-28 2014-07-31 Telefonaktiebolaget L M Ericsson (Publ) Method, apparatus and computer program for providing a data object from a content server to a client device over a radio access network (ran)
US9642145B2 (en) * 2013-05-07 2017-05-02 Calix, Inc. Methods and apparatuses for dynamic backhaul bandwidth management in wireless networks
US9552438B2 (en) * 2013-05-17 2017-01-24 Paypal, Inc. Systems and methods for responsive web page delivery based on network bandwidth
US9569501B2 (en) * 2013-07-12 2017-02-14 Facebook, Inc. Optimizing electronic layouts for media content
US9386119B2 (en) * 2013-07-30 2016-07-05 International Business Machines Corporation Mobile web adaptation techniques

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8726149B2 (en) * 1997-10-09 2014-05-13 Cisco Technology, Inc. Method and system for providing reduced-size hypertext content to a limited-display client device
US6243761B1 (en) * 1998-03-26 2001-06-05 Digital Equipment Corporation Method for dynamically adjusting multimedia content of a web page by a server in accordance to network path characteristics between client and server
US6144996A (en) * 1998-05-13 2000-11-07 Compaq Computer Corporation Method and apparatus for providing a guaranteed minimum level of performance for content delivery over a network
US20070283036A1 (en) * 2004-11-17 2007-12-06 Sujit Dey System And Method For Providing A Web Page
US20090265611A1 (en) * 2008-04-18 2009-10-22 Yahoo ! Inc. Web page layout optimization using section importance

Also Published As

Publication number Publication date
US10241982B2 (en) 2019-03-26
US20170206187A1 (en) 2017-07-20

Similar Documents

Publication Publication Date Title
US10241982B2 (en) Modifying web pages based upon importance ratings and bandwidth
US11310331B2 (en) Optimizing user interface data caching for future actions
US11112942B2 (en) Providing content via multiple display devices
US9942358B2 (en) Recommending applications
CN107656768B (en) Method and system for controlling page jump
US9378298B2 (en) User influenced asynchronous module definition loader
JP2015514266A (en) User interface content optimization system
US10069940B2 (en) Deployment meta-data based applicability targetting
US10242102B2 (en) Network crawling prioritization
US11113455B2 (en) Web page rendering on wireless devices
EP3559818B1 (en) Maintaining session identifiers across multiple webpages for content selection
US9684729B2 (en) Displaying search results on a user device using a layout file
US20150205767A1 (en) Link appearance formatting based on target content
US11394807B2 (en) Critical path estimation for accelerated and optimal loading of web pages
CN115221385A (en) Time-dependent machine-generated cues
WO2016191053A1 (en) Predictive peer determination for peer-to-peer digital content download
US10157210B2 (en) Searching and accessing software application functionality using application connections
CN110622135B (en) System and method for providing content items in situations involving suboptimal network conditions
US20170171292A1 (en) Generating Software Application Search Results Using Shared Application Connections
US20150249722A1 (en) Content providing apparatus and method, and computer program product
US11379102B1 (en) Native application development techniques
US9992254B2 (en) Method and system of providing a web feed in a uniform resource identifier
US11188610B2 (en) User navigation based on client-side history
US11671529B2 (en) Cross-channel configurable navigation
US20170169022A1 (en) Generating Software Application Search Results Using Application Connections

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14898794

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15326155

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14898794

Country of ref document: EP

Kind code of ref document: A1