> 1. 如何让网络请求更快? / 如何让浏览器访问页面打开更块
---
目的: 优化能够让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验。减少服务器被访问的资源, 客观减少成本
可参考: 雅虎35条军规:[https://www.cnblogs.com/xianyulaodi/p/5755079.html](https://www.cnblogs.com/xianyulaodi/p/5755079.html)
太多, 而且有的不太用的到的, 我分模块总结了一下, 包括过时的
1. 文件加载部分
* 使用雪碧图 和 字体图标, 代替图片文件, 减少http请求次数
* 这是错误的, 因为现在HTTP协议1.1会复用之前的TCP链接, 当然前提需要后台支持才可以), 不会带来更多的开销 具体引用文章: [https://segmentfault.com/a/1190000015665465](https://segmentfault.com/a/1190000015665465)
* 假如不支持复用, 合并也不要过分, 因为浏览器会并发执行http请求(注意每个浏览器并发的http请求数量也是不一样的)
* 图片尽量采用base64加载, 错误, base64会加大图片的所占体积
* 样式加载, 尽量和html在同一个文件内, 不要去拆分到不同的网站中, 不要使用iframe
2. 代码部分
* 预加载/按需加载 -> 大量图片使用预加载方式, 每次多请求下一页的图片, 在内存中, 用户刷新可以马上显示.
* 减少DOM的操作
* 公共代码提取出来, 进行模块化开发, 避免代码被重复加载
* 用更少的代码, 开发出相同的功能
* 代码压缩, 语法混淆.
* 不要使用系统的弹窗, 阻塞页面
* 尽量不要使用eval
* 如果是框架, 可以考虑路由懒加载
* 减少监听器, 使用事件委托
* css避免使用过滤器
3. 缓存部分
* 用内存来保存值/cookie/storage, 如果变量值不存在, 再去服务器获取, 减少服务器压力, 提高前端页面加载速度
* CDN加速, 让用户就近访问自己需要的资源, 加快响应速度
* Ajax的get方式, 是可以缓存的
> 2. 什么是CDN?
---
内容分发网络
CDN(Content Deliver Network)是一组分布在多个不同地理位置的Web服务器,通过将网站的资源发布到最接近用户的网络”边缘“,供用户就近取得所需内容。CDN可以看作一种缓存代理,主要用于对静态资源(如图片,css,js等)的缓存
- web前端
- CSS问题
- 布局
- 双飞翼布局_flex方式
- 双飞翼布局_margin方式
- 圣杯布局_flex方式
- 圣杯布局_margin方式
- 子元素居中问题
- 弹性布局
- 概念_
- 标准模式与混杂模式
- 各种FC
- line-height
- vertical-align
- CSS3新特性
- 效果
- div添加箭头
- CSS绘制三角形
- JavaScript
- 兼容
- 事件相关
- 原理
- Ajax原理
- 继承原理
- 原型链继承
- 组合继承
- 寄生组合继承
- 数据绑定
- 1单向数据绑定m到c到v
- 2伪双向数据绑定
- 3双向数据绑定
- socket.io
- 运行时
- this指向
- 0.1+0.2问题
- 对象/数组-深拷贝&浅拷贝
- 事件循环
- typeof
- instanceof
- 概念
- 闭包
- 回调函数
- Promise
- 原生对象
- Attribute和property区别
- 防抖函数
- 节流函数
- 语言类型
- Vue
- Vue优缺点
- 仿Vue源码
- 1数据绑定_Observe
- 2数据绑定_订阅者&观察者定义
- 3数据绑定_Vue类实现
- 4数据绑定_Vue访问data更改
- 5DOM编译_Compile_双大括号模板讲解
- 6DOM编译_v-model讲解
- 7DOM编译_v-on:事件绑定讲解
- 项目总结
- 使用Svg图标
- vueCli环境_真机测试
- vueCli集成环信SDK
- 父子组件双向绑定
- React
- React优缺点
- 我的组件库
- Vue的组件库
- 环信_聊天组件
- 面试题
- HTML_分类
- CSS_分类
- JavaScript_分类
- VueJS_分类
- ReactJS_分类
- AngularJS_分类
- 浏览器端
- 笔试题
- CSS
- 特殊布局
- JavaScript_
- 经典_宏任务_微任务
- 浏览器问题
- CORS
- web服务器
- Apache
- 开启跨域
- Nginx
- 常用命令
- 正向代理
- 反向代理
- 负载均衡
- mac安装Nginx
- 配置80端口
- 算法
- 冒泡排序
- 选择排序
- 合并对象_排序
- 杨辉三角
- 红黑树
- 计算机基础
- 网络相关
- OSI七层模型
- http协议
- http工作原理
- https协议
- GET和POST区别
- hosts文件
- php相关
- session机制
- Linux
- 阿里云服务器
- linux使用Mysql
- 安装mysql
- 导入.sql文件
- 远程连接mysql
- linux使用xampp
- 安装Xampp
- 配置web访问
- 域名绑定服务器
- linux搭建git服务器_apache下
- 代码管理
- 什么是git
- 命令行_使用git
- .gitignore文件讲解
- 软件
- VSCode的安装
- 理财
- 基金
- 摄影