前端优化再次被提起,高性能网站总是会得到用户的肯定,加载时间短,友好的界面交互,最少的资源占用,容易被搜索引擎抓取。

  就自己可以接触到的范围,记录些优化的点点滴滴。

  1.减少HTTP请求:

   每个HTTP请求会产生额外负担,下载一个100K的文件比下载4个25K的文件要快。

   使用外部的css和js文件,这样便于压缩,便于合并,且可缓存。

   使用css sprite,将小图片放于一张图片使用背景图绝对定位。PNG8会比GIF格式的图片小。

  2.避免跳转,避免404:

   这个在访问网站的时候的确经常遇到,而且真的是很影响体验,尤其/的问题,打开网站的时候,总重定向到加/的位置。

   404神码的,最让人无语了,的确又是很影响用户体验的一个坑,但避免确实是很容易的。

  3.利用各种缓存

   这个专门写了一篇http://www.cnblogs.com/linda586586/p/4127103.html

  4.css放于头部,js放于尾部 
  把样式表放在文档底部的问题是在包括Internet Explorer在内的很多浏览器中这会中止内容的有序呈现。浏览器中止呈现是为了避免样式改变引起的页面元素重绘。用户不得不面对一个空白页面。 
  HTML规范清楚指出样式表要放包含在页面的<head />区域内:“和<a />不同,<link />只能出现在文档的<head />区域内,尽管它可以多次使用它”。无论是引起白屏还是出现没有样式化的内容都不值得去尝试。最好的方案就是按照HTML规范在文档<head />内加载你的样式表。

  js放于尾部,是因为Javascript的阻塞特性。无论是遇到内联或者放于外部文件的javascript,页面下载过程都必须停下,等待脚本完成处理。原因是脚本可能在运行周期过程中修改页面内容。浏览器在遇到body之前,不会渲染页面的任何部分。若将脚本放置于顶端,会有一个可察觉的延迟,页面打开时,首先显示为一个空白页面,不能阅读也不能交互。新浏览器(如IE8,FF3.5)允许并行下载js文件,js之间并不会阻塞,但是js文件的下载会阻塞其他资源(如图片)的下载。故将script标签放在尽可能接近body的底部,尽可能减小对整个页面下载的影响。由于每个script标签下载时阻塞页面解析,所以减少script的数量也可以改善性能。每当页面解析碰到一个script标签时,紧接着有一段时间用于代码执行,最小化这些延迟时间可以改善页面的整体性能。

  5.脚本延迟加载

  使用defer(只有一些浏览器支持)

  动态加载

 

function loadJs(jssrc, callback) {
        if (jssrc) {
            var head = document.getElementsByTagName('head')[0];
            var script = document.createElement('script');
            if (script.readyState) { //IE
                script.onreadystatechange = function () {
                    if (script.readyState == "loaded" || script.readyState == "complete") {
                        script.onreadystatechange = null;
                        if (callback && typeof callback == 'function') {
                            callback();
                        }
                    }
                };
            } else { //Others
                script.onload = function () {
                    if (callback && typeof callback == 'function') {
                        callback();
                    }
                }
            }
            script.src = jssrc;
            head.appendChild(script);
        }
    }
动态加载js

相关文章:

  • 2021-12-26
  • 2021-10-14
  • 2022-02-06
  • 2021-06-23
  • 2021-07-27
  • 2021-08-11
猜你喜欢
  • 2021-11-23
  • 2021-07-17
  • 2021-07-31
  • 2022-02-24
  • 2021-09-29
  • 2022-02-09
  • 2021-12-28
相关资源
相似解决方案