2012年12月2日

jQuery最核心的基础设施之一——数据缓存模块进化史

摘要: 数据缓存系统最早应该是jQuery1.2引入的,那时它的事件系统完成照搬DE大神的addEvent.js,而addEvent在实现有个缺憾,它把事件的回调都放到EventTarget之上,这会引发循环引用,如果EventTarget是window对象,又会引发全局污染。有了数据缓存系统,除了规避这两个风险外,我们还可以有效地保存不同方法产生的中间变量,而这些变量会对另一个模块的方法有用,解耦方法间的依赖。对于jQuery来说,它的事件克隆乃至后来的列队实现都是离不开缓存系统。jQuery1.2 在core模块新增了两个静态方法, data与removeData。data不用说,与jQuery其 阅读全文
posted @ 2012-12-02 20:55 初心不可忘 阅读(96) 评论(0) 推荐(0) 编辑
2012年12月1日

HTTP协议之缓存

摘要: HTTP协议之缓存这次继续介绍HTTP协议中的缓存机制。HTTP协议提供了非常强大的缓存机制, 了解这些缓存机制,对提高网站的性能非常有帮助。 本文介绍浏览器和Web服务器之间如何处理"浏览器缓存",以及控制缓存的http header.本文会使用Fiddler来查看HTTP request和Response, 如果不熟悉这工具,可以先参考[Fiddler教程]。在看本文的时候, 请务必打开Fiddler来实践。阅读目录缓存的概念缓存的好处Fiddler可以方便地查看缓存的header如何判断缓存新鲜度通过最后修改时间,判断缓存新鲜度与缓存相关的headerETag浏览器不 阅读全文
posted @ 2012-12-01 21:39 初心不可忘 阅读(146) 评论(0) 推荐(0) 编辑

浏览器缓存机制

摘要: 浏览器缓存机制浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如:Expires;Cache-control等)。但是也有非HTTP协议定义的缓存机制,如使用HTML Meta标签,Web开发者可以在HTML页面的<head>节点中加入<meta>标签,代码如下:html code<META HTTP-EQUIV="Pragma" CONTENT="no-cache">上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持, 阅读全文
posted @ 2012-12-01 14:17 初心不可忘 阅读(133) 评论(0) 推荐(0) 编辑