基于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 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...
随机推荐
- request 、response和session的区别
request: 1.request.getParameter("key")接受的是来自客户登陆端的数据,接受的是post或get方式传送的value. 2.请求的默认字符集是IS ...
- (企业面试部分)超详细思路讲解SQL语句的查询实现,及数据的创建。
企业面试部分详细的SQL问题,思路讲解 第一步:创建数据库表,及插入数据信息 --Student(S#,Sname,Sage,Ssex) 学生表 CREATE TABLE student( sno ) ...
- Linux基础命令之cat使用方法大全
今天在学习部署安装openstack的时候,看到一个关于cat的奇怪用法,可能是本人的才疏学浅没见过这种写法,于是乎查阅资料了一番,并进行了总结,希望也能够帮助有需要的朋友. 以下是我总结的几种常用方 ...
- ELF Format 笔记(六)—— 字符串表
ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287 字符串表中包含若干以 null 结尾的字符串,这些字符串通常是 symbol 或 section 的名字.当 ...
- sqlserver 用 RowNumber 分组
SELECT RECORD.[RECORD_ID] ,RECORD.[WORKFLOW_INFO_ID] ,RECORD.[FORM_CODE] ,RECORD.[APPLY_DATE] ,RECOR ...
- KVM 介绍(7):使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照 (Nova Instances Snapshot Libvirt)
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...
- Interlocked系列函数线程同步的缺陷
1. Code int Work() { while (m_lInterlockedData < 10) { InterlockedIncrement(&m_lInterlockedDa ...
- Java虚拟机详解----JVM常见问题总结
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- CF 371C-Hamburgers[二分答案]
C. Hamburgers time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- 希尔排序(c++)
希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法.该方法因DL.Shell于1959年提出而得名. 希尔排序是把记 ...