性能优化部分总结
1.Minimize HTTP Requests 减少http的请求
合并文件 雪碧图
2.Use a Content Delivery Network 利用CDN技术
CDN内容分发网络 必须有钱
把项目放在阿里云上,买一小块空间
3.Gzip Components Gzip压缩
减少了http请求的大小
自动化工具,边写代码边压缩
4.Put stylesheets at the top 把css放顶部
为了更快渲染页面
5.put script at the bottom 把js放底部
js阻塞加载,一条执行完才会执行另一条
自己的代码一般放顶部,别人的代码放底部
6.将css和js外链
7.Minify Javascript and css 减少js和css的体积
8.Avoid Redirect 避免重定向 每做一次重定向就是重新发送了一次请求
9.Remove Duplicate Scripts 删除重复的脚本
10.用get方式请求ajax,因为post要请求两次
11.Reduce the Number of DOM Elements 减少DOM元素数量 减少DOM操作,能用变量就用变量
12.No 404s 不要出现404页面
13.Reduce Cookie Size 减小cookie cookie特点:每次请求都有cookie
14.优化css,用雪碧图
15.不要在HTML中缩放图片 js重绘重排 css3只重绘
尽量使用css3的运动,减少重排
16.for-in 能用普通循环就用不for in循环(循环json和数组)
17.功能越强大消耗的性能就越高,所以能用Math.floor就不用parseInt,parseInt能字符串转数字,也取整
执行的性能:
1.少用定时器 打开另一个网页的时候 浏览器会改动定时器
2.尽量少操作DOM
3.多用变量(声明变量的时候尽量都写在最前面),预加载
4.尽量能用正则的就不用字符串方法(正则是操作字符串的底层语言)
5.闭包(没用的子函数,释放掉)
性能优化的题:斐波那契数列又称兔子数列,一般解题是
function fn(n){
if(n<=2){
return fn(n-1)+fn(n-2);
}
alert();括号里填想算的数字,这类方法是自己调用自己,递归,本身非常快,但咱们的重复的计算太多了,所以算的数越大时间越长。
所以我们通过吧递归转化为非递归求解的方式,用一个数组存储重复的数据,算出的速度就大大提高了。
var arr=[];
function fn(n){
if(n<=2){
return 1;
}else{
if(arr[n]){
return arr[n];
}else{
arr[n]=fn(n-1)+fn(n-2);
return arr[n];
}
}
}
原文地址:https://www.cnblogs.com/chinatrump/p/11584319.html
- HDUOJ-----(1251)统计难题
- HDUOJ-----1541 Stars
- HDUOJ--------(1198)Farm Irrigation
- NYOJ-------三角形
- HDUOJ-------(1022)Train Problem I
- NYOJ-----素数环
- HDUOJ-----(1329)Calling Extraterrestrial Intelligence Again
- 修改WordPress默认评论表情(附:跳转到多说评论框的方法)
- HDUOJ--------(1312)Red and Black
- HDUOJ---------(1045)Fire Net
- HDUOJ----(1175)连连看
- HDUOJ-----(1072)Nightmare(bfs)
- deque容器的运用一点一点积累
- HDUOJ----(1016)Prime Ring Problem
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Nginx解决跨域资源问题:No 'Access-Control-Allow-Origin' header is present on the requested resource.
- Typecho 仿简书主题 时间轴归档页实现
- Typecho如何添加“编辑”当前文章按钮
- Flutter入门第二讲:项目运行,Hello world
- Flutter入门第一讲:环境搭建(mac os为例)
- 第12天:NLP补充——HMM(隐马尔科夫模型)
- android View事件分发实测
- LeetCode51|寻找旋转排序数组中的最小值
- Yapi 可视化接口平台安装实践
- LeetCode50|搜索旋转排序数组II
- LeetCode49|搜索旋转排序数组
- 第13天:NLP补充——RNN算法
- Android自定义跑马灯效果(适合任意布局)
- Handler Looper.prepareMainLooper();源码分析
- Caused by: java.lang.IllegalStateException: System services not available to Activities before onCre