Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?Andy Davies
Talk from Akamai Edge 2014 looking at some of our current web performance optimisation practices and how they may need to change as new standards and protocols emerge
This document discusses the importance of website speed and performance. It notes that most top retail sites take over 3 seconds to load critical content, and median page load times have slowed by 23% year-over-year. Faster sites see benefits like 10% higher conversions. Network latency has a greater impact on performance than bandwidth. Techniques like preloading fonts and images can help mitigate latency. Frameworks and features like service workers may also help if designed deliberately for performance. Regular measurement and setting performance budgets are recommended to build fast user experiences.
The Case for HTTP/2 - Internetdagarna 2015 - StockholmAndy Davies
HTTP/2 is here but why do we need it, how is it different to HTTP/1.1 and what does the mean for developers?
Slides from my talk at Internetdagarna 2015, Stockholm
The Case for HTTP/2 - EpicFEL Sept 2015Andy Davies
HTTP/2 is here but why do we need it, and how is it different to HTTP/1.1?
Video - https://www.youtube.com/watch?v=ob-CnA9YmiI
These are the slides from my talk at Front-End London's one day conference, EpicFEL
Talk from The Web Is in Cardiff, October 2014 exploring the business case for web performance, and some of the underlying factors that can make sites slow
Mobile Web Performance - Getting and Staying FastAndy Davies
Slides from mine and Aaaron Peter's talk at QCon London (Mar 2014) on how to measure mobile web performance, things that affect in and how to improve it
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?Andy Davies
Talk from Akamai Edge 2014 looking at some of our current web performance optimisation practices and how they may need to change as new standards and protocols emerge
This document discusses the importance of website speed and performance. It notes that most top retail sites take over 3 seconds to load critical content, and median page load times have slowed by 23% year-over-year. Faster sites see benefits like 10% higher conversions. Network latency has a greater impact on performance than bandwidth. Techniques like preloading fonts and images can help mitigate latency. Frameworks and features like service workers may also help if designed deliberately for performance. Regular measurement and setting performance budgets are recommended to build fast user experiences.
The Case for HTTP/2 - Internetdagarna 2015 - StockholmAndy Davies
HTTP/2 is here but why do we need it, how is it different to HTTP/1.1 and what does the mean for developers?
Slides from my talk at Internetdagarna 2015, Stockholm
The Case for HTTP/2 - EpicFEL Sept 2015Andy Davies
HTTP/2 is here but why do we need it, and how is it different to HTTP/1.1?
Video - https://www.youtube.com/watch?v=ob-CnA9YmiI
These are the slides from my talk at Front-End London's one day conference, EpicFEL
Talk from The Web Is in Cardiff, October 2014 exploring the business case for web performance, and some of the underlying factors that can make sites slow
Mobile Web Performance - Getting and Staying FastAndy Davies
Slides from mine and Aaaron Peter's talk at QCon London (Mar 2014) on how to measure mobile web performance, things that affect in and how to improve it
HTTP/2 addresses limitations in HTTP/1.x by multiplexing requests over a single TCP connection, compressing headers, and allowing servers to push responses. It leads to more efficient use of network resources and faster page loads. While browser support is good, server implementations are still maturing and need to fully support HTTP/2 features like streams, dependencies, and server push to provide optimizations. Efficient TLS is also important to avoid delays in taking advantage of HTTP/2 performance benefits.
Browser Wars Episode 1: The Phantom MenaceNicholas Zakas
This document summarizes the history and evolution of web browsers and internet technologies from the early 1990s to the late 1990s. It traces the development of key browsers like Netscape Navigator and Internet Explorer. It also outlines the introduction of important web standards like HTML, CSS, JavaScript and XML. Major events included the commercialization of the web in the mid-1990s, the browser wars between Netscape and Microsoft in the late 90s, and the consolidation of online services providers toward the end of the decade.
WebPageTest is a great tool for testing and analysing how quickly web pages load.
Many people just use it as a simple testing tool, but it has advanced scripting capabilities for multi-page testing, completing forms etc.
It also has an API so performance testing can be integrated into Continuous Integration processes, used for monitoring and analysing how the web is built.
These slides explore some of these capabilities in more detail.
There are bonus slides after the "Thank You" slide
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?Andy Davies
This document discusses how performance best practices may become anti-patterns as technologies evolve. It explores how techniques like data URIs, domain sharding, and CSS sprites could be negatively impacted by new protocols like SPDY. The author advocates experimenting with modern tools like mod_pagespeed to test different optimizations under various conditions and sharing results. Continued improvement of debugging tools is also important to help evaluate new approaches as the network landscape changes. Overall, the message is that situational optimization will become more important over rigid rules as complexity increases.
Slides from my Ignite (20 slides, auto-advancing every 15 secs) talk at WebPerfDays, Mountain View.
Not sure they will make sense standalone but talk was recorded and will be available at some point.
Would also like to work this up into a longer talk at some point.
SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...Distilled
HTTP/2 and Service Works are becoming more established, yet the SEO community lacks awareness of what they are what they may mean for us. A lot of us know we need to know about them but we manage to keep putting it off. However, for both of these technologies, the next 12 months are going to be the turning point where we really can't avoid learning more about them. Tom will provide and accessible introduction to both, with a focus on what they are, how they work and what SEOs need to know. If you have been scared of jumping in to them until now, this session will help get you up to speed.
As browsers explode with new capabilities and migrate onto devices users can be left wondering, “what’s taking so long?” Learn how HTML, CSS, JavaScript, and the web itself conspire against a fast-running application and simple tips to create a snappy interface that delight users instead of frustrating them.
In the beginning, progressive enhancement was simple: HTML layered with CSS layered with JavaScript. That worked fine when there were two browsers, but in today's world of multiple devices and multiple browsers, it's time for a progressive enhancement reboot. At the core is the understanding that the web is not print - the same rules don't apply. As developers and consumers we've been fooled into thinking about print paradigms for too long. In this talk, you'll learn just how different the web is and how the evolution of progressive enhancement can lead to better user experiences as well as happier developers and users.
This deck is a conference-agnostic one, suitable to be shown anywhere without site-specific jokes!
How I learned to stop worrying and love the .htaccess fileRoxana Stingu
An introduction to .htaccess and what this file can do to help with SEO.
Redirects:
- Mod_alias and mod_rewrite
- Most common redirect types (domain migrations, subdomain to folder and folder renaming and how to deal with duplicate content).
Indexing & Crawling:
- Set HTTP headers for canonicals and meta robots for non-HTML files.
Website speed:
- Gzip and Deflate
- Cache control
This document discusses new features in HTML5 and CSS3. It provides examples of new HTML5 elements like <header>, <nav>, <article>, and new forms elements. It also covers new CSS3 features like gradients, rounded corners, shadows. Additionally, it mentions new JavaScript APIs in HTML5 for things like geolocation, drag and drop, offline web apps, storage and more. Finally, it encourages developers to use new web standards and provides resources for learning HTML5.
Scott Gledhill presents at Web Directions South Government 2008 in Canberra. You have sold the concepts of web standards to your company or boss, so what next? How do you make this work in the real workplace and what problems are you likely to encounter?
This document summarizes Christopher Schmitt's presentation on adaptive images in responsive web design. It discusses using feature testing versus browser sniffing to determine the appropriate image to serve, including testing browser width, screen resolution, and bandwidth. It then covers various techniques for serving adaptive images, such as using .htaccess files, the <picture> element, srcset attributes, and JavaScript libraries. It emphasizes using a mobile-first approach and progressive enhancement to provide the best experience for all devices.
An overview of web development essentials that will help you as a user experience designer to not only understand how to integrate designs with development components, but also to learn some tips on interacting effectively with developers.
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Nicholas Zakas
In the beginning, progressive enhancement was simple: HTML layered with CSS layered with JavaScript. That worked fine when there were two browsers, but in today's world of multiple devices and multiple browsers, it's time for a progressive enhancement reboot. At the core is the understanding that the web is not print - the same rules don't apply. As developers and consumers we've been fooled into thinking about print paradigms for too long. In this talk, you'll learn just how different the web is and how the evolution of progressive enhancement can lead to better user experiences as well as happier developers and users.
Today, a web page can be delivered to desktop computers, televisions, or handheld devices like tablets or phones. While a technique like responsive design helps ensure that our web sites look good across that spectrum of devices we may forget that we need to make sure that our web sites also perform well across that same spectrum. More and more of our users are shifting their Internet usage to these more varied platforms and connection speeds with some moving entirely to mobile Internet.
In this session we’ll look at the tools that can help you understand, measure and improve the web performance of your web sites and applications. The talk will also discuss how new server-side techniques might help us optimize our front-end performance. Finally, since the best way to test is to have devices in your hand, we’ll discuss some tips for getting your hands on them cheaply.
This presentation builds upon Dave’s “Optimization for Mobile” chapter in Smashing Magazine’s “The Mobile Book.”
This talk was given at the Responsive Web Design Summit hosted by Environments for Humans.
Web Performance Workshop - Velocity London 2013Andy Davies
The document summarizes a hands-on web performance workshop. It discusses tools and techniques that will be covered, including live analysis of websites. Attendees are encouraged to ask questions and suggest sites to test. Various tools for performance testing like PhantomJS, Phantomas, and WebPageTest are introduced. The workshop also discusses integrating performance tests with TAP and Jenkins. Additional topics include processing performance data in R, looking at live sites, issues like unnecessary repainting, and lessons learned in web performance optimization.
As programmers, we concentrate so much on the server/backend side of things that we often forget to measure performance from the Client's viewpoint. This presentation describes a bunch of techniques that can be used to speed up our websites.
The document discusses strategies for making mobile websites faster, including optimizing images, caching resources, minimizing redirects, leveraging new HTML elements like <picture>, compressing files, and ensuring smooth performance after page load. It emphasizes the importance of measuring site performance and adapting delivery based on network conditions and device capabilities.
Presentation at web2day in Nantes, France about the opportunities we have with HTML5 and how it means we move away from a static to an web of applications.
The Case for HTTP/2 - GreeceJS - June 2016Andy Davies
HTTP/2 is here but why do we need it, how is it different to HTTP/1.1 and what does the mean for developers?
Slides from my talk at GreeceJS in Athens, June 2016
The Fast, The Slow and The Unconverted - Emerce Conversion 2016Andy Davies
Slides from my talk at Emerce Conversion, Amsterdam on the importance of performance(page speed) for conversion.
Explore some of the performance issues we face when relying on third-party CRO products / services
HTTP/2 addresses limitations in HTTP/1.x by multiplexing requests over a single TCP connection, compressing headers, and allowing servers to push responses. It leads to more efficient use of network resources and faster page loads. While browser support is good, server implementations are still maturing and need to fully support HTTP/2 features like streams, dependencies, and server push to provide optimizations. Efficient TLS is also important to avoid delays in taking advantage of HTTP/2 performance benefits.
Browser Wars Episode 1: The Phantom MenaceNicholas Zakas
This document summarizes the history and evolution of web browsers and internet technologies from the early 1990s to the late 1990s. It traces the development of key browsers like Netscape Navigator and Internet Explorer. It also outlines the introduction of important web standards like HTML, CSS, JavaScript and XML. Major events included the commercialization of the web in the mid-1990s, the browser wars between Netscape and Microsoft in the late 90s, and the consolidation of online services providers toward the end of the decade.
WebPageTest is a great tool for testing and analysing how quickly web pages load.
Many people just use it as a simple testing tool, but it has advanced scripting capabilities for multi-page testing, completing forms etc.
It also has an API so performance testing can be integrated into Continuous Integration processes, used for monitoring and analysing how the web is built.
These slides explore some of these capabilities in more detail.
There are bonus slides after the "Thank You" slide
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?Andy Davies
This document discusses how performance best practices may become anti-patterns as technologies evolve. It explores how techniques like data URIs, domain sharding, and CSS sprites could be negatively impacted by new protocols like SPDY. The author advocates experimenting with modern tools like mod_pagespeed to test different optimizations under various conditions and sharing results. Continued improvement of debugging tools is also important to help evaluate new approaches as the network landscape changes. Overall, the message is that situational optimization will become more important over rigid rules as complexity increases.
Slides from my Ignite (20 slides, auto-advancing every 15 secs) talk at WebPerfDays, Mountain View.
Not sure they will make sense standalone but talk was recorded and will be available at some point.
Would also like to work this up into a longer talk at some point.
SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...Distilled
HTTP/2 and Service Works are becoming more established, yet the SEO community lacks awareness of what they are what they may mean for us. A lot of us know we need to know about them but we manage to keep putting it off. However, for both of these technologies, the next 12 months are going to be the turning point where we really can't avoid learning more about them. Tom will provide and accessible introduction to both, with a focus on what they are, how they work and what SEOs need to know. If you have been scared of jumping in to them until now, this session will help get you up to speed.
As browsers explode with new capabilities and migrate onto devices users can be left wondering, “what’s taking so long?” Learn how HTML, CSS, JavaScript, and the web itself conspire against a fast-running application and simple tips to create a snappy interface that delight users instead of frustrating them.
In the beginning, progressive enhancement was simple: HTML layered with CSS layered with JavaScript. That worked fine when there were two browsers, but in today's world of multiple devices and multiple browsers, it's time for a progressive enhancement reboot. At the core is the understanding that the web is not print - the same rules don't apply. As developers and consumers we've been fooled into thinking about print paradigms for too long. In this talk, you'll learn just how different the web is and how the evolution of progressive enhancement can lead to better user experiences as well as happier developers and users.
This deck is a conference-agnostic one, suitable to be shown anywhere without site-specific jokes!
How I learned to stop worrying and love the .htaccess fileRoxana Stingu
An introduction to .htaccess and what this file can do to help with SEO.
Redirects:
- Mod_alias and mod_rewrite
- Most common redirect types (domain migrations, subdomain to folder and folder renaming and how to deal with duplicate content).
Indexing & Crawling:
- Set HTTP headers for canonicals and meta robots for non-HTML files.
Website speed:
- Gzip and Deflate
- Cache control
This document discusses new features in HTML5 and CSS3. It provides examples of new HTML5 elements like <header>, <nav>, <article>, and new forms elements. It also covers new CSS3 features like gradients, rounded corners, shadows. Additionally, it mentions new JavaScript APIs in HTML5 for things like geolocation, drag and drop, offline web apps, storage and more. Finally, it encourages developers to use new web standards and provides resources for learning HTML5.
Scott Gledhill presents at Web Directions South Government 2008 in Canberra. You have sold the concepts of web standards to your company or boss, so what next? How do you make this work in the real workplace and what problems are you likely to encounter?
This document summarizes Christopher Schmitt's presentation on adaptive images in responsive web design. It discusses using feature testing versus browser sniffing to determine the appropriate image to serve, including testing browser width, screen resolution, and bandwidth. It then covers various techniques for serving adaptive images, such as using .htaccess files, the <picture> element, srcset attributes, and JavaScript libraries. It emphasizes using a mobile-first approach and progressive enhancement to provide the best experience for all devices.
An overview of web development essentials that will help you as a user experience designer to not only understand how to integrate designs with development components, but also to learn some tips on interacting effectively with developers.
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Nicholas Zakas
In the beginning, progressive enhancement was simple: HTML layered with CSS layered with JavaScript. That worked fine when there were two browsers, but in today's world of multiple devices and multiple browsers, it's time for a progressive enhancement reboot. At the core is the understanding that the web is not print - the same rules don't apply. As developers and consumers we've been fooled into thinking about print paradigms for too long. In this talk, you'll learn just how different the web is and how the evolution of progressive enhancement can lead to better user experiences as well as happier developers and users.
Today, a web page can be delivered to desktop computers, televisions, or handheld devices like tablets or phones. While a technique like responsive design helps ensure that our web sites look good across that spectrum of devices we may forget that we need to make sure that our web sites also perform well across that same spectrum. More and more of our users are shifting their Internet usage to these more varied platforms and connection speeds with some moving entirely to mobile Internet.
In this session we’ll look at the tools that can help you understand, measure and improve the web performance of your web sites and applications. The talk will also discuss how new server-side techniques might help us optimize our front-end performance. Finally, since the best way to test is to have devices in your hand, we’ll discuss some tips for getting your hands on them cheaply.
This presentation builds upon Dave’s “Optimization for Mobile” chapter in Smashing Magazine’s “The Mobile Book.”
This talk was given at the Responsive Web Design Summit hosted by Environments for Humans.
Web Performance Workshop - Velocity London 2013Andy Davies
The document summarizes a hands-on web performance workshop. It discusses tools and techniques that will be covered, including live analysis of websites. Attendees are encouraged to ask questions and suggest sites to test. Various tools for performance testing like PhantomJS, Phantomas, and WebPageTest are introduced. The workshop also discusses integrating performance tests with TAP and Jenkins. Additional topics include processing performance data in R, looking at live sites, issues like unnecessary repainting, and lessons learned in web performance optimization.
As programmers, we concentrate so much on the server/backend side of things that we often forget to measure performance from the Client's viewpoint. This presentation describes a bunch of techniques that can be used to speed up our websites.
The document discusses strategies for making mobile websites faster, including optimizing images, caching resources, minimizing redirects, leveraging new HTML elements like <picture>, compressing files, and ensuring smooth performance after page load. It emphasizes the importance of measuring site performance and adapting delivery based on network conditions and device capabilities.
Presentation at web2day in Nantes, France about the opportunities we have with HTML5 and how it means we move away from a static to an web of applications.
The Case for HTTP/2 - GreeceJS - June 2016Andy Davies
HTTP/2 is here but why do we need it, how is it different to HTTP/1.1 and what does the mean for developers?
Slides from my talk at GreeceJS in Athens, June 2016
The Fast, The Slow and The Unconverted - Emerce Conversion 2016Andy Davies
Slides from my talk at Emerce Conversion, Amsterdam on the importance of performance(page speed) for conversion.
Explore some of the performance issues we face when relying on third-party CRO products / services
Building an Appier Web - London Web Standards - Nov 2016Andy Davies
Explores progressive web apps, what advantages they have versus native apps, how to build, and test them, and some of the challenges we still have ahead.
Slides from talk at London Web Standards, Nov 2016
HTTP/2 is a new version of the HTTP network protocol that aims to improve website performance. It uses a single TCP connection to allow multiple requests and responses to be multiplexed together. This improves efficiency over HTTP/1.1. Additionally, HTTP/2 allows servers to push critical resources like CSS files to clients, potentially reducing load times. While HTTP/2 brings performance benefits, challenges remain around widespread server support and differing optimizations between HTTP/1.1 and HTTP/2.
Performance Testing using Real Browsers with JMeter & WebdriverBlazeMeter
Learn how to easily run performance tests with real browsers using Selenium WebDriver.
Ophir Prusak, BlazeMeter’s Chief Evangelist, gives step-by-step instructions on doing this using BlazeMeter and/or JMeter.
Learn how to:
- Correlate actual browser-based user experience with the load tests
- Run multiple Selenium Webdriver tests in parallel at scale by using the power of the cloud
- Do it all without any prior JMeter knowledge or experience!
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)Tammy Everts
This document discusses how slow page load times can hurt a website's bottom line. It notes that a 2% increase in conversions is seen for every 1 second improvement in load times. Examples are given of companies that cut load times in half and increased conversions by 9% and increased downloads by 15.4%. The document outlines two main causes of slow performance: pages being too big in size and pages being too complex. It provides tips on how to address these issues, such as compressing assets, lazy loading images, consolidating resources, and optimizing third-party scripts.
Sadece uygulamalarınızın değil database sorgularınızın da performansını ölçmek için JMeter kullanabilirsiniz.
Güçlü bir teknik test ürünü olan JMeter ile hangi sorgunuzun daha sorunlu olduğunu bulalım.
You can use JMeter not only for measuring your applications performance but also your database queries.
With this powerfull technical test tool, you can discover which database queries takes most of the time.
Speed matters, So why is your site so slow?Andy Davies
Slides from my talk at ReDevelop 2015
Covers business case for web performance, along with the fundamentals of how latency and the critical rendering path affect page load performance
This document discusses HTML5 and related web technologies. It introduces HTML5 semantics like header, nav, article, section, aside, and figure. It demonstrates using these elements to mark up a simple web page. It also covers HTML5 features like video, canvas, and SVG for rich media, as well as JavaScript APIs and libraries for manipulating these elements. Finally, it addresses questions around browser support for HTML5 and ensuring websites will work across browsers.
HTML5, The Open Web, and what it means for you - AltranRobert Nyman
This document discusses HTML5 and related topics. It provides code examples of new HTML5 elements like <header>, <article>, and <canvas>. It demonstrates how to add semantics, draw shapes, and load images onto a canvas. It also mentions new APIs for video, custom data attributes, and live regions for accessibility. The goal is to introduce HTML5 and showcase its capabilities for building engaging web content.
jQuery Mobile is a touch-optimized web framework for building mobile websites and apps. It uses HTML5 to provide a responsive interface for all mobile device platforms. Key features include pages, navigation, buttons, forms, lists and themes. Developers add mobile-specific enhancements to HTML by using data attributes. Pages are defined with divs having the data-role of "page" and include sections for headers, content and footers. Navigation is achieved through anchor tags linking page div IDs.
What is HTML - An Introduction to HTML (Hypertext Markup Language)Ahsan Rahim
What is HTML?
HTML stands for "Hypertext Markup Language". A standardized system for tagging text files to achieve font, colour, graphic, and hyperlink effects on World Wide Web pages.
Hypertext Markup Language is the standard markup language for creating the Web pages and Web Applications. With Cascading Style Sheets (CSS) & JavaScript for creating World Wide Web pages.
HTML is a computer language devised to allow website creation. These websites can then be viewed by anyone else connected to the Internet.
HTML is relatively easy to learn & it consists of a series of short codes typed into a text-file by the site author — these are the tags. The text is then saved as a html file, and viewed through a browser.
This document provides an introduction to HTML5:
- It discusses backwards compatibility, progressive enhancement, and the <!DOCTYPE html> declaration in HTML5.
- It describes the syntax options of HTML or XHTML and provides examples of new HTML5 elements like <video>, <canvas>, and various new <input> types.
- It includes a full sample HTML5 page with new elements, semantics, and WAI-ARIA roles for accessibility.
The document provides guidance on optimizing a website for search engine optimization (SEO). It includes recommendations for optimizing titles, meta descriptions, keywords, images, links, headings and content with keywords. It also recommends submitting the site to Google Search Console, creating an XML sitemap and robots.txt file, checking for duplicate and broken content, and monitoring the site health through Search Console.
The document provides an introduction to HTML basics including HTML document structure, common tags, and formatting. It discusses the <!DOCTYPE> declaration, <head> and <body> sections, common text formatting tags, headings, paragraphs, comments, and includes code examples.
Index of jquery template 2 Minuteman Summer Web Dev.Daniel Downs
This document contains the code for a multi-page mobile app template created with jQuery Mobile. It includes five "pages" with unique IDs that can link to each other. The first page serves as the home page and links to the other pages for tutorials, a dialog popup, course information, and important links. Each page has a consistent header, content area, and footer structure but can specify different themes.
The document provides an introduction to HTML basics, including:
- HTML document structure with <head> and <body> sections
- Common tags like headings, paragraphs, hyperlinks and images
- Attributes that can be added to tags
- How to add comments and formatting to text
- Examples of basic HTML pages using different tags
The document provides an introduction to HTML basics, including:
- HTML uses a client-server architecture with HTTP to deliver web pages as text files containing HTML tags
- HTML tags provide semantic structure and formatting for web page content, with opening and closing tags wrapping elements like paragraphs, headings, and images
- Simple HTML pages can be created with a text editor and include the basic <html>, <head>, <body> structure along with common text and image elements
The document discusses several common HTML attributes. It explains that the href attribute specifies the URL for hyperlinks defined by the <a> tag. The src attribute specifies the path to an image for the <img> tag. Attributes like width, height, and alt provide additional information about images. The style attribute can define styles for elements. The lang and title attributes provide language and tooltip information, respectively.
This document provides an introduction to HTML, CSS, and WordPress. It covers the basics of HTML including common tags for formatting text, images, and links. It then discusses using CSS to style HTML elements using classes, IDs, and other selectors. Finally, it gives an overview of how HTML and CSS are used together in WordPress templates and themes.
The document discusses key concepts in AngularJS including directives, data binding, modules, controllers, dependencies, services, and routing. It provides code examples to demonstrate how to set up a basic AngularJS app with directives, controllers, and services. It also discusses using AngularJS for single page applications and connecting to REST APIs.
This document contains instructions and information about creating basic HTML pages and adding CSS styling. It includes assignments to create folders and HTML files with headings, paragraphs and images. It also provides information on HTML elements, CSS selectors, internal and external style sheets, and validating code. Links to online resources for learning HTML, CSS and web development are included.
The document describes how to create a jQuery image gallery in a Java web project using NetBeans. It includes code for a JSP page that displays thumbnail images in a scrolling container. When a thumbnail is clicked, it loads and scales the full size image. Keyboard arrows and next/previous buttons can also be used to navigate between images. Styles are applied for layout, effects and interactions.
More Than You Ever Wanted to Know About Resource Hints - Harry Roberts (CSS W...Shift Conference
Resource Hints are a great way for developers to make their web pages faster by allowing us to be a little bit smarter than the browser. Although not a new specification—they’ve been around in some form or another for years!—are we truly getting the most out of them? And do we understand them thoroughly enough to use them most effectively? Heck, do we even know what a ‘Resource Hint’ is?! Well, by the end of this talk, we’ll all be experts. Let’s take a look at all of the different Resource Hints we have available to us, real-world examples of how best to use them, and learn about some of the more obscure intricacies and gotchas that we need to be aware of if we want to really get the best out of them (and to make sure that we really are being smarter than the browser).
The document discusses new features in HTML5 including semantic elements, form elements, and microdata. Some key points:
1. HTML5 introduces new semantic elements like <header>, <footer>, <nav>, <article>, and <section> to define different parts of a page and improve semantics and accessibility.
2. New form input types are added like email, url, tel, number, date to support validation and new UI widgets. Attributes like placeholder, autofocus, and autocomplete improve the form experience.
3. Microdata builds on microformats to embed structured data using attributes like itemscope, itemtype, and itemprop to identify items, properties and values for search engines and APIs
This document provides an overview of Bootstrap, a popular front-end framework for building responsive and mobile-first websites. It discusses how Bootstrap uses media queries and a mobile-first approach to achieve responsiveness across different devices. The document also covers getting started with Bootstrap, its grid system, layouts, forms, and workshops for using Bootstrap components. Finally, it lists some advantages and disadvantages of Bootstrap as well as resources for using and customizing it.
This document discusses web components and the different pillars that make them possible, including templates, shadow DOM, custom elements, and imports. It provides examples of how templates allow reusable markup, how shadow DOM enables encapsulation, and how custom elements define new semantic elements with associated functionality. The document explores how these pillars work together to provide reusable, encapsulated components for building web interfaces.
Similar to What does the browser pre-loader do? (20)
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018Andy Davies
Talk at Smashing Conf - 7th Feb 2018 (Video - https://vimeo.com/254703766)
Explores some of the issues that 3rd-party tags introduce when we add them to our sites, some ways of measuring the impact, and challenges we still have
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018Andy Davies
Talk at Smashing Conf - 7th Feb 2018 (Video - https://vimeo.com/254703766)
Explores some of the issues that 3rd-party tags introduce when we add them to our sites, some ways of measuring the impact, and challenges we still have
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018Andy Davies
This document discusses inspecting iOS app traffic with JavaScript by injecting scripts using Frida. It demonstrates capturing encrypted network traffic from an iOS app, extracting the TLS master secret and client/server randoms using a Frida script, and sending these values to the host computer to allow decrypting the traffic with Wireshark. The key steps are: using Frida to inject a script into an app, hooking the TLS PRF function to extract secret values, and sending these to the host to decrypt the HTTPS traffic in Wireshark. With these techniques, patterns in encrypted app traffic can be observed.
Slides from my talk at Bristol WebPerf Meetup 2017-07-20 where I talked about some of the approaches I use to persuade people that they should invest in making their sites faster
Speed: The 'Forgotten' Conversion FactorAndy Davies
Speed is a critical factor when it comes to converting browsers into buyers but it's often forgotten and other factors prioritised instead. Using real data from UK retailers this talk explores the relationship between speed and conversion
Building an Appier Web - Velocity Amsterdam 2016Andy Davies
Explores progressive web apps, what advantages they have versus native apps, how to build, and test them, and some of the challenges we still have ahead.
Slides from talk at Velocity Amsterdam 2016
Slides from my talk at NCC Group's Web Performance Day in May 2016.
Compares the features of apps and the web, what's great about each and explores some of the technologies that will allow us to build websites that can deliver native like experiences.
The document discusses how mobile sites are getting slower due to larger page sizes from images, CSS, JavaScript and fonts. It provides tips for optimizing images, such as using responsive images and smaller image sizes. It also recommends prioritizing critical content over non-essential elements like unnecessary JavaScript and web fonts to improve page load times.
HTTP/2 provides improvements over HTTP/1.1 such as multiplexed requests, header compression and priority hints from browsers that can reduce latency. While it shows benefits in testing, real-world impacts may be more modest depending on server and client configurations. Further optimizations are still needed and HTTP/2 opens up new possibilities around features like server pushing and progressive content delivery that could enhance performance.
The document discusses improving page load performance on websites. It notes that many sites are currently too slow and outlines some strategies to minimize latency, round trips, and blocking of page loads. These include prioritizing important content in the first round trip, automating optimization processes, and measuring performance directly in the user's browser to better understand why pages are slow and how to fix those issues. The document emphasizes that performance is an important part of user experience that needs more consideration in website design.
Are Today’s Good Practices... Tomorrow’s Performance Anti-Patterns?Andy Davies
The web is ever changing… browsers are evolving, new protocols are emerging and mobile continues its relentless rise. We’re already starting to bend some of the original performance rules and as the web changes further will our current good practices last, or will some become barriers that hinder performance?
Are Today's Good Practices… Tomorrow's Performance Anti-PatternsAndy Davies
The document discusses how current web performance optimization practices may become obsolete or anti-patterns with new web technologies like HTTP/2 and SPDY. It summarizes results of tests comparing HTTP/1.1 to SPDY, finding that SPDY is faster with minimal optimizations. The document also examines how practices like sharding assets and inline JavaScript may not work as expected or introduce new issues with these protocols. It recommends starting to experiment now with tools like mod_pagespeed and mod_spdy to understand the effects of new technologies on performance best practices.
The presentation will delve into the ASIMOV project, a novel initiative that leverages Retrieval-Augmented Generation (RAG) to provide precise, domain-specific assistance to telecommunications engineers and technicians. The session will focus on the unique capabilities of Milvus, the chosen vector database for the project, and its advantages over other vector databases.
Attending this session will give you a deeper understanding of the potential of RAG and Milvus DB in telecommunications engineering. You will learn how to address common challenges in the field and enhance the efficiency of their operations. The session will equip you with the knowledge to make informed decisions about the choice of vector databases, and how best to use them for your use-cases
this resume for sadika shaikh bca studentSadikaShaikh7
I am a dedicated BCA student with a strong foundation in web technologies, including PHP and MySQL. I have hands-on experience in Java and Python, and a solid understanding of data structures. My technical skills are complemented by my ability to learn quickly and adapt to new challenges in the ever-evolving field of computer science.
Corporate Open Source Anti-Patterns: A Decade LaterScyllaDB
A little over a decade ago, I gave a talk on corporate open source anti-patterns, vowing that I would return in ten years to give an update. Much has changed in the last decade: open source is pervasive in infrastructure software, with many companies (like our hosts!) having significant open source components from their inception. But just as open source has changed, the corporate anti-patterns around open source have changed too: where the challenges of the previous decade were all around how to open source existing products (and how to engage with existing communities), the challenges now seem to revolve around how to thrive as a business without betraying the community that made it one in the first place. Open source remains one of humanity's most important collective achievements and one that all companies should seek to engage with at some level; in this talk, we will describe the changes that open source has seen in the last decade, and provide updated guidance for corporations for ways not to do it!
The "Zen" of Python Exemplars - OTel Community DayPaige Cruz
The Zen of Python states "There should be one-- and preferably only one --obvious way to do it." OpenTelemetry is the obvious choice for traces but bad news for Pythonistas when it comes to metrics because both Prometheus and OpenTelemetry offer compelling choices. Let's look at all of the ways you can tie metrics and traces together with exemplars whether you're working with OTel metrics, Prom metrics, Prom-turned-OTel metrics, or OTel-turned-Prom metrics!
Chapter 3 of ISTQB Foundation 2018 syllabus with sample questions. Answers about what is static testing, what is review, types of review, informal review, walkthrough, technical review, inspection.
Cassandra to ScyllaDB: Technical Comparison and the Path to SuccessScyllaDB
What can you expect when migrating from Cassandra to ScyllaDB? This session provides a jumpstart based on what we’ve learned from working with your peers across hundreds of use cases. Discover how ScyllaDB’s architecture, capabilities, and performance compares to Cassandra’s. Then, hear about your Cassandra to ScyllaDB migration options and practical strategies for success, including our top do’s and don’ts.
Test Management as Chapter 5 of ISTQB Foundation. Topics covered are Test Organization, Test Planning and Estimation, Test Monitoring and Control, Test Execution Schedule, Test Strategy, Risk Management, Defect Management
This slide deck is a deep dive the Salesforce latest release - Summer 24, by the famous Stephen Stanley. He has examined the release notes very carefully, and summarised them for the Wellington Salesforce user group, virtual meeting June 27 2024.
Database Management Myths for DevelopersJohn Sterrett
Myths, Mistakes, and Lessons learned about Managing SQL Server databases. We also focus on automating and validating your critical database management tasks.
An Introduction to All Data Enterprise IntegrationSafe Software
Are you spending more time wrestling with your data than actually using it? You’re not alone. For many organizations, managing data from various sources can feel like an uphill battle. But what if you could turn that around and make your data work for you effortlessly? That’s where FME comes in.
We’ve designed FME to tackle these exact issues, transforming your data chaos into a streamlined, efficient process. Join us for an introduction to All Data Enterprise Integration and discover how FME can be your game-changer.
During this webinar, you’ll learn:
- Why Data Integration Matters: How FME can streamline your data process.
- The Role of Spatial Data: Why spatial data is crucial for your organization.
- Connecting & Viewing Data: See how FME connects to your data sources, with a flash demo to showcase.
- Transforming Your Data: Find out how FME can transform your data to fit your needs. We’ll bring this process to life with a demo leveraging both geometry and attribute validation.
- Automating Your Workflows: Learn how FME can save you time and money with automation.
Don’t miss this chance to learn how FME can bring your data integration strategy to life, making your workflows more efficient and saving you valuable time and resources. Join us and take the first step toward a more integrated, efficient, data-driven future!
Metadata Lakes for Next-Gen AI/ML - DatastratoZilliz
As data catalogs evolve to meet the growing and new demands of high-velocity, unstructured data, we see them taking a new shape as an emergent and flexible way to activate metadata for multiple uses. This talk discusses modern uses of metadata at the infrastructure level for AI-enablement in RAG pipelines in response to the new demands of the ecosystem. We will also discuss Apache (incubating) Gravitino and its open source-first approach to data cataloging across multi-cloud and geo-distributed architectures.
Dev Dives: Mining your data with AI-powered Continuous DiscoveryUiPathCommunity
Want to learn how AI and Continuous Discovery can uncover impactful automation opportunities? Watch this webinar to find out more about UiPath Discovery products!
Watch this session and:
👉 See the power of UiPath Discovery products, including Process Mining, Task Mining, Communications Mining, and Automation Hub
👉 Watch the demo of how to leverage system data, desktop data, or unstructured communications data to gain deeper understanding of existing processes
👉 Learn how you can benefit from each of the discovery products as an Automation Developer
🗣 Speakers:
Jyoti Raghav, Principal Technical Enablement Engineer @UiPath
Anja le Clercq, Principal Technical Enablement Engineer @UiPath
⏩ Register for our upcoming Dev Dives July session: Boosting Tester Productivity with Coded Automation and Autopilot™
👉 Link: https://bit.ly/Dev_Dives_July
This session was streamed live on June 27, 2024.
Check out all our upcoming Dev Dives 2024 sessions at:
🚩 https://bit.ly/Dev_Dives_2024
3. What if you could make your pages load 20% faster?
https://www.flickr.com/photos/chrisjohnbeckett/10446312055
4. preloading is the single biggest performance
improvement browsers have ever made
Steve Souders, April 2013
https://hacks.mozilla.org/2013/03/capturing-improving-performance-of-the-adaptive-web/comment-page-1/#comment-2060698
www.stevesouders.com/blog/2013/04/26/i/
5. most destructive “performance enhancement”!
I think there’s ever been
Matt Wilcox, creator of Adaptive Images, March 2013
Matt’s point is a bit more nuanced than this, read the full discussion:!
https://hacks.mozilla.org/2013/03/capturing-improving-performance-of-the-adaptive-web/comment-page-1/#comment-2060698
8. The explosion in device diversity?
http://opensignal.com/reports/2014/android-fragmentation/
9. … or maybe latency is our greatest enemy
https://www.flickr.com/photos/jjvaca/728072059
10. At best network packets travel at roughly 2/3 speed of light
https://www.flickr.com/photos/98640399@N08/9287370881
11. London to New York Round Trip Time = 56ms over fibre!
https://www.flickr.com/photos/https://www.flickr.com/photos/lwr/6979975029 dpapworth/482125035
12. (TCP Segments)
TCP and the Lower Bound of Web Performance
John Rauser
Might take more than one round trip
285kB
214kB
143kB
71kB
1 2 3 4 5 6 7 8 9 10 11
Round Trips
Size
18. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
19. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
20. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
GET /styles.css HTTP/1.1
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
21. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
22. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
GET /more-styles.css HTTP/1.1
23. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
24. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
GET /script.js HTTP/1.1
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
25. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
26. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
Must wait for:!
1. CSS download and OM construction!
2. JS download and execution
27. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
28. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
GET /another-script.js HTTP/1.1
29. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
30. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
Must wait for:!
<body>
1. JS download and execution
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
31. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
32. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
GET /image.jpg HTTP/1.1
33. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
34. example.html
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<link href="more-styles.css" rel="stylesheet">
<script src="script.js"></script>
<script src="another-script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
<p>Some more text and another picture! <img src="image-2.jpg"/></p>
</body>
</html>
GET /image-2.jpg HTTP/1.1
35. What does the waterfall look like?
scripts download in series
WebPagetest - IE7, Cable, Korea
36. What if we decouple resource discovery from DOM construction?
When DOM construction is blocked !
! e.g. waiting for script to download and execute!
!
Search rest of document for external resources!
! e.g. <link rel=“stylesheet”…>, <script src=…>, <img src=…>!
!
Download and cache discovered resources ready for DOM
construction
37. IE 7 (doesn’t have a preloader)
IE 11 (has a preloader)
scripts download in series
parallel download,
execution still in series
39. Script inserted resources aren’t discoverable
<script type="text/javascript">
function() {
Browser won’t discover
script until outer script
inserts it into DOM
var js = document.createElement('script');
js.async = true;
js.src = 'script.js';
var e = document.getElementsByTagName('script')[0];
e.parentNode.insertBefore(js, first);
})();
</script>
40. Non-blocking loading using async attribute
!
<script async src="script.js"></script>
Widely supported (82%) and discoverable by preloader
41. Limits to what preloader can discover
HTML
CSS
DOM
CSSOM
Render!
Tree
JavaScript Layout Paint
42. Limits to what preloader can discover
HTML
CSS
DOM
CSSOM
Render!
Tree
Fonts and background
images discovered when
render tree builds
JavaScript Layout Paint
43. Possible workarounds?
dataURIs (will make CSS larger)!
HTTP/2 or SPDY server push!
<link rel=“subresource… (Chrome only and effectively broken)
44. Download order != Document order
https://www.flickr.com/photos/add1sun/4993432274
45. Browsers can prioritise download order
Based on:!
! Resource type - CSS, JS, image etc.!
! Visibility!
! Element attributes e.g. <script async, defer!
! W3C Resource Priorities
46. W3C Resource Priorities - adds lazyload attribute
(also look at Ilya Grigorik’s proposal for Resource Hints)
48. Prioritisation sometimes has unexpected consequences
These JS resources are
at the foot of the body!
(perhaps they should merge them into
fewer resources but…)
52. Watch out for the parser restarting
Content-Type: text/html
!
charset isn’t specified in HTTP
response so IE9 assumes ISO 8859-1
!
As it parses the HTML it then finds
!
<meta charset=“utf-8">
!
Similar issues can occur with <base>
53. Do odd things and you may get odd behaviour!
<html>
<head>
<script>
var file = window.innerWidth < 1000 ? "mobile.css" : "desktop.css";
document.write('<link rel="stylesheet" type="text/css" href="css/' + file + '"/>');
</script>
</head>
<body>
<img src="img/gallery-img1.jpg" />
<img src="img/gallery-img2.jpg" />
<img src="img/gallery-img3.jpg" />
<img src="img/gallery-img4.jpg" />
<img src="img/gallery-img5.jpg" />
<img src="img/gallery-img6.jpg" />
</body>
</html> This is based on a suggested Stack Overflow answer!
54. Do odd things and you may get odd behaviour!
IE 9 Download of CSS
blocked by images
55. Can use Cuzillion to test simple scenarios
https://www.stevesouders.com/cuzillion/
56. Latency is web performance enemy #1!
Preloader helps hide the latency!
Can only ‘see’ resources in markup!
May not load resources in order we intend!
Getting methods to hint our intent to browsers