【Web缓存机制概述】5 – Web App时代的缓存机制新思路

标签: web 缓存 web | 发表时间:2012-05-24 16:00 | 作者:司徒正美
出处:http://www.cnblogs.com/rubylouvre/

====索引=====

【Web缓存机制概述】1 – Web缓存的作用与类型

【Web缓存机制概述】2 – Web浏览器的缓存机制

【Web缓存机制概述】3 – 如何构建可缓存站点

【Web缓存机制概述】4 – HTML5时代的Web缓存机制

【Web缓存机制概述】5 – Web App时代的缓存机制新思路

============

Web App的概念逐渐被业界认可,各大互联网公司也纷纷推出Web App开发大赛,积极引入到他们的开放平台,比较著名类似facebook农场,qzone偷菜之类的。Web开发逐渐从Web Page的进入到Web App的时代,想详细了解的话,可以看下 超叔在D2上分享的分享《开放时代:从Web Page到Web APP》 视频Slide

Web App常见架构

以WebQQ例,WebQQ这个站点的所有内容都是一个页面里面呈现的,我们看到的类似windows操作系统的框架,是它的顶级容器和框架,由AlloyOS的内核负责统筹和管理,然后其他模块,比如壁纸设置,消息中心,App Store都是以模块的形式,并用iframe的方式嵌入到顶级容器中。具观察,现在越来越多的Web应用都倾向于使用这个的架构,这样做好处是很明显的,比如顶级框架可以维持一个不变的javascript上下文便于管理;关闭模块的iframe后,内存可以更好的释放;利用iframe的安全机制最大限度的保证内核的安全和稳定等等。

这种Web的架构,其实也给我们Web前端提供了从代码逻辑层面上给Web应用实现缓存提供了可能。

缓存Ajax请求

由于顶级框架页面是不会由于调整刷新而导致javascript上下文丢失,所以底层或各个模块所需要的Ajax请求,都是可以通过顶级框架统一请求后,并以信息服务的形式对外提供Api调用。对于一些实时性要求不是很强的请求来说,可以由顶级框架做统一缓存,定期更新。这种做法可以不影响用户体验的前提下,明显减少请求数,降低网络流量,并间接减轻了服务器的压力。

通过Javascript实现内存缓存

跟缓存Ajax请求的结果类似,程序运行过程中的其他数据,其实也可以采用类似的方式在顶级容器的Javascript上下文中缓存。

 

Web App发展新方向:Web-Client模式

随着Web App的进一步发展,貌似浏览器已经无法阻挡Web应用探索更前端,更本地化Native App的用户体验。比如目前的 Qplus豆瓣荚等应用,都采用Client、Web相结合的开发模式。这样做即可以利用Web开发迭代更新快、UI开发成本低等特点,有可以利用客户端的能力为Web实现很多无法实现的功能。以Qplus为例,Qplus不但内嵌了Webkit内核,还未Webkit上定制了很多便利的接口,比如跨Web-Client的拖曳、多线程下载等。在这种发展新模式下,Web缓存又能有什么考虑的发张方向呢?

客户端提供缓存读写能力

我们知道,HTML5的localstorage仅仅只能支持5m的存储。我们可以按localstorage的设计思路,让客户端为Web定制更大,更灵活的本地存储功能。到时,Web缓存能做的事情就会更多。

 

以上就当前Web App的发展趋势,讨论了对于Web缓存领域,有哪些可以做,可以考虑的方向。当然,这些做法,合不合理,合不合适都还是值得讨论和商榷的,如果你有想法,都可以随时联系并一起讨论。

 

全文总结

本文尝试概述目前Web缓存方向的现状,以及HTML5和Web App时代下,Web缓存可以考虑的新方向。由于时间仓促和表达概括能力有限,有可能有表达不妥的地方,欢迎指正讨论。

历史

[Version 1.0] 2012-03-21 rehorn @ tencent webplus team

 

参考文献

http://www.mnot.net/cache_docs/ 

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html 

http://robbin.iteye.com/blog/462476

http://www.procata.com/cachetest/

http://www.web-caching.com/cacheability.html

http://www.laruence.com/2010/03/05/1332.html

http://sofish.de/1449

http://www.fovweb.com/web/web-cache.html

 

本文链接

相关 [web 缓存 web] 推荐:

web基础-web工作原理,http协议,浏览器缓存

