Kompresja stron internetowych

Podobne dokumenty
Patryk Jar Meet.js, Gdańsk 11 marca 2013 r. MODULARNY JAVASCRIPT

PERFORMANCE W JOOMLA! JAK SPRAWIĆ ABY STRONA DZIAŁAŁA SZYBCIEJ?

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

FEO w Joomla!, czyli jak przyspieszyć swoją stronę

Wykorzystano fragmenty wykładu Krystyny Dziubich GRAFIKA WEKTOROWA. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska.

Tworzenie Stron Internetowych. odcinek 9

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Tworzenie Stron Internetowych. odcinek 5

Danuta ROZPŁOCH-NOWAKOWSKA Strona Moduł 4. Przykład 1. Przykład 2. HTML 4.01 Transitional).

Specyfikacja techniczna kreacji HTML5

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

plansoft.org Zmiany w Plansoft.org

Przykład integracji kalkulatora mbank RATY na platformie IAI

Laboratorium 1: Szablon strony w HTML5

SEO Audyt. Podsumowanie. 51/100 punktów. Masz 11 rzeczy, które możesz poprawić! Uzyskany wynik: Data przeprowadzenia: :33:47

Specyfikacja techniczna dot. mailingów HTML

Tworzenie Stron Internetowych. odcinek 5

Mailingi HTML. Specyfikacja techniczna

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Web Performance Optimisation - szybsze strony internetowe

Podstawy (X)HTML i CSS

Przedmiot: Grafika komputerowa i projektowanie stron WWW

Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych

W ogólności znaczniki mogą również posiadać atrybuty które pozwalają wpływać i manipulować własnościami znaczników lub przenosić dodatkowe informacje:

Sierpień 2015 rozwiązanie plik: index.htlm

Responsywne strony WWW

ANIMACJE W CSS3. Czyli po co płacić podatek o Javy Script i JQuery

O stronach www, html itp..

Zawartość specyfikacji:

Dokumentacja Skryptu Mapy ver.1.1

I. Dlaczego standardy kodowania mailingów są istotne?

Podstawy JavaScript ćwiczenia

W3 Total Cache. Skuteczne przyśpieszanie WordPressa. Bartosz Romanowski

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: Wersja: 1.

TECHNIKI WWW (WFAIS.IF-C125) (zajęcia r.)

WYKŁAD 5 BIBLIOTEKA JQUERY CZĘŚĆ 1

Multimedia i interfejsy. Ćwiczenie 5 HTML5

Wykład 6 Skrypty typu JavaScript. Technologie internetowe Zofia Kruczkiewicz

Hyper Text Markup Language

Elementarz HTML i CSS

Jak okiełznać frontend w Django? Piotr Maliński

Dokumentacja imapliteapi

Optymalizacja logo strony. Krok po kroku... Spis treści

Zastosowanie kaskadowych arkuszy stylów (CSS - Cascading Style Sheets) w technologii JavaServer Faces

Laboratorium 6 Tworzenie bloga w Zend Framework

Studia Podyplomowe Grafika komputerowa i Techniki Multimedialne, 2015, semestr II, dr inż. Robert Banasiak Projektowanie Stron WWW.

Krok 1: Stylizowanie plakatu

Sieciowe Technologie Mobilne. Laboratorium 1

Zdefiniowane style mogą określać układ treści na stronie i sposób jej formatowania np. kolor czcionki, pogrubienia, tło tabel, rysunków itp.

Proste kody html do szybkiego stosowania.

Specyfikacja reklamy tekstowej i bannerowej na portalu GazetaPraca.pl

Google Web Toolkit. Piotr Findeisen

Dzięki arkuszom zewnętrznym uzyskujemy centralne sterowanie wyglądem serwisu. Zewnętrzny arkusz stylów to plik tekstowy z rozszerzeniem css.

Wybrane działy Informatyki Stosowanej

Dokument hipertekstowy

TECHNIKI WWW (WFAIS.IF-C125) (zajęcia r.)

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Witryny i aplikacje internetowe

