江辰

博客

网站性能优化几个点

发布于 # 性能优化

减少重排和重绘 图片优化:体积调整、建立最佳格式,比如 jpeg 就比 png 好、降低质量、压缩 减少 http 请求:组合资源:css 文件合并、js 文件合并 CDN 加速 资源打包压缩(js 压缩、HTML 压缩、JS 压缩) 雪碧图 使用字体图标 页面渲染优化 异步加载

网页缓存

发布于 # 网页缓存

本地缓存 sessionStorage 、localStorage 、cookie 共同点 都是保存在浏览器端,且同源的。 区别 cookie 数据始终在同源的 http 请求中携带(即使不需要),即 cookie 在浏览器和服务器间来回传递;cookie 数据还有路径(path)的概念,可以限制 cookie 只属于某个路径下。存储大小限制也不同,cookie 数据不能超过 4k,同时因为每次 http 请求都会携带 cookie,所以 cookie 只适合保存很小的数据,如会话标识。而 sessionStorage 和 localStorage 不会自动把数据发给服务器,仅在本地保存。sessionStorage 和 localStorage 虽然也有存储大小的限制,但比 cookie 大得多,可以达到 5M 或更大 数据有效期不同:sessionStorage:仅在当前浏览器

JS 垃圾回收机制

发布于 # GC

标记清除 标记清除是指对变量进行标记,当变量进入作用域中的时候,标记"进入环境",从逻辑上来讲,永远不能是释放进入环境的变量所占用的内存,因为只要执行流进入相应的环境,就会用到它们。比如闭包。当变量离开环境的时候,则标记为"离开环境"。 垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记。然后,它会去掉环境中的变量以及被环境中的变量引用的标记。而在此之后再被加上标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了。最后。垃圾收集器完成内存清除工作,销毁那些带标记的值,并回收他们所占用的内存空间。 引用计数 另一种不太常见的垃圾回收策略是引用计数。引用计数的含义是跟踪记录每个值被引用的次数。当声明了一个变量并将一个引用类型赋值给该变量时,则这个值的引用次数就是 1。相反,如果包含对这个值引用的变量又取得了另外一个值,则这个值的引用次数就减 1。当这个引用次数变

CSS 盒模型

发布于 # CSS

盒模型 盒模型分 IE 盒模型(怪异盒模型)和 W3C 盒模型,属性分别是 margin、border、padding、content,两者的区别在于,IE 盒模型:width=content + padding + border,而 w3c 盒模型:width=content,这个和现实当中的盒子比较类似,所以称之为盒模型。w3c 在 CSS3 中新增了一个属性,box-sizing。包含两个属性:content-box和border-box。content-box:width=width,border-box:width=content+padding+border

JS 实现队列

发布于 # JS

队列 队列是一种列表,与栈相反,特点表现为先入先出(First-in-First-out,FIFO)结构。常见的例子就是银行排队,先到人的先办理业务。 实现 使用数组实现,js 中的数组相对于其他语言,有它自己的优势,比如 push()方法,向数组末尾追加元素并更新数组长度,shift()方法,取出数据第一项元素。所以,利用数组就很容易实现队列。 function queue() { this.dataStore = []; this.length = length; this.iqueue = iqueue; this.oqueue = oqueue; this.front = front; this.back = back; this.clear = clear; } function length() { return