Frontend optimizations. Θεοδόσης Σουργκούνης

Σχετικά έγγραφα
ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML. Decode, ISSEL. Θεοδόσης Σουργκούνης Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου

Περιεχόμενο και μορφοποίηση. Πότε χρησιμοποιώ το ένα και πότε το άλλο.

HTML 1. Στόχος της ώρας 11/3/2014. Εισαγωγή της γλώσσας HTML σε αρχάριο επίπεδο:

HTML 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

A J A X AJAX Γιάννης Αρβανιτάκης

HTML 1. ιδάσκοντες: Π. Αγγελάτος,. Ζήνδρος Επιµέλεια διαφανειών:. Ζήνδρος. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ HTML

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Σχεδίαση και Ανάπτυξη Ιστότοπων

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML ΣΧΟΛΙΚΟ ΒΙΒΛΙΟ ΚΕΦΑΛΑΙΟ 11 Ευάγγελος Χ. Ζιούλας (Καθηγητής Πληροφορικής)

7-22 Οκτωβρίου Μία γιορτή δημιουργίας με κώδικα. Europe Code Week

Θέματα Προγραμματισμού Διαδικτύου Εισαγωγή - Πρωτόκολλα

Σενάρια ανάκτησης πληροφορίας στο «παραδοσιακό» Internet

ADMAN Interstitial Creatives

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Π ΤΥ Χ ΙΑ Κ Η ΕΡΓΑΣΙΑ

Ενότητα 1: HTTP, Clients και Servers. (Web, το θεμέλιο του Σημασιολογικού Ιστού)

Διαδικτυακά Πολυμέσα και Γραφικά

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Διαδικτυακά Πολυμέσα και Γραφικά. Javascript και Web. Στελιος Σφακιανάκης Φθινόπωρο 2018

Βασικές Έννοιες Web Εφαρμογών

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Άσκηση 6 Επαναληπτική Άσκηση HTML

Τεχνολογίες Διαδικτύου

Η γλώσσα HTML. Επιμέλεια: Δέγγλερη Σοφία

Τεχνολογίες Ανάπτυξης Εφαρμογών στο WEB

Θέματα Προγραμματισμού Διαδικτύου ~ HTML ~

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Σχεδιασμός και Ανάπτυξη Ιστότοπων

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Η γλώσσα XHTML: διαφορές με HTML, μετατροπή

Δομή παρουσίασης. Σχεδιασμός και υλοποίηση συστήματος παρακολούθησης και ελέγχου πωλητών και δημιουργία εφαρμογής σε έξυπνο κινητό

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Website review lalemou.com

Προγραμματισμός Παγκόσμιου Ιστού

Εισαγωγή σε HTML και CSS. Παναγιώτης Τσαρχόπουλος

Ασφάλεια, Διαθεσιμότητα και Ταχύτητα για τις Web Εφαρμογές

Ενότητα 2: HTTP, Clients και Servers (II) (Web, το θεμέλιο του Σημασιολογικού Ιστού)

HTML HTML5...CSS

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

οµή της παρουσίασης Στατιστικά στοιχεία Άδειες χρήσης Γενικά στοιχεία Βασικά χαρακτηριστικά του browser

ΤΕΧΝΟΛΟΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΤΟΠΟΥ (Web Site Design Technologies)

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML

Code Quality Assurance. Η εκτίμηση βασίζεται πάντα σε δύο ειδών κριτήρια. Στα αντικειμενικά και στα ειδικά.

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

Ετικέτες HTML. <!-->: Τα σχόλια χρησιμοποιούνται για να γράφουμε σημειώσεις μέσα στον

Διάλεξη 6η CSS Advanced

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

MB MB MB MB MB

ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ : ΜΗΧΑΝΙΣΜΟΙ ΣΥΛΛΟΓΗΣ ΣΤΟΙΧΕΙΩΝ ΣΤΟ ΔΙΑΔΥΚΤΙΟ (COOKIES)

Διάλεξη 2η Εισαγωγή στο CSS

Μηχανή αναζήτησης βασισμένη σε AJAX και Soundex. Πτυχιακή Εργασία

Προγραμματισμός Διαδικτύου

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Website review diavolakos.net

Βασίλειος Κοντογιάννης ΠΕ19

Εφαρµογές και Περιβάλλοντα Εργασίας AJAX

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Προγραμματισμός Παγκόσμιου Ιστού

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

1.1 ιαδίκτυο και Εφαρµογές Τοπικές Εφαρµογές ικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές... 8

Πληροφορίες για το μάθημα

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification

Προγραμματισμός Ιστοσελίδων (Web Design)

Apache Jmeter. Αν θέλετε να τεστάρετε μία υφιστάμενη web εφαρμογή π.χ. το Java Petstore

Το πρωτόκολλο ΗΤΤΡ (HyperText Transfer Protocol)

Τεχνικός Εφαρμογών Πληροφορικής

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή):

Προγραμματισμός για το Web