Specyfikacja reklamy tekstowej i bannerowej na portalu GoldenLine.pl

Który z wymienionych programów pozwala na edycję ruchu po ścieżce?

FLEX ( ) Przygotowanie środowiska developerskiego Hello world w MXML Hello world w ActionScript

Szybko, prosto i tanio - ale czy na pewno?

używane skróty: HTTP - protokół do transferu tekstu, hipertekstu, zbiorów binarnych URL - jednolity lokalizator zasobów

MVC w praktyce tworzymy system artykułów. cz. 2

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Wordpress: Joomla! Drupal.

CSS + HTML. Front end publikacji internetowej. Cięcie grafiki i CSS Ćwiczenia z CSS Typografia CSS image sprites

STRONY INTERNETOWE mgr inż. Adrian Zapała

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

PORADNIK KODOWANIA: CSS

Systemy internetowe HTML + CSS - dodatki

Wybrane działy Informatyki Stosowanej

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Aplikacje WWW - laboratorium

Raty PayU - Optymalne Wdrożenie

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Tworzenie Stron Internetowych. odcinek 6

HTML (HyperText Markup Language) hipertekstowy język znaczników

Witryny i aplikacje internetowe. mgr inż. Remigiusz Pokrzywiński

HTML (HyperText Markup Language)

Zdarzenia Zdarzenia onload i onunload

Kaskadowość stylów określa pierwszeństwo w oddziaływaniu na te same elementy strony różnych stylów.

XHTML Budowa strony WWW

Tips (mainly) by Google and Kamil Majdanik

Aplikacje internetowe - laboratorium

Specyfikacja techniczna form reklamowych do umieszczenia na stronie

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

PRÓBNY EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE CZĘŚĆ PISEMNA

Tworzenie Stron Internetowych. odcinek 10

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Nazwa implementacji: CSS i box model. Autor: Opis implementacji: Poznajemy podstawy CSS oraz dowiadujemy się o rozmieszczaniu elementów na stronie.

SterBox. Przygotowanie Strony Użytkownika

Instrukcja platformy wideo

Jeśli dodamy jakieś parametry stylów dla poszczególnych DIV-ów, np.: <div style="float: left">pierwsza treść, zdjęcie, tabele lub cokolwiek </div>

1. Otwórz app_advanced.html i skopiuj i wklej następujący kod bezpośrednio w tagach <head>:

Kompozycja Proceduralna

Bazy danych. dr Radosław Matusik. radmat

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

Transkrypt:

Kompresja stron internetowych Patryk Jar Tech 3 Camp, 18 czerwca 2013 r.

O mnie Patryk Jar Webdeveloper Nor-sta (nor-sta.eu) yarpo.pl 2

3

Agenda Lepszy kod w przeglądarce Mniej żądań HTTP Mniej danych Narzędzia Ile możemy zyskać w praktyce? Podsumowanie 4

Lepszy kod CSS Unikaj @import, CSS expressions Szybsze selektory: a#id #id body div body > div div 5

Lepszy kod HTML Przeskalowane grafiki Zwalczaj divitis Pliki wystarczy ładować raz Ile razy ładujesz jquery? Unikaj błędów 404, 500 itp. Nie zostawiaj pustych <img src="" /> 6

JS i CSS <html> <head> <meta charset="utf-8" /> <title>example.com</title> <link rel="stylesheet" type="text/css" href="x.css"/> <link rel="stylesheet" type="text/css" href="y.css"/> </head> <body> <!-- tu cały kod HTML strony --> <script src="a.js"></script> <script src="b.js"></script> </body> </html> 7

Zamiast document.write document.write('<script src="script.js"></sc'+'ript>'); function loadjs(fileurl) { var e = document.createelement("script"); e.async = true; e.src = fileurl; document.body.appendchild(e); } 8

Mniej żądań HTTP Content Delivery Network Google Microsoft Wiele, wiele innych <script src="//ajax.googleapis.com/ajax/ libs/jquery/1.10.1/jquery.min.js"></script> 9

Scalanie plików CSS + + = 10