- - 浏览器 - 互联网 - ITeye博客
4,cookie和session. 平时用浏览器,输入网址后回车,页面响应我们想要浏览的内容,简单操作的背后蕴涵了什么原理. 当输入url回车后,客户端(浏览器)会去请求DNS服务器,通过DNS获取域名对应的IP地址,然后通过这个地址找到对应的服务器,要求建立TCP连接,建立连接,客户端发送httpRequest(请求包)后,服务器接收并开始处理请求,调用自身服务,返回httpResponse(响应包),客户端收到响应包后开始渲染body主体,等到全部接收,断开与该服务器端的TCP连接.

Web应用的缓存设计模式

- - robbin的自言自语
从10年前的2003年开始,在Web应用领域,ORM(对象-关系映射)框架就开始逐渐普及,并且流行开来,其中最广为人知的就是Java的开源ORM框架Hibernate,后来Hibernate也成为了EJB3的实现框架;2005年以后,ORM开始普及到其他编程语言领域,其中最有名气的是Ruby on rails框架的ORM - ActiveRecord.

【Web缓存机制概述】5 – Web App时代的缓存机制新思路

- - 博客园_Ruby's Louvre
【Web缓存机制概述】1 – Web缓存的作用与类型. 【Web缓存机制概述】2 – Web浏览器的缓存机制. 【Web缓存机制概述】3 – 如何构建可缓存站点. 【Web缓存机制概述】4 – HTML5时代的Web缓存机制. 【Web缓存机制概述】5 – Web App时代的缓存机制新思路. Web App的概念逐渐被业界认可,各大互联网公司也纷纷推出Web App开发大赛,积极引入到他们的开放平台,比较著名类似facebook农场,qzone偷菜之类的.

如何构建高性能web站点之:分布式缓存

- - CSDN博客架构设计推荐文章
要明白数据库前段的缓冲区,首先要明白什么是文件系统内核缓冲区(Buffer Area):它位于物理内存的内核地址空间,除了使用O_DIRECT标记打开的文件以外,所有对磁盘的读写操作,都需要经过它,所以,可以把它看作磁盘的前段设备. 这块内核缓冲区也称为:页高速缓存(Page Cache),实际上它包括两部分:.

http协议:Web前端-HTTP Cache-control/浏览器缓存(转)

- - 互联网 - ITeye博客
HTTP协议分别在 1.0 / 1.1 两个时代推出了 Expires / Cache-control 两种cache策略,这里我们无需了解全部的细节,无需记住整个RFC内容,但是当我们需要使用HTTP cache策略时,我们需要注意以下细节:. Expires 是HTTP 1.0 那个时代的东西了,目前来看,可以不使用了,因为HTTP 1.0 的user agent占有率在 0.1% 以下(我们主要面向的web浏览器均默认使用HTTP 1.1),Cache-control 是 HTTP 1.1 的新特性,也是我们主要做文章使用cache策略的工具.

[原]Web缓存机制综述(HTML5缓存总结与细节释疑)

- - bob007abc的专栏
最近项目里用到了HTML5缓存机制,于是很想搞清楚 浏览器缓存,HTML5离线缓存,还有项目中用到的 CDN缓存 这三部分的关系以及更新机制. 看了一堆关于HTML5缓存机制的文章,各有所长,各有疏漏. 因此本人想在此做一总结,本文假设读者对基本的HTML5缓存应用已有所了解,因此不再详述概念,可以将本文当做释疑汇总吧.

Web未死

- Sinan - GeekPark 捕风捉影
App的极限已经浮现,而Web则是突破此极限,推动下一个数字时代革命的起点. 距离美国《连线》杂志发表《Web已死,互联网永生》这篇文章还不到一年的时间,业界为Web平反的声音渐起. 2010年1月,苹果发布iPad,紧随其后在6月又发布了iPhone4. 没有人质疑过苹果的iTunes+App的商业模式,App可谓如日中天.

web的演变

- 酿泉 - 前端观察
这是一个基于GAE的项目,有mgmt design、GOOD、Hyperakt和Vizzuality开发,也有Google chrome团队的参与,记录了浏览器与互联网技术的演变. 不多介绍,直接去看看吧:Evolution Of Web. 值得一提的是,这个项目的代码很不错,值得学习一下.

Web Service入门

- - 博客 - 伯乐在线
本文来自文章作者 @Jeremy黄国华 的投稿. 伯乐在线也欢迎其他朋友投稿,投稿时记得留下您的新浪微博账号哦~. 目前对Web Service没有统一的定义,定义一:Web Service是自包含的、模块化的应用程序,它可以在Web中被描述、发布、查找以及调用. 定义二:Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼任的组件进行操作.