美文网首页
前端性能优化(蛋人网)

前端性能优化(蛋人网)

作者: Jayzen | 来源:发表于2017-02-15 17:57 被阅读81次

    01 前端性能优化介绍
    02 网页性能优化
    03 浏览器的加载和渲染机制
    04 如何在Rails的视图layout中放置JavaScript和CSS
    05 Rails中Assets的多域名设置

    01 前端性能优化介绍
    影响前端优化的影响因素:
    1、network网络

    dns:延迟、稳定性、容错性 #解决方式是更改dns服务器
    cdn:content delivery network  #一般放置图片使用比较多
    ip地址:ip anycast
    

    02 网页性能优化
    2、webpage网页

    减少http request 数量
    减少http request 大小
    减少http response 大小
    增加web page的加载速度和执行速度(渲染时间)
    增加assets的下载速度
    预加载数据
    

    减少http request 数量

    合并js和css  #合并是双刃剑,合并文件导致文件变大,但是浏览器支持多个文件同时下载
    图片spirit sheet  #把图片都放在同一个图片中
    过期时间(http response header)
    

    减少http response 大小

    ajax
    压缩response, 比如js,css等
    

    减少http request 大小

    为asset设置独立的域名;减少header数据的传输
    

    03 浏览器的加载和渲染机制
    浏览器的加载和渲染机制
    说明:页面代码的前后顺序即是代码的加载顺序,一般情况下认为页面首先有样式,再有交互,因此把css放在前面,js放在后面。
    html5中有async和defer两个标签,用来更好处理js代码

    css在头部:head标签中 #首先被下载
    js在页面底部 #body标签结束之前,js会首先被下载,会阻塞其他下载,下载之后会立马执行,在执行过程中也会阻塞其他下载(阻塞意味着网站不可交互)
    避免使用inline js和css #很难做独立的缓存控制
    为静态资源设置独立域名 #提高连接数量,提高加载速度
    load lazy #看不到的图片不要加载,比如瀑布流形式的加载
    

    增加asset的加载速度

    减少静态资源的大小
    压塑静态资源
    cdn
    过期时间  #设置过期时间,在过期之前获取缓存中的信息,提高加载速度
    

    preload预加载数据

    04 如何在Rails的视图layout中放置JavaScript和CSS
    参考前面的内容说明,css文件放置在head中,js文件放置在body标签结束之前。
    这是layouts文件

    <!DOCTYPE html>
    <html>
      <head>
        <title>JobDemo</title>
       <%= yield :stylesheets %> //放置css内容
        #css文件放置在head中
        <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
        <%= csrf_meta_tags %>
      </head>
    
      <body>
        <%= yield %>
        #js文件放置在body标签结束之前
        <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
        <%= yield :javascripts %> //放置js内容
      </body>
    </html>
    

    这是待渲染的文件

    <%= content_for :stylesheets do %>
      <%= stylesheet_link_tag 'hello', media: 'all' %>
    <% end -%>
    
    <div>
      content
    </div>
    
    <%= content_for :javascripts do %>
      <%= javascript_include_tag 'video.min'%>
      <script type="text/javascript">
      </script>
    <% end -%>
    

    05 Rails中Assets的多域名设置
    对于单个域名的资源,有一个并发下载的限制,如果多个域名,相当于增加了网站的并发下载数量。
    没看懂

    相关文章

      网友评论

          本文标题:前端性能优化(蛋人网)

          本文链接:https://www.haomeiwen.com/subject/tcgqwttx.html