CSS Sprite Zamiast wielu osobnych plików (6 kb) Jeden (4kB) img { background: url(sprite.png); width: 18px; height: 18px; } #myicon { background-position: -40px 0; } <img src="blank.png" id="myicon" /> 11

CSS Sprite - zysk Pojedyncze grafiki CSS Sprite Liczba żądań HTTP 11 2 Rozmiar danych 6kB 4kB Czas ~500ms ~150ms 12

Grafika jako base64 <img src="blank.png" /> <img src="data:image/png;base64, ivborw0kggoaaaansuheugaaaaeaaaabca YAAAAfFcSJAAAAC0lEQVQIW2P8DwQACgAD /il4qj8aaaaasuvork5cyii=" /> 13

Moduły JavaScript Moduły JS (np. AMD, CommonJS) Wielokrotnie wywoływany moduł = 1 żądanie Ładowanie większej liczby plików równolegle Scalenie do jednego pliku 14

Zapakuj lepiej dane 15

JavaScript przed kompresją define("dijit/toolbar", ["require", "dojo/_base/declare", "dojo/has", "dojo/keys", "dojo/ready", "./_Widget", "./_KeyNavContainer", "./_TemplatedMixin"], function(require, declare, has, keys, ready, _Widget, _KeyNavContainer, _TemplatedMixin){ return declare("dijit.toolbar", [_Widget, _TemplatedMixin, _KeyNavContainer], { /* tu jeszcze 10 linii kodu */ templatestring: '<div class="dijit" role="toolbar" tabindex="${tabindex}" data-dojoattach-point="containernode"></div>', baseclass: "dijittoolbar", postcreate: function() { this.inherited(arguments); this.connectkeynavhandlers( this.islefttoright()? [keys.left_arrow] : [keys.right_arrow], this.islefttoright()? [keys.right_arrow] : [keys.left_arrow] ); } }); }); 16

JavaScript po kompresji define("dijit/toolbar",["require","dojo/_base/declare","dojo/has","dojo/keys","dojo/ready","./_ Widget","./_KeyNavContainer","./_TemplatedMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8){ if(_3("dijit-legacy-requires")){ _5(0,function(){ var _9=["dijit/ToolbarSeparator"]; _1(_9); }); } return _2("dijit.Toolbar",[_6,_8,_7],{templateString:"<div class=\"dijit\" role=\"toolbar\" tabindex=\"${tabindex}\" data-dojo-attach-point=\"containernode\"></div>", baseclass:"dijittoolbar",postcreate:function(){ this.inherited(arguments); this.connectkeynavhandlers(this.islefttoright()?[_4.left_arrow]:[_4.right_arrow],this.islef ttoright()?[_4.right_arrow]:[_4.left_arrow]); }}); }); 17

Kompresja JavaScript Moduł Bez kompresji Skompresowany Zysk dojo/request/iframe 12kB 7kB 41% dojo/selector/acme 49kB 13kB 73% dojo/colors 7kB 5kB 29% dojo/cookie 3kB 2kB 33% dijit/menuitem 7kB 3kB 57% dijit/dialog 22kB 9kB 60% dijit/place 14kB 4kB 71% tct/widgets/nodebrowser 11kB 5kB 54% 18

GZIP 19

Ciasteczka Wysyłane w nagłówku żądania HTTP Inna domena na pliki statyczne HTML 5: sessionstorage, localstorage 20

Narzędzia Diagnoza YSlow Google PageSpeed Insights Kompresja JavaScript Shrinksafe JSmin Closure Compiler Kompresja CSS YUI Compressor CSS Sprite Dowolny edytor, wiele narzędzi online 21

Ile Nor-sta zyskała na kompresji? Prototyp TCT 5.0 Oficjalne wydanie TCT 5.0 Liczba żądań HTTP 250 30 Rozmiar pobranych plików* ~1,2 MB ~300 kb ready 90 sekund 7 sekund * - dane przesłane po sieci, w oficjalnym wydaniu były poddane kompresji GZIP 22

23

Dziękuję za uwagę Jar.Patryk@gmail.com yarpo.pl 24

Pytania? 25