基于Html5缓存的页面P2P技术可行性探讨
P2P技术,在分享大文件(你懂的)是现在必不可缺的技术,现在的人,已经很难想象在没有这玩意的互联网早期,人们是怎样的艰难求生。想当年,不要说电影,下一个稍大点的文件,都是很吃力的事情。
后来牛人科恩,发明了P2P技术,见这里【科技英雄传】BitTorrent技术之父:科恩
P2P技术发明后,其互联网带宽占到了7成以上,可见此技术的威力,网络有多快,分享就有多快,速度不在受到终端或服务器限制,而是受到网络,也就是道路的限制。真正回归到网络的本质。
作为程序员,我们经常为一个问题苦恼,就是性能,怎么让服务器支撑更多的人,更多的访问流量?这是一个大问题。
我们看看传统的解决方案,不断的提高服务器的并发,使用服务器缓存,使用大数据,使用分布式数据库,使用CDN,加CPU,加内存,加带宽,限制用户数,等等等等。这些手段,都是治标不治本,中心或分中心模式,不管怎么做,最终都有问题,这也不是网络模式。这就和买票一样,都跑一个地方买,再快的抢票软件也一样没用。
那么,有没有可能,象P2P一样,把网页也给P2P了呢?从原理来看,其实是可行的。
原理是这样的,比如我访问这个页面,那么数据已经在我浏览器里了,但是,我浏览器里的内容可以分享啊,通过P2P技术,其它用户相互间分享同一时间的同一页面内容,和P2P原理一样,同一页面访问的人越多,那么速度反而越快。
如果有人能搞出页面P2P技术,那么世界将再次被改变,任何页面,都可以支撑全球所有的访问量。从此网站再也不怕大用户,用户越多,网站越快,刚好和现在的模式相反,我们再也不需要优化网站了。
但是这种一篮子的解决方案,可不可行呢?有没有人能搞出来呢?从原理来看是可行的,但实际上很困难。原因是很多页面不仅仅只是静态内容,而且页面很复杂,文本,数据,图片,甚至视频。
但是部分的解决方案还是有的,比如云服务,把图片,视频等放在第三方,CDN服务,把一些公用代码放第三方,还有网页加速服务,比如什么数字的风行计划,给网站缓存加速。
当然了,上述这些解决方案,都是很费事又费钱的东西,最好就是浏览器支持本身支持网页P2P,但这个技术看上去,这几年都不用指望了,作为创业者或中小企业网站,有没有成本更低廉的办法,解决性能问题?
这就可以使用一些Html5的先进技术了,Html支持本地存储,和本地缓存,但对于动态加载的页面可能还需要自已进一步编码,如果我们把样式表,代码,通用数据,图片,在第一次加载后,再用脚本方式存在本地数据库,当然这得需要一个版本管理技术。
这样的话,除了第一次慢点,以后因为有大量内容被缓存到了本地,那么Web应用就有点类似传统的C/S应用了。服务器端的压力被大大减轻。
但是,用户多了服务器还是一样有性能问题,能不能在A客户缓存了本地数据以后,B客户访问网站时,直接把A客户,导向B客户,让A客户取得B客户的缓存数据呢?
答案是可以的,但不是现在,W3C正在开发P2P浏览器标准,让你的浏览器和他的浏览器实时通信,不需要经过服务器,可见此技术,在将来是可行的,但现在没有足够的支撑。
由此可见,现在如果利用Html5技术,解决如下几个问题:
一是本地存储的版本问题,这样服务器更新后,就从服务器上取新数据,如果没有更新就读取本地缓存。
二是本地存储的读取写入,以及路径问题,这需要有一种机制,让应用不需要管数据的来源是本地还是服务器,把资源路由交给一个统一机制,由它去判断
版本问题有比较现成的解决思路,比如时间过期,或者是版本号,加个二维码什么的。资源路由就不太清楚,这需要进一步的摸索。但是,优先考虑Html5的本地存储及缓存技术,应该是一个低成本解决性能问题的方案。而这种方案,还可以为将来到来的浏览器P2P做准备。
基于Html5缓存的页面P2P技术可行性探讨的更多相关文章
- 基于html5页面滚动背景图片动画效果
基于html5页面滚动背景图片动画效果是一款带索引按钮的页面滚动动画特效代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id="fullpage&q ...
- 基于html5整屏切换IDO智能手表页面滚动代码
之前为大大家介绍了一款jquery实现的整屏切换特效.今天分享一款IDO智能手表页面滚动html5代码.这是一款基于jQuery+HTML5实现的页面滚动效果代码.效果图如下: 在线预览 源码下载 ...
- 基于html5和css3响应式全屏滚动页面切换效果
分享一款全屏响应式的HTML5和CSS3页面切换效果.这个页面布局效果对于那些页面要求固定100%高度和宽度的网站和APP来说是十分有用的.效果图如下: 在线预览 源码下载 HTML wrappe ...
- 基于HTML5的Web SCADA工控移动应用
在电力.油田燃气.供水管网等工业自动化领域Web SCADA的概念已经提出了多年,早先年的Web SCADA前端技术大部分还是基于Flex.Silverlight甚至Applet这样的重客户端方案,在 ...
- 基于 HTML5 的 WebGL 和 VR 技术的 3D 机房数据中心可视化
前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...
- 基于 HTML5 的 WebGL 自定义 3D 摄像头监控模型
前言 随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的同时,在监控系统中面临着严峻的现状问 ...
- 基于HTML5 Canvas和jQuery 的绘图工具的实现
简单介绍 HTML5 提供了强大的Canvas元素.使用Canvas并结合Javascript 能够实现一些很强大的功能.本文就介绍一下基于HTML5 Canvas 的绘图工具的实现.废话少说,先看成 ...
- 基于 HTML5 WebGL 的加油站 3D 可视化监控
前言 随着数字化,工业互联网,物联网的发展,我国加油站正向有人值守,无人操作,远程控制的方向发展,传统的人工巡查方式逐渐转变为以自动化控制为主的在线监控方式,即采用数据采集与监控系统 SCADA.SC ...
- B/S 端基于 HTML5 + WebGL 的 VR 3D 机房数据中心可视化
前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...
随机推荐
- PostgreSQL模仿Oracle的instr函数
-- -- instr functions that mimic Oracle's counterpart -- Syntax: instr(string1, string2, [n], [m]) w ...
- JavaScript动态显示当前时间
JavaScript动态显示当前时间: 2016年01月04日 时间:16:58:32 星期一 <span id="timejs"></span> &l ...
- 高性能MySQL笔记 第4章 Schema与数据类型优化
4.1 选择优化的数据类型 通用原则 更小的通常更好 前提是要确保没有低估需要存储的值范围:因为它占用更少的磁盘.内存.CPU缓存,并且处理时需要的CPU周期也更少. 简单就好 简 ...
- 009.CentOS 6.7安装运行netmap
一.netmap简介: 1.netmap是一个高性能收发原始数据包的框架,由Luigi Rizzo等人开发完成,其包含了内核模块以及用户态库函数.其目标是,不修改现有操作系统软件以及不需要特殊硬件支持 ...
- Linux 下从头再走 GTK+-3.0 (四)
实际的应用中,往往有很多个控件, 同样GTK提供了很多种布局方案,Box, Fixed , Table , Grid 等. 接下来试试网格布局 Grid. 我们创建 example4.c ,内容如下: ...
- 关于TCP连接建立与终止那点事
0. 前言 最近在处理公司遗留项目的时候发现自己对TCP协议一点都不懂,所以补了点关于TCP连接的建立和终止的内容,这里简单写下自己了解的部分,省略了报文序号确认序号这些无关的字段,主要讨论TCP状态 ...
- 简易的IOS位置定位服务
有时一些小的需求,其实只是需要得知当前IOS APP使用的地点,有些只是想精确到城市级别,并不需要任何地图. 有了以下的简易实现: @interface MainViewController ()&l ...
- 理解 OpenStack + Ceph (1):Ceph + OpenStack 集群部署和配置
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- MySQL Database on Azure 参数设置
在使用MySQL过程中,经常会根据需要对MySQL的参数进行一些设置和调整.作为PaaS版本的MySQL,MySQL Database on Azure在参数设置方面有一些限制,客户不能像使用on-p ...
- C#学习笔记-icon托盘图标的简单知识
在做整个类似QQ的毕业设计中,有一个小图标把我给难了一阵子,就是托盘小图标