рдЖрд╕рд╛рди рд╡реЗрдмрд╕рд╛рдЗрдЯ рдпрд╛ рдХреИрд╕реЗ рдПрдХ рдЖрд╣рд╛рд░ рдкрд░ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбрд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдЙрди рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдмрдбрд╝реА рд╡реЗрдм рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рдЧрд╛рдЗрдб рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ?
рдФрд░ рдЙрдмрд╛рдК рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдХреБрдЫ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк? рдФрд░ рдЕрдЧрд░ рдЖрдк Briza Bueno (Americanas.com), Davidson Fellipe (Globo.com), Giovanni Keppelen (ex-Peixe Urbano), Jaydson Gomes (Terra), Mara Duran (Twitter), рдорд╛рдЗрдХ рдЯреЗрд▓рд░ (рдУрдкреЗрд░рд╛), Renato Mangini (Google) рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ ), рдФрд░ S├йrgio Lope (Caelum) рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП?

рдпрд╣реА рд╣рдордиреЗ рдХрд┐рдпрд╛ рд╣реИ! рд╣рдо рдЖрдкрдХреЛ рдлрд╛рд╕реНрдЯ рд╕рд╛рдЗрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕рд┐рдЦрд╛рдПрдВрдЧреЗред

- рдЬрд╝реЗрдиреЛ рд░реЛрдЪрд╛ , рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░ред



рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЯ рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рд▓реЛрдб рд╣реЛрддреА рд╣реИ?
рдирд┐рд╕реНрд╕рдВрджреЗрд╣! рдФрд░ рдпрд╣ рдордд рдХрд╣реЛ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рддреЛ рдХреНрдпреЛрдВ рдзреАрдореА рд╕рд╛рдЗрдЯреЗрдВ рдЕрднреА рднреА рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЖрддреНрдорд╛ рдкрд░ рдПрдХ рдЕрдкреНрд░рд┐рдп aftertaste рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рджреМрд░рд╛ рдХрд┐рдпрд╛ рдерд╛? рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ, рдЖрдк рд╕рд╛рдЗрдЯ рдХреЛ рдЕрдзрд┐рдХ рддреЗрдЬрд╝реА рд╕реЗ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред WEB рджрд┐рдЧреНрдЧрдЬреЛрдВ рдХреА рдбрд╛рдЙрдирд▓реЛрдб рд╕реНрдкреАрдб рдХреЗ рдкреНрд░рднрд╛рд╡ рдкрд░ рд╣рдо рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗ, рдЪрд▓реЛ рддреБрд░рдВрдд рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░реЗрдВ!

рдПрдЪрдЯреАрдПрдордПрд▓


25. рдЗрдирд▓рд╛рдЗрди рдФрд░ рдиреЗрд╕реНрдЯреЗрдб рдХреЛрдб рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдмрдЪреЗрдВ

