美文网首页
网页优化 tips

网页优化 tips

作者: hygkui | 来源:发表于2018-10-10 20:04 被阅读0次

    这是16年的一篇笔记,技术也许已经有过时的,再做这方面的优化的时候将会更新此文(2018.10)

    参考和引用的资料来源

    ng-book 权威指南 ch32 优化Angular应用
    网络资源: 分析小米页面

    css方面

    字体问题

    google字体在国内被block,替换成360提供的useso
    再三确认网络字体是否真正需要,不需要的化直接注释掉

    FontSpider

    于是 “字蛛(FontSpider)” 这款工具可以粉墨登场啦(别乱用成语啊亲~)—— 字蛛通过分析本地 CSS 与 HTML 文件获取 WebFont 中没有使用的字符,并将这些字符数据从字体中删除以实现压缩,同时生成跨浏览器使用的格式。

    页面字体效果切换的闪动(FOUT——flash of unstyled text)现象。

    通过将字体的声明部分inline到页面中,而不是通过文件请求,可以将其转化为base64编码

    js第三方lib库

    比如jquery,angualr,underscore,等常见库,使用cdn加速。
    可供选择的加速网站:

    自定义的css和js,上传到云存储加速

    • 收费: 又拍云
    • 免费:七牛

    angular中

    利用$templateCache

    使用XHR加载模板可能会导致Web应用缓慢或者有卡顿的感觉。可以通过将模板包装为JavaScript文件,然 后连同应用程序的其他部分一起传输的方式伪造模板缓存加载,而不是通过XHR提取模板。
    即:将模版的html转化为js脚本载入并缓存,而且不再通过xhr加载,加快了页面载入速度。

    原理与工具

    默认情况下,Angular无法从本地$tempalteCache中找到模板时,会通过XHR提取模板。当 XHR请求很慢,或者模板很大时,它可能会对应用的用户体验造成很大的负面影响。
    你可以通过“伪造”$templateCache已经被填充的方式来避免这一延迟,这样Angular就不必 从远程加载模板。可以在JavaScript中手动实现这个技巧,就像这样:

    angular.module('myApp',\[])
    .run(function($templateCache) {
      $templateCache.put('home.html', 'This is the home template');
    });
    

    现在,当Angular需要提取名为home.html的模板时,它会在$templateCahce中找到它,而无需从服务器提取。
    如果想为服务器打包应用,手动处理的步骤就会很繁琐。幸好,grunt-angular-templates 这个Grunt任务可以帮我们完成。

    资源文件的压缩整套流程

    grunt.registerTask('dist',['clean', 'ngAnnotate', 'copy', 'cssmin','concat', 'uglify', 'targetHtml', 'htmlmin','clean:post']);
    
    • uglify: 压缩HTML、JavaScript、CSS,甚至是图片。

    图片压缩

    ui库 自定义裁剪

    semantic-ui可以使用gulp工具,自己选择需要的生成dist,应用到生产环境中。

    相关文章

      网友评论

          本文标题:网页优化 tips

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