Content

Most frequent improvement axis

Reduce HTTP requests count

Use client-side processing

Use caches

Reduce sizes

Example: Angular.js

(Use a Global Network)

Goal: Serve content to end-users with:

Optimize depending on the context

Context:

→ adapt size of resources (images)
→ adapt complexity of page

Reduce first rendering latency

Optimize on the service side

Investigation tools

Timeline

in Chrome:
>> Developer Tools >> Performance >> (Record button)

Recording of:

Timeline

images/chrome_timeline.png

Boomerang

Performance monitoring from the backend

Online tools

Online application executing a number of predefined tests on a given web page.

Gives an overal evalution (/ 100 points) + detailed report with advices.

Only for applications visible publicly

Lighthouse

→ verify criterias defined by the PWA specification (see further), and give a global evaluation (/ 100 points) + detailed report with advices

Progressive Web Apps (PWA)

→ Bring user experience of native apps to web apps

This is made possible by modern web technologies

According to Google, they must have the following characteristics:

progressive - responsive - work offline - app-like - fresh - safe - discoverable - re-engageable - installable - linkable

HTTP/2

Reduce latencies through:

→ a number of current practices should disappear

Other topics

Exercise: Elements order

Note Disable the cache for this exercise: Developer Tools >> Network >> ⊠ Disable cache
elementsOrder.html
<html>
<head>
    <title>Elements order</title>
<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.12.2/dojo/dojo.js"></script>
<script src="https://code.angularjs.org/tools/system.js"></script>
<script src="https://code.angularjs.org/tools/typescript.js"></script>
<script src="https://code.angularjs.org/2.0.0-alpha.39/angular2.dev.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/2.6.2/phaser.js"></script>
</head>
<body>
Here is (finally!) the page...
</body>
<html>

That’s all folks!