2. Επιλέξτε την σωστή ετικέτα HTML που προσφέρει το μεγαλύτερο φόντο κειμένου. <head> <heading> <h6> <h1>

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 2 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» Μέρος 1 ο HTML CSS Bootstrap v3.

Chrome, 11 τρόποι να κάνεις το Browser σου πιο γρήγορο

Για το μέρος αυτό της άσκησης θα υλοποιήσετε μια εφαρμογή κελύφους η οποία θα χρησιμοποιείται ως εξής:

Συμβουλές και τρικ για σίγουρα αποτελέσματα

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Οδηγός εφαρμογής v1.0

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΔΝΓΔΙΚΣΙΚΔ ΑΠΑΝΣΗΔΙ 3 εο ΓΡΑΠΣΗ ΔΡΓΑΙΑ

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 6 ο Τεχνολογίες Διαδικτύου: HTML II

Σχεδιασμός και Ανάπτυξη Ιστότοπων

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

Website review thebrandstore.gr

WEB SECURITY. Διαφάνειες: Δημήτρης Καρακώστας Διονύσης Ζήνδρος. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Σύστημα διαχείρισης περιεχομένου (Content Management System)

Διαβάστε στο Παράρτημα Α.1 πώς θα γράψετε ένα πρόγραμμα PHP για την παροχή δεδομένων σε μορφή διαφορετική από την HTML.

Προγραμματισμός Παγκόσμιου Ιστού

Δομή διαδικτυακών Πολυμέσων

Εργαστήριο 3. Εγκατάσταση LAMP Stack στο AWS

: 29 εκ :14 Reported period: εκ 6 6 OK Summary Πρώτη επίσκεψη Summary Τελευταία επίσκεψη 15 εκ - 23:19 Μήνας εκ 31 εκ - 04:06 Μοναδικοί επισκέπ

Βασίλειος Κοντογιάννης ΠΕ19

Σύστημα Διαχείρισης Περιεχομένου

Web 論 文. Performance Evaluation and Renewal of Department s Official Web Site. Akira TAKAHASHI and Kenji KAMIMURA

JAVASCRIPT 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Transcript:

Frontend optimizations Θεοδόσης Σουργκούνης

About me Σουργκούνης Θεοδόσης, thsourg@gmail.com Φοιτητής Ηλεκτρολόγος Μηχανικός, ΑΠΘ Frontend Web Developer Jan 2009: Kamibu www.zino.gr July 2009: Fardini Media - www.dailysteals.com

Website Optimizations Speed, Speed, Speed Καθυστέρηση στον Server Χρόνος εκτέλεσης (php) Χρόνος SQL(Queries και traffic στους servers) Καθυστέρηση στον Client Καθυστέρηση στο δίκτυο Δεδομένα μεταξύ του Server και του Client HTTPS

Request Lifetime Browser Server Click Δημιουργία Request Ανάλυση απάντησης Συγκέντρωση εικόνων, stylesheet etc Ανάλυση Request Επικοινωνία με τη ΒΔ Δημιουργία Εγγράφου Αποστολή Απάντησης Εμφάνιση σελίδας

Firebug HTML tab

Firebug - Network tab

Chrome Developer Tools - Network

yslow Network και Browser optimizations Κάποια bullets πιο σημαντικά από άλλα

yslow - 1 1. Reduce the number of DOM elements 2. Put CSS at top/javascript at bottom 3. Use a Content Delivery Network 4. Compress components with gzip 5. Make fewer HTTP requests 6. Merge/Minify CSS/JavaScript 7. Reduce cookie size/use cookie-free domains 8. Add Expires headers

yslow Reduce the number of DOM elements Χρήση μόνο όσων elements χρειάζονται για την περιγραφή των δεδομένων Αποφυγή εμφωλεύσεων σε μεγάλο βάθος Δυναμική δημιουργία στοιχείων που δεν είναι ορατά εξ αρχής

yslow Put CSS at top/javascript at bottom Η CSS συμβάλει στην εμφάνιση της σελίδας Θέλουμε να φορτώσει όσο το δυνατόν πιο γρήγορα Την τοποθετούμε στην αρχή του εγγράφου μας, ως παιδί στο <head> Φορτώνει παράλληλα με τις εικόνες της σελίδας μας

yslow Put CSS at top/javascript at bottom Η JavaScript τρέχει αφού φορτωθεί η υπόλοιπη σελίδα. Τις περισσότερες φορές, δε συμβάλει στην εμφάνισή της. Την εισάγουμε στο τέλος του εγγράφου, αμέσως πριν το </body> Αν φορτωθεί πριν από στατικό περιεχόμενο, το καθυστερεί.

yslow Put CSS at top/javascript at bottom

yslow Put CSS at top/javascript at bottom

yslow Put CSS at top/javascript at bottom

yslow Content Delivery Network Πάντα χρησιμοποιούμε CDN που παρέχονται από άλλους (συνήθως google) Σε περίπτωση που έχουμε πολλούς, κατανεμημένους χρήστες, χρησιμοποιούμε δικό μας CDN για στατικό περιεχόμενο: CSS/JS/πολυμέσα Σχετικά φθηνό, από την Amazon ή αντίστοιχα clouds

