css3实现3d方块旋转

如果对css-3d部分的基础知识不清楚,请参考http://acgtofe.com/posts/2013/09/css-3d-transform以及http://acgtofe.com/posts/2015/12/xyz-3d-in-css

A
B
C
D
E
F

阅读全文

缓存优化效果实测记录

一.浏览器的缓存机制

缓存是做web优化的过程中始终绕不开的一个话题,因为优化的重头戏就是资源的加载速度;如果能直接使用缓存,就可以避免向服务器请求及加载资源,极大的减少下载文件的大小及个数,在性能的优化上会体现的非常明显。

客户端的缓存原理如下图所示:

浏览器在首次进行请求的时候,此时还没有缓存;服务器接收到请求后,会在响应头加上Etag值,用以标识文件是否变化;而当浏览器再次请求相同资源的时候,会将上次响应头中的Etag值放到请求头中;而服务器再次接收到请求以后,会根据回传的If-None-Match以及If-Modified-Since字段进行判断,如果文件没有变化,就直接返回304而不是完整的资源,从而优化加载速度;这就是浏览器缓存的基本工作方式;

阅读全文

javascript各类排序算法的实现

一. 冒泡排序

总体思想就是:

第一轮:数组里的第二项到最后一项,都和第一项进行比较,如果比第一项小,两者就交换;最后比较完,第一项就是最小的;
第二轮:数组里的第三项到最后一项,,都和第二项进行比较,如果比第一项小,两者就交换;最后比较完,第二项就是最小的;
以此类推……..

冒泡排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Array.prototype.bubbleSort = function(){
var length = this.length;
for(var i=0;i<this.length;i++)
{
for(var j=i+1;j<this.length;j++)
{
if(this[j]<this[i])
{
var mid = this[i];
this[i] = this[j];
this[j] = mid;
}
}
}
return this;
}

var arr = [1,5,3,7,9,4,23,100,79,0];
console.log(arr.bubbleSort());

阅读全文