Day19
1-解决跨域问题的方法?
1、 通过jsonp跨域
2、 document.domain + iframe跨域
3、 location.hash + iframe
4、 window.name + iframe跨域
5、 postMessage跨域
6、 跨域资源共享(CORS)
7、 nginx代理跨域
8、 nodejs中间件代理跨域
9、 WebSocket协议跨域
2-提交请求 get 和 post 的区别?
1 GET在浏览器回退时是无害的,而POST会再次提交请求。
2GET产生的URL地址可以被Bookmark,而POST不可以。
3GET请求会被浏览器主动cache,而POST不会,除非手动设置。
4GET请求只能进行url编码,而POST支持多种编码方式。
5GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
6GET请求在URL中传送的参数是有长度限制的,而POST么有。
7对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
8GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
9GET参数通过URL传递,POST放在Request body中。
3-什么是渐进增强和优雅降级?
渐进增强 progressive enhancement:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。
优雅降级 graceful degradation:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。
区别:优雅降级是从复杂的现状开始,并试图减少用户体验的供给,而渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带。
4-针对页面性能优化,有哪些方案?
1. html压缩
html代码压缩就是压缩这些在文本文件中有意义,但是在HTML中不显示的字符,包括空格,制表符,换行符等,还有一些其他意义的字符,如HTML注释也可以被压缩。
如何进行html压缩:
- 使用在线网站进行压缩(开发过程中一般不用)
- nodejs 提供了html-minifier工具
- 后端模板引擎渲染压缩
2. css代码压缩:
css代码压缩简单来说就是无效代码删除和css语义合并
如何进行css压缩:
- 使用在线网站进行压缩(开发过程中一般不用)
- 使用html-minifier工具
- 使用clean-css对css压缩
3. js的压缩和混乱
js的压缩和混乱主要包括以下这几部分:
- 无效字符的删除
- 剔除注释
- 代码语义的缩减和优化
- 代码保护(代码逻辑变得混乱,降低代码的可读性,这点很重要)
如何进行js的压缩和混乱
- 使用在线网站进行压缩(开发过程中一般不用)
- 使用html-minifier工具
- 使用uglifyjs2对js进行压缩
其实css压缩与js的压缩和混乱比html压缩收益要大得多,同时css代码和js代码比html代码多得多,通过css压缩和js压缩带来流量的减少,会非常明显。所以对大公司来说,html压缩可有可无,但css压缩与js的压缩和混乱必须要有!

浙公网安备 33010602011771号