Preferential Resource Delivery Via Web Proxy or Web Browser

Similar documents
Notification Features For Digital Content In A Mobile-Optimized Format

Accelerated Mobile Pages Advertisement and Cascading Style Sheet Merging

Automatically Generating and Rendering Native Advertisements

DYNAMICALLY CACHING VIDEO CONTENT BASED ON USER LIKELIHOOD OF INTERACTING WITH CONTENT ELEMENT

Displaying web pages within a software keyboard

REDUCING GRANULARITY OF BROWSER FINGERPRINTING TECHNIQUES

"METHOD FOR IMPROVED BANDWIDTH UTILIZATION IN DATA DOWNLOADING SYSTEMS USING INTELLIGENT DYNAMIC CONNECTION LIMIT STEPPING"

PageSpeed Insights. Eliminate render-blocking JavaScript and CSS in above-the-fold content

Lesson 5 Introduction to Cascading Style Sheets

Secure web proxy resistant to probing attacks

BUFFERING AND INSERTING TEXT INPUTS

Introduction to WEB PROGRAMMING

Navigation of blogs related by a tag

CREATING A WEBSITE USING CSS. Mrs. Procopio CTEC6 MYP1

VOICE AND TOUCH BASED INPUT

STORAGE AND SELECTION OF CELL MARKERS

Understanding the Web Design Environment. Principles of Web Design, Third Edition

Synchronizing Media Content In A Shared Virtual Reality Environment

Positioning in CSS: There are 5 different ways we can set our position:

Designing the Home Page and Creating Additional Pages

Help Documentation. Copyright 2007 WebAssist.com Corporation All rights reserved.

PageSpeed Insights. Compressing resources with gzip or deflate can reduce the number of bytes sent over the network.

Styles, Style Sheets, the Box Model and Liquid Layout

Dreamweaver CS4. Introduction. References :

Criterion D: Product design

Announcements. 1. Class webpage: Have you been reading the announcements? Lecture slides and coding examples will be posted

MRK260. Week Two. Graphic and Web Design

BA. (Hons) Graphics Design

Getting Started with CSS Sculptor 3

Announcements. 1. Class webpage: Have you been reading the announcements? Lecture slides and coding examples will be posted

CSS for Page Layout Robert K. Moniot 1

HTML Organizing Page Content

MODULE 2 HTML 5 FUNDAMENTALS. HyperText. > Douglas Engelbart ( )

ADOBE 9A Adobe Dreamweaver CS4 ACE.

Pipeline To Generate Training Data For Image Recognition

Index LICENSED PRODUCT NOT FOR RESALE

PARTIAL CLICK PROTECTIONS FOR ADS

Fixed Size Ad Specifications

Chapter 1 Getting Started with HTML 5 1. Chapter 2 Introduction to New Elements in HTML 5 21

COMS 359: Interactive Media

COMS 359: Interactive Media

ECPR Methods Summer School: Automated Collection of Web and Social Data. github.com/pablobarbera/ecpr-sc103

