今天(3.7)下午接到了阿里无线事业部的面试电话,问了一些前端的知识,照惯例,总结一下:
页面优化相关
- 减少请求数
请求数与网页的加载时长有直接的关系,sprite图来减少小图标的请求数,对于文本则可以通过合并缩小(避免使用import引入css文件,并且请求是异步请求)
- 图片合并
- css文件合并
- 减少内联样式
- 避免在css中使用import
- 减少文件大小
页面上最大的流量产生在多媒体(视频或者图片),所以为了减少文件大小,需选择合适的媒体格式,并对文件进行压缩。
- 选择合适的文件格式
- 图片压缩
- css值缩写(shorthand property)
- 文件压缩
- 页面性能
- 调整文件的加载顺序
- 减少标签的个数
- 调整选择器的长度
- 尽量使用css显示表示
- 增强代码可读性与可维护性
- 规范化
- 语义化
- 模块化
CDN
全称Content Delivery Network,即内容分发网络。
其基本思路是尽可能避免互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,是内容传输更快更稳定。
通过网络各处放置节点服务器所构成的在现有的互联网之上的一层智能虚拟网络,cdn系统能够实时的根据网络流量和各节点的负载均衡情况以及到用户的距离和响应的时间等综合信息,将用户的信息重新导向离用户最近的服务器节点上来。其目的是使用户可以就近取得自己所需的内容,解决Internet网络拥堵的情况,提高用户访问站点的响应速度。
OSI七层网络模型
- 物理层
- 数据链路层
- 网络层
- 传输层
- 会话层
- 表示层
- 应用层
网际层协议:包括:IP协议、ICMP协议、ARP协议、RARP协议。
传输层协议:TCP协议、UDP协议。
应用层协议:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。
Ajax优缺点
优点:
1. 最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好。
2. 使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。
3. 可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
4. 基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。
缺点:
1. ajax干掉了back按钮,即对浏览器后退机制的破坏。
2. 安全问题 ajax技术就如同对企业数据建立了一个直接通道,这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。还有ajax也难以避免一些已知的安全弱点,诸如跨站点脚步攻击、SQL注入攻击和基于credentials的安全漏洞等。
3. 对搜索引擎的支持比较弱。
4. 破坏程序的异常处理机制
5. 违背URL和资源定位的初衷
6. AJAX不能很好支持移动设备
7. 客户端过肥,太多客户端代码造成开发上的成本
闭包优缺点
闭包是javascript语言的一大特点,主要应用闭包场合主要是为了:设计私有的方法和变量。
闭包的缺点就是常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。
优点 可以使变量长期处于内存之中,方便调用上下文的局部变量,避免全局变量的污染。
今天阿里无线事业部的面试表现得真的不好,问的很多页面优化的问题,自己了解确实太少了,以后努力吧,就是这样,哎心塞
小伙伴的总结