通过这种技术优化前端负载

时间:2017-11-17 09:09:19

标签: css django optimization frontend

我正在阅读关于facebook的页面和Quora's Faster Paint

我理解的最好的是:

  1. 尽快开始发送(分块转移)
  2. 首先使用内联css和页面分区发送页面的基本布局 'pagelets'的形式
  3. 在提取响应时继续填充这些pagelet(以及css)
  4. 然后下载脚本和其他资源。
  5. 这种方法似乎很有效。还有什么可以添加/省略?

    我知道这很广泛,但这样的事情怎么可以实现呢?

    我们需要为此发送流媒体响应吗?

    前端如何处理响应?

    如果您还可以分享一些文章以进一步阅读,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

前端优化提高网络性能的技巧。

由于各种原因,每天都有数百万个网站被访问。   不幸的是,许多网站都没有得到很好的优化。

- 极度优化的网站受到各种问题的困扰         加载时间,浏览器不兼容。

以下提到的技术将帮助您改善前端    优化

清理Html文档,努力以简洁的方式编写    有效的。

- >正确的css展示位置。      将所有外部样式表放在Html文档标题的顶部      为了确保渐进式渲染。

<head><link href='https://yourwebsite.com/css/style.css' rel='stylesheet'type='text/css'></head>

正确的Javascript展示位置

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
   < =========== >

<!-- For laoding js related files -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</body>
</html>

另外,当使用javascript时,你应该总是喜欢&#34; async&#34;脚本加载。这样可以防止任何标签阻止html呈现过程,例如,如果它确实遇到了文档中间的标记。

<script src="demo_defer.js" async></script>
  

什么是异步脚本?
  使用async加载脚本(AKA   异步)意味着脚本的加载过程不会   中断您网页的呈现。这允许您的网页   每次脚本必须暂停解析时,渲染速度会更快   加载。这也允许加载多个脚本   同时这是有益的,因为一个脚本不依赖   在另一个。

同步和异步加载之间的差异??

同步脚本加载的工作方式如下:

  • 当遇到加载的标记时,HTML解析暂停 同步

  • 请求获取文件(如果是外部的)

  • 下载脚本并立即执行HTML解析 恢复

异步脚本加载的工作原理如下:

  • HTML解析在遇到异步加载的标记时会继续
  • 请求获取文件(如果是外部的)
  • 脚本在后台下载并在完成后执行。

缩小CSS,JS和HTML

缩小技术可以帮助您消除文件中不必要的字符。在编辑器中编写代码时,可能会使用缩进,注释。这些方法是确保代码清晰可读的最佳实践,但它们也会为文档添加额外的字节。

例如,在应用缩小之前检查以下css代码,您会注意到额外的空间,缩进和&amp;评价。

.navbar-default{
  border-radius: 0px;
  background: -webkit-linear-gradient(to right,#dd4959, #852742 );  /* 
  Chrome 10-25, Safari 5.1-6 */
  background: linear-gradient(to right,#dd4959, #852742); /* W3C, IE 10+/ 
  Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ *
       }
  #menu {
       border-radius: NaNpx;
       margin-top: 69px;
       margin-left: 66px;
       margin-bottom: 48px;
       background: -webkit-linear-gradient(to right,#dd4959, #b852742 );  /* 
       Chrome 10-25, Safari 5.1-6 */
       background: linear-gradient(to right,#dd4959, #852742); /* W3C, IE 
       10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
        }
       #form{
          /* fallback for old browsers */
          background: -webkit-linear-gradient(to right,#dd4959, #852742 );  
         /* Chrome 10-25, Safari 5.1-6 */
          background: linear-gradient(to right,#dd4959, #852742); /* W3C, IE 
          10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
          padding-top: 10px;
           padding-left: 120px;
           }
           #form h1 {
           color: white;
           font-family: 'Poppins';
           font-size: 60px;
            margin-left: 11px;
                }

这是在应用缩小后的相同片段。

.navbar-default{border-radius:0;
  background:-webkit-linear-gradient(toright,#dd4959,#852742);
  background:linear-gradient(to right,#dd4959,#852742);
  background:linear-gradient(to right,#dd4959,#852742)}
#form{background:-webkit-linear-gradient(to right,#dd4959,#852742);
  background:linear-gradient(to right,#dd4959,#852742);
  padding-top:10px;padding-left:120px}
#form h1{color:white;font-family:'Poppins';
  font-size:60px;margin-left:11px}
  
    
        
  • 使用CDN和缓存提高速度。 CDN允许您站点的访问者从最近的服务器加载数据。如果您使用CDN,     您的网站文件将自动压缩,以便快速交付     遍布全球。
  •     
  
  • 压缩文件。
  

虽然许多CDN服务会为您压缩文件,但如果不这样做   使用CDN考虑在您的源上使用文件压缩方法   服务器,以改善您的前端优化。文件压缩会   使您网站的内容轻松易管理。其中最...之一   常用的文件压缩方法是Gzip。这是一个很好的   缩小文档,音频文件,PNG图像等的方法   尚未压缩的庞大文件。

     

Brotli是另一种文件压缩算法,仍然相当新,   然而越来越受欢迎。这种开源算法是定期的   由Google和其他组织的软件工程师更新。它   已证明自己能够以比其他文件更好的比例压缩文件   现有方法。尽管对此算法的支持仍然很少   它可以很好地成为下一个默认文件压缩   算法

  • 优化图片
  

对于不习惯前端优化方式的人,   图像可以成为网站杀手。大量的相册和大型   您网站上的高分辨率图像可能会干扰渲染过程。   未经优化的高清图像可能会产生多重影响   兆字节。因此,正确优化这些将允许您   提高网站的前端性能。