沉沙
2018-08-09
来源 :
阅读 1550
评论 0
摘要:本篇教程探讨了HTML5+CSS3从入门到精通 angularJS最佳实战,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 。
本篇教程探讨了HTML5+CSS3从入门到精通 angularJS最佳实战,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 。
<
1. 项目组织方式
ng-strict-di:严格依赖注入模式。
在angularJS中,如果要使用模块中的内容,只要提供相关模块的名称即可,不需要自己查找、创建、初始化等等,就可以直接得到需要注入的模块进行使用,这种方式即所谓的依赖注入。
但是在JS代码压缩混淆(minify/uglify)的时候,参数的名称会被压缩成一个字母,导致参数的名称发生变化,进而导致注入的失败;
所以,AngularJS推荐使用将模块名和函数写在同一个数组中,并将模块名写在函数之前;ng-strict-di指令的作用就是,强制项目代码使用这种严格的风格,如果不是就会报错,进而保证,依赖注入的正确性。
2. 性能优化
浏览器预加载:DNS prefetch——提前加载域名解析,省去域名解析时间;
chrome会自动把当前页面所有带href的link都做一次dns prefetch;但a标签的href再https下不起作用,需要meta属性强制开启;
需要手动添加link的场景是:开发者预计用户在后面的访问中需要用到链接在当前页面所有link中都没有包含;
chromium官方文档中说明,chrome会使用8个线程专门做DNS Prefeatching,chrome本身并不做dns记录的cache,而是直接从操作系统读DNS;即,直接修改系统host的dns记录或者host是会影响chrome的;
合理的使用dns prefetch是能对页面性能带来50ms~~300ms的提升;
手动 dns prefetching 的代码实际上还是会增加html的代码量的,特别是域名多的情况下。所以,最优的方案应该是:通过js初始化一个iframe异步加载一个页面,而这个页面里包含本站所有的需要手动dns prefetching的域名。
<meta http-equiv="x-dns-prefetch-control" content="on"> // 强制开启浏览器 DNS Prefetch功能
<link rel="dns-prefetch" href="//www.spreadfirefox.com/"> // 强制查询特定主机 DNS
跨域资源权限:跨域img、js引用允许 crossorigin="anonymous"
允许网站对跨域脚本、图片的引用:出于安全策略(即同源策略),正常情况下浏览器是不允许跨域资源的引用,当浏览器尝试加载不属于当前域的脚本时,跨域脚本知会返回Script error;
最新HTML5规定,是允许获取不属于当前域的脚本资源,但必须满足两个条件:①跨域脚本的服务器必须通过Access-Control-Allow-Origin头信息允许当前域名可以获取错误信息;②当前域名的script标签必须指明src属性指定的地址是跨域支持的,也就是crossorigin属性:如下
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
crossorigin="anonymous"></script>
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标WEB前端HTML5/CSS3频道!
喜欢 | 1
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号