yslow Compress components with gzip Τα έγγραφα κειμένου, όπως η CSS, η JS και η HTML μπορούν να συμπιεστούν σε λόγους της τάξης του 70%. Η συμπίεση μέσω gzip υποστηρίζεται από όλους τους browsers και τους web servers. Γίνεται ενεργοποιώντας μια ρύθμιση, δεν επηρεάζει τον προγραμματιστή ή τον χρήστη.

yslow Make fewer HTTP Requests 1 request για το Document 1 request για τη CSS Merge-Minify CSS 1-2 requests για την JavaScript Merge-Minify javascript 1 request για CSS backgrounds Sprites

yslow sprites

yslow Merge CSS/JavaScript Κατά την ανάπτυξη του κώδικά μας, πολλές φορές είναι βολικό να έχουμε πολλά αρχεία για τη CSS και την JavaScript, ένα για κάθε σελίδα. Σε επίπεδο production, θέλουμε να έχουμε ένα αρχείο ώστε να μειώσουμε τον αριθμό των request/σελίδα Κάνουμε merge τα αρχεία μας, κατά τη διάρκεια του commit, ως post-commit hook

yslow Minify CSS/JavaScript Στην CSS και την JavaScript υπάρχουν πολλά whitespaces, σχόλια κλπ. Δεν χρειάζονται για τη λειτουργία του κώδικά μας, υπάρχουν μόνο για την αναγνωσιμότητά του. Χρησιμοποιούμε αυτοματοποιημένα εργαλεία για να κάνουμε minify (να αφαιρέσουμε whitespace/comments) Μπορεί να γίνει κατά τη διάρκεια του commit ως post-commit hook Οι διαδικασίες minify και merge μπορούν να γίνουν από το ίδιο post-commit script

yslow Reduce cookie size/use cookie-free domains Με κάθε request, ο χρήστης στέλνει όλα τα cookies του ασυμπίεστα (non-gzipped). Όσο λιγότερα cookies, τόσο το καλύτερο για την ταχύτητα των request Το στατικό περιεχόμενο δε χρειάζεται τα cookies Χρησιμοποιήστε urls όπως: static.example.com για εικόνες, css, js. Βεβαιωθείτε ότι δεν αποστέλλονται τα cookies σε αυτά τα urls.

yslow Expires headers Τα στατικά δεδομένα παραμένουν τα ίδια, πάντα. Δε χρειάζεται να τα φορτώνουν οι χρήστες κάθε φορά. Γι αυτό χρησιμοποιούμε expires headers. Expires: Fri, 11 Feb 2022 15:54:57 GMT Θεωρητικά, όταν μπαίνει ο χρήστης σε μια σελίδα για 2 η φορά, θα πρέπει να κάνει μόνο 1 request

yslow - 2 9. Avoid empty src or href 10. Reduce DNS lookups 11. Avoid url redirects

yslow - 3 12. Avoid HTTP 404 (Not Found) error 13. Use a favicon - Make it small and cacheable 14. Avoid @import or inline css/js

yslow - 4 15. Optimize Images (lossless compression) 16. Do not scale images in HTML

DOCTYPE Χρησιμοποιούμε XHTML strict <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> Αν δε χρειαζόμαστε HTML 5 <!DOCTYPE html> Μας υποχρεώνει να γράφουμε σωστή HTML Είναι πιο αυστηρή στην σύνταξή της

XHTML < XML Πάντα σωστή δομή elements Λάθος <ul> <li>λανθασμένη <li>λίστα </ul> Σωστό <ul> <li>σωστή</li> <li>λίστα</li> </ul>

XHTML < XML Πάντα σωστή δομή elements Λάθος <img src= avatar.jpg alt= george > Σωστό <img src= avatar.jpg alt= george />

XHTML Validator Σε κάθε περίπτωση, ελέγχουμε την εγκυρότητα του κώδικά μας στον επίσημο W3C validator http://validator.w3.org/

Σημασιολογία Καθώς οι μηχανές αναζήτησης γίνονται πιο «έξυπνες», ελέγχουν περισσότερα πράγματα σε κάθε σελίδα. Χρησιμοποιούμε το σωστό HTML element για κάθε περίπτωση: Headers (h1, h2 etc) για επικεφαλίδες. Λίστες (ul, ol) για αριθμημένες/μη αριθμημένες λίστες <p> για παραγράφους. <em> για έμφαση, <strong> για περισσότερη έμφαση. Χρησιμοποιούμε πίνακες ΜΟΝΟ όταν έχουμε δεδομένα σε μορφή πίνακα.

Επικεφαλίδες <h1> <h2> <h2>

Λίστες

Διάσημοι επιστήμονες Όνομα Επίθετο Τομέας Ανακάλυψη Alan Turing Επιστήμη Υπολογισμού Turing machines Bertrand Russell Φιλοσοφία Tractatus Αρχιμήδης Μηχανικός Μοχλός Leonard Euler Μαθηματικά e ιπ + 1 = 0