CSS рдФрд░ JavaScript рдХреЛрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рддреАрди рд╕рд░рд▓ рддрд░реАрдХреЗ рд╣реИрдВ:
  1. рдЗрдирд▓рд╛рдЗрди : рдХреЛрдб рд╕реАрдзреЗ рддрддреНрд╡ рдЯреИрдЧ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╢реИрд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд▓рд┐рдП, рдФрд░ рдСрдирдХреНрд▓рд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдПред
  2. : CSS JavaScript .
    : CSS , src JavaScript.

    , , HTTP , HTML . , . , . , . , , , .. HTTP .

    CSS/JS HTML . ( )

    . , . , .



    24. ,

    ,                .
    <head> <meta charset="UTF-8"> <title> </title> <!-- CSS --> <link rel="stylesheet" href="style.css" media="all"> </head>

    , , .
    , JavaScript , .. .
    
    <body>
      <p>Lorem ipsum dolor sit amet.</p>
       <!-- JS -->
      <script src="script.js"></script>
    </body>
    



    23. HTML

    , , .
    
    <p>Lorem ipsum dolor sit amet.</p>
    <!--   -->
    <ul>
      <li><a href="#"></a></li>
      <li><a href="#"></a></li>
      <li><a href="#"></a></li>
    </ul>
    

    . c HTML .
    
    <p>Lorem ipsum dolor sit amet.</p><ul><li><a href="#"></a></li><li><a href="#"></a></li><li><a href="#"></a></li></ul>
    

    , .
    HTML Compressor :
    BBC77,054b55,324b28.2%
    CNet86,492b61,896b28.4%
    FOX News75,266b64,221b14.7%
    GameTrailers112,199b92,851b17.2%
    Kotaku134,938b116,280b13.8%
    National Post75,006b55,628b25.8%
    SlashDot158,137b142,346b10.0%
    StackOverflow116,032b100,478b13.4%



    22.

    , , , , .
    
    <script src="example.js"></script>
    

    , , HTML . . .
    
    <script async src="example.js"></script>
    

    , , HTML . . , , .





    CSS


    21.

    HTML , :
    .center {
      width: 960px;
      margin: 0 auto;
    }
    /* ---  --- */
    .intro {
      margin: 100px;
      position: relative;
    }
    

    , .
    .center{width:960px;margin:0 auto}.intro{margin:100px;position:relative}
    

    Sass, Less, Stylus .., , .



    20. CSS

    , :
    
    <link rel="stylesheet" href="structure.css" media="all">
    <link rel="stylesheet" href="banner.css" media="all">
    <link rel="stylesheet" href="layout.css" media="all">
    <link rel="stylesheet" href="component.css" media="all">
    <link rel="stylesheet" href="plugin.css" media="all">
    

    HTTP ( ).
    
    <link rel="stylesheet" href="main.css" media="all">
    

    CSS , .
    .



    19. link @import

    . link:
    
    <link rel="stylesheet" href="style.css">
    

    @import (
    ):
    @import url('style.css');

    , , .





    JavaScript


    18.

    , Youtube like/tweet.

    , . : , firewall.

    , ( Friendly iFrame)
    var script = document.createElement('script'),
        scripts = document.getElementsByTagName('script')[0];
    script.async = true;
    script.src = url;
    scripts.parentNode.insertBefore(script, scripts);
    

    , .



    17.

    JavaScript. .

    , , .
    var arr = new Array(1000),
        len, i;
    
    for (i = 0; i < arr.length; i++) {
      //  ,     1000 
    }
    
    for (i = 0, len = arr.length; i < len; i++) {
      //  ,      
    }
    

    JSPerf

    : .

    DOM, Node(NodeList), , , document.getElementsByTagName('a'). " ", .. .
    var links = document.getElementsByTagName('a'),
        len, i;
    for (i = 0; i < links.length; i++) {
      //       ,   
    }
    
    for (i = 0, len = links.length; i < len; i++) {
      //    
    }
    
    //     
    for (i = 0; i < links.length; i++) {
      document.body.appendChild(document.createElement('a'));
      //      ,        
      //      ,   .
    }
    



    16. document.write

    document.write , .

    , , , , JavaScript .

    HTML5 Boilerplate, , jQuery Google .
    
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
    <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.0.min.js"><\/script>')</script>
    

    : document.write window.onload, .
    
    <span>foo</span>
    <script>
      window.onload = function() {
        document.write('<span>bar</span>');
      };
    </script>
    

    bar, foobar. , window.onload
    , , .
    
    <span>foo</span>
    <script>
      setTimeout(function() {
        document.write('<span>bar</span>');
      }, 1000);
      window.onload = function() {
        // ...
      };
    </script>
    



    15.

    , DOM, .

    . Nicole Sullivan background-color.

    , , .

    , . , :
    var div = document.getElementById("to-measure"),
        lis = document.getElementsByTagName('li'),
        i, len;
    
    for (i = 0, len = lis.length; i < len; i++) {
      lis[i].style.width = div.offsetWidth + 'px';
    }
    

    :
    var div = document.getElementById("to-measure"),
        lis = document.getElementsByTagName('li'),
        widthToSet = div.offsetWidth,
        i, len;
    
    for (i = 0, len = lis.length; i < len; i++) {
      lis[i].style.width = widthToSet + 'px';
    }
    

    style.width, . , , .. . , , offsetWidth, , .

    , , .



    14. DOM

    DOM, .

    , . , JavaScript , DOM.

    : , DOM. , :
    //    !
    for (var i = 0; i < 100; i++) {
      document.getElementById("myList").innerHTML += "<span>" + i + "</span>";
    }
    //     :)
    var myList = "";
    
    for (var i = 0; i < 100; i++) {
      myList += "<span>" + i + "</span>";
    }
    
    document.getElementById("myList").innerHTML = myList;
    

    JSPerf

    13.

    CSS HTML, .
    :
    BrowserDiet.app = function() {
    
      var foo = true;
    
      return {
        bar: function() {
          //    ...
        }
      };
    
    };
    

    :
    BrowserDiet.app=function(){var a=!0;return{bar:function(){}}}
    




    12. js

    , CSS, HTTP , .
    
    <script src="navbar.js"></script>
    <script src="component.js"></script>
    <script src="page.js"></script>
    <script src="framework.js"></script>
    <script src="plugin.js"></script>
    

    , :
    
    <script src="main.js"></script>
    

    DOM? .





    jQuery


    11. jQuery

    jQuery , .

    jQuery, :
    
    http://code.jquery.com/jquery-latest.js
    

    .         , ..           .   ,    .
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

    : " " :P



    10.

    , jQuery, . . . , , ID find() children().

    , ID , .. DOM:
    $("#foo");
    

    JSPerf

    9. for each

    JavaScript , jQuery. jQuery.each JavaScript.

    , . for in jQuery.each.

    , , .
    for ( var i = 0, len = a.length; i < len; i++ ) {
        e = a[i];
    }
    

    , for while . . , .

    JSPerf

    8. jQuery...

    ... :)

    JavaScript jQuery.

    attr() ID ?
    $('a').on('click', function() {
      console.log( $(this).attr('id') );
    });
    

    :
    $('a').on('click', function() {
      console.log( this.id );
    });
    

    .

    JSPerf




    7. CSS

    .



    CSS.
    .icon-foo {
      background-image: url('mySprite.png');
      background-position: -10px -10px;
    }
    
    .icon-bar {
      background-image: url('mySprite.png');
      background-position: -5px -5px;
    }
    

    , HTTP .

    , . , .

    , , . . , .



    6. Data URI

    - CSS .

    Data-URI , , . Data-URI .
    :
    .icon-foo {
      background-image: url('foo.png');
    }
    

    :
    .icon-foo {
      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII%3D');
    }
    

    IE8 base64.

    , . Data-URI , , . , CSS, . gzip , .. HTTP .



    5.

    width height , .
    
    <img width="100" height="100" src="logo.jpg" alt="Logo">
    

    , 700x700px 5050px.
    , .

    : ,



    4.

    Web . , JPEG Exif (, , .). PNG , . , .

    . .

    . . JPEG, ( 0 100). , . PNG , PNG-24 PNG-8.

    JPEG . JPEG . ().






    3.

    - . - . , , . .

    ( , ). , , Apache, .htaccess:
    ExpiresActive On
    ExpiresByType image/gif "access plus 6 months"
    ExpiresByType image/jpeg "access plus 6 months"
    ExpiresByType image/png "access plus 6 months"
    ExpiresByType text/css "access plus 6 months"
    ExpiresByType text/javascript "access plus 6 months"
    ExpiresByType application/javascript "access plus 6 months"
    

    , , CSS JS 6 - . .

    : , , . , . , timestamp. , home.js, home-v1.js, , home-v2.js ..

    GET URL. , home.js?v=1 home.js?v=2, GET .



    2. gzip

    (HTML, CSS, JavaScript, JSON, XML ..). GZIP .

    GZIP , " " . . GZIP.

    . , Apache, .htaccess :
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/javascript
    

    ( !). .






    1. -

    , , YSlow PageSpeed. .

    , WebPageTest, HTTP Archive PageSpeed.

    , .

    0.

    , , :)

    : , , . - , .

    , .

    \o/

    -1.

    / http://browserdiet.com/.
    25 , , -, . , , , , .

Source: https://habr.com/ru/post/In178561/


All Articles