('cre Learning that works for Utah STRANDS AND STANDARDS WEB DEVELOPMENT 1

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1

Beneath the Surface. How Web Design Impacts Your Site s Health

Control of jitter buffer size using machine learning

DETECTION OF POSITION FIXED CONTENT ITEM SLOTS AND CONTROL OF CONTENT DISPLAYED THEREIN

Web Programming and Design. MPT Junior Cycle Tutor: Tamara Demonstrators: Aaron, Marion, Hugh

CompuScholar, Inc. Alignment to Utah's Web Development I Standards

Revision for Grade 7 ASP in Unit :1&2 Design & Technology Subject

Overview 14 Table Definitions and Style Definitions 16 Output Objects and Output Destinations 18 ODS References and Resources 20

CSC Web Programming. Introduction to HTML

Web Design, 5 th Edition

Automated Web Application Testing Using Selenium

Executive Summary. Performance Report for: The web should be fast. Top 4 Priority Issues

for Beginners COPYRIGHT NATIONAL SEMINARS TRAINING. ALL RIGHTS RESERVED.

GRAPHIC WEB DESIGNER PROGRAM

Client Configuration Cookbook

Adobe Dreamweaver CS5/6: Learning the Tools

Lecture 13. Page Layout. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

Independence Community College Independence, Kansas

FrontPage 2000 Tutorial -- Advanced

Analysis of cells within a spreadsheet

Head First HTML 5 Programming: Chapter 3: Events, Handlers, and all that Jazz.

Technical Disclosure Commons

Conversion of a 3D scene into video

Website Report for bangaloregastro.com

SQA Advanced Unit specification. General information for centres. Unit title: Web Development Fundamentals. Unit code: HR7M 47

Voice activated spell-check

MPT Web Design. Week 1: Introduction to HTML and Web Design

SSD Admission Control for Content Delivery Networks

Automatic information protection when device camera is operated by secondary user

Decision on opposition

Entry Level Assessment Blueprint Web Design

Make a Website. A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1

HTML and CSS COURSE SYLLABUS

HTML Organizing Page Content

Using Dreamweaver CC. Logo. 4 Creating a Template. Page Heading. Page content in this area. About Us Gallery Ordering Contact Us Links

CS WEB TECHNOLOGY

HTML: Introduction CISC 282. September 11, What is HTML?

Introduction to Web Concepts & Technologies

Web Architecture Review Sheet

Todd toddreifsteck

Overview Content Delivery Computer Networking Lecture 15: The Web Peter Steenkiste. Fall 2016

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

Web Programming and Design. MPT Senior Cycle Tutor: Tamara Week 2

Providing link suggestions based on recent user activity

Lecture : 3. Practical : 2. Course Credit. Tutorial : 0. Total : 5. Course Learning Outcomes

Website Report for facebook.com

Control for CloudFlare - Installation and Preparations

Client Configuration Cookbook

Artificial Intelligence Powered Brand Identification and Attribution for On Screen Content

Executive Summary. Performance Report for: The web should be fast. How does this affect me?

Chapter 1 Introduction to Dreamweaver CS3 1. About Dreamweaver CS3 Interface...4. Creating New Webpages...10

READSPEAKER ENTERPRISE HIGHLIGHTING 2.5

Actions on Landing Pages

Support Notes (Issue 1) September Diploma in Digital Applications (DA105) Coding for the web

Hashing technique to optimally balance load within switching networks

ALTERNATIVE CHARGE CONTROL SYSTEM FOR MERCHANDISE DISPLAY SECURITY SYSTEM

HTML + CSS. ScottyLabs WDW. Overview HTML Tags CSS Properties Resources

Transcription:

Technical Disclosure Commons Defensive Publications Series December 11, 2017 Preferential Resource Delivery Via Web Proxy or Web Browser Dean Kenneth Jackson Daniel Klein Follow this and additional works at: http://www.tdcommons.org/dpubs_series Recommended Citation Jackson, Dean Kenneth and Klein, Daniel, "Preferential Resource Delivery Via Web Proxy or Web Browser", Technical Disclosure Commons, (December 11, 2017) This work is licensed under a Creative Commons Attribution 4.0 License. This Article is brought to you for free and open access by Technical Disclosure Commons. It has been accepted for inclusion in Defensive Publications Series by an authorized administrator of Technical Disclosure Commons.

Jackson and Klein: Preferential Resource Delivery Via Web Proxy or Web Browser Preferential Resource Delivery Via Web Proxy or Web Browser Abstract The subject disclosure relates to prioritizing the loading of files referenced by the HyperText Markup Language (HTML) of a webpage, so that the time required to load the webpage is reduced, for example, as perceived by an end user. The HTML for a webpage can be parsed to identify what types of resources are referenced (e.g., a cascading style sheets (CSS) file, image files, JavaScript), and the bandwidth associated with downloading the resources can be assessed. Based on requested resources and bandwidth, the system can prioritize the loading of resources, in order to load portions of the webpage quickly so that the end user perceives an improved loading time. Background Image heavy websites can load slowly due to the network load of downloading the images themselves. However, the user often sees nothing of the webpage until such time as the "essential" components of the page are downloaded. For example, the height and width of the images are often required before the page can be constructed, and the images can later be included as they are downloaded. Additionally, the content of the CSS may also be needed in its entirety before the page can be constructed. In some systems, image data is included in the HTML attributes and is downloaded first. In other systems, the image attributes are contained in a CSS file, which must be downloaded separately, in competition with all of the images. This can result in slow page display, for example, when a device faced with limited bandwidth attempts to load images before all HTML/CSS has been loaded. Published by Technical Disclosure Commons, 2017 2

Defensive Publications Series, Art. 926 [2017] Typical HTML includes text and references to images. The text is formatted via inline HTML tags, while images are referenced by the HTML and stored in separate files. Both text and images can be formatted using CSS, which is also stored in a separate file or files. A page request causes the HTML to be loaded, and then every file which it references is in turn loaded. When a page requires auxiliary files to be loaded in order to be displayed, it is usually necessary for those auxiliary files to be loaded before displaying any part of the page. A well-designed page will typically have all of the necessary information stored in the HTML, for example, image attributes such as height/width. However, many webpages are not well-designed. For example, webpages that are not well-designed may: (1) be missing height/width attributes in an image tag, (e.g., which requires that the image be downloaded to determine its size), (2) include height/width attributes contained in the CSS specification, and/or or (3) include HTML that may be included into other HTML by methods like an iframe or server side inclusion. The problem is that once an HTML page is loaded, which is usually a relatively quick operation, the webpage will make a large number of parallel requests for the auxiliary image (e.g., JPEG) and CSS files. These parallel requests heavily load the network for a short period of time. Once the browser knows all of the images sizes, the page can be rendered with placeholders for images that have not yet been fully downloaded. In other words, if the image size is known, the image is not needed for rendering. However, until such time as the image headers are downloaded, or the entire CSS file is loaded, the browser may not have enough information about the page to begin rendering it. While the CSS is needed for rendering and the image itself may not be needed, both the CSS and the images are typically given the same 3

Jackson and Klein: Preferential Resource Delivery Via Web Proxy or Web Browser priority across the network, with images potentially blocking, stalling or otherwise slowing CSS loading. Features of the subject technology The subject technology proposes (a) assigning different priority classes for files (e.g., CSS, JavaScript files, image files) referenced by the HTML of a webpage, and (b) assessing the bandwidth associated with downloading the referenced files. Based on the assigned priority classes and the assessed bandwidth, the system can prioritize downloading some files, or parts thereof, over other files, or parts thereof. In doing so, the subject technology can provide for a faster loading of webpages as perceived by an end user. Assigning Different Priority Classes for Files This functionality can be implemented at the web browser. Alternatively, or in addition, the functionality can be implemented at a web proxy positioned between the browser and a network (e.g., the Internet). The web proxy or web browser parses HTML in order to identify whether a webpage references a CSS file, JavaScript and/or any images files. For example, a web proxy and/or web browser can examine the data stream associated with a web browser of a client device. If the client device requests a webpage, the web proxy and/or browser can: (1) prioritize traffic to the client device in favor of the CSS file over any image files, (2) prioritize traffic to the client device in favor of the first block of data from any image file (that is, containing the header, which contains the image size) over the remainder of all image files, and (3) prioritize traffic such that images which are on the visible portion of the display window are loaded before images which are above, below or behind the currently visible portion of the display window. In example aspects, the web proxy and/or web browser prioritizes requests for CSS files, so that Published by Technical Disclosure Commons, 2017 4

Defensive Publications Series, Art. 926 [2017] CSS files are downloaded first and possibly with limited or no competition with other files (e.g., image files). Regarding JavaScript files, the web browser or web proxy may load external JavaScript before or after images, depending on where the JavaScript appears on the webpage. For example, if external JavaScript is loaded in the header of the webpage, the JavaScript can be loaded with or after the downloading of the CSS. On the other hand, if the JavaScript is loaded in the footer, the JavaScript can be loaded with or ahead of the image files. The web proxy and/or browser can determine which images (or JavaScript) will initially be off-screen (e.g., for the client device) and defer loading of those images. In other words, content such as image content or JavaScript that is not within the initial view of the client display can be assigned low priority, for loading at a later time (e.g., based on a scroll action by the user or after all currently visible images are loaded). In other words, the system can alter the priority if the user scrolls, but can download everything that might be seen by the user after dealing with what is actually seen first. In example aspects, the above-described prioritization is in addition to any caching that the browser or proxy may already do, for example, so that cached images and cached CSS files are also prioritized. Additionally, based on previously determined image data, a caching proxy may rewrite the HTML to include missing image attributes, so that the browser will be presented with as-complete rendering information as possible. Assessing Bandwidth Needs Bandwidth availability can be used in determining whether or not the loading of some files (e.g., CSS files) should be prioritized over other files (e.g., image files). Bandwidth can correspond to the speed at which a hosting website can deliver traffic, and the speed at which the 5

Jackson and Klein: Preferential Resource Delivery Via Web Proxy or Web Browser browser at the client device can accept traffic. In example aspects, the above-described functionality for prioritizing the loading of CSS, JavaScript and images may be enabled for low bandwidth connections (e.g., for a 2G mobile device), and disabled for higher bandwidth connections (e.g., a wired connection or 4G mobile). In addition, for content (e.g., images) from different servers, the bandwidth at which the respective server delivers traffic can be used in prioritizing the order of loading images. For example, rather than loading images from different servers in parallel, the web proxy and/or browser can favor the image from the server known to have a higher download speed. In example aspects, the above-described functionality for prioritizing the loading of CSS, JavaScript and images may only be enabled for certain sites, with known large file counts/file sizes. Alternatively or in addition, the functionality may be turned on/off by a response header, such that servers can disable this functionality. An example of prioritized loading of files will now be described with reference to FIG. 1 shown below: Parse HTML 102 CSS JavaScript Image files Check Bandwidth 104 Wired 2G 3G 4G Prioritize Loading of Files 106 1. CSS, Image block with size info 2. JavaScript in header 3. JavaScript in footer 4. On-screen images 5. Off-screen images In the example of FIG. 1, the system (e.g., a web proxy and/or web browser) at block 102 parses the HTML of a webpage to determine whether or not the HTML of a webpage references the loading of CSS, JavaScript and/or images files. Published by Technical Disclosure Commons, 2017 6

Defensive Publications Series, Art. 926 [2017] At block 104, the system determines the bandwidth for the traffic associated with loading the referenced files (e.g., CSS, JavaScript and/or images files). For example, the determination of bandwidth may be based on the speed at which a hosting website can deliver traffic, and the speed at which the browser at the client device can accept traffic. In the example of FIG. 1, the connection for delivering content to the client device can be one or more of a wired connection, 2G, 3G or 4G. With a wired or a 4G connection, the prioritized loading of files may be disabled, whereas a 2G or 3G connection may enable prioritized loading of files. At block 106, the loading of files (e.g., CSS, JavaScript and/or images files) is prioritized. In the example of FIG. 1, CSS and the header blocks of image files (e.g., for determining size) are favored or prioritized over other content such as JavaScript and other image content. For example, the system prioritizes requests for CSS files so that CSS files are downloaded first and possibly with limited or no competition with other files (e.g., image files). In example aspects, the header blocks of image files (e.g., for determining size) may be treated in a similar manner, and are requested together with or immediately after the loading of CSS. As shown in block 106, external JavaScript in the header of the webpage can be loaded with or after the downloading of the CSS, and JavaScript in the footer can be loaded with or ahead of the image files. In addition, the system (e.g., web proxy and/or browser) can determine which images (or JavaScript) will initially be on-screen or off-screen (e.g., for the client device), and defer the loading of off-screen images in favor of on-screen images. Off-screen images (or JavaScript) can be loaded at a later time, for example, based on a scroll action by the user. Accordingly, based on the referenced resources in HTML and bandwidth, the system can prioritize the loading of resources, in order to load portions of the webpage quickly so that the end user perceives an improved loading time. 7