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技术可行性探讨的更多相关文章

  1. 基于html5页面滚动背景图片动画效果

    基于html5页面滚动背景图片动画效果是一款带索引按钮的页面滚动动画特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="fullpage&q ...

  2. 基于html5整屏切换IDO智能手表页面滚动代码

    之前为大大家介绍了一款jquery实现的整屏切换特效.今天分享一款IDO智能手表页面滚动html5代码.这是一款基于jQuery+HTML5实现的页面滚动效果代码.效果图如下: 在线预览   源码下载 ...

  3. 基于html5和css3响应式全屏滚动页面切换效果

    分享一款全屏响应式的HTML5和CSS3页面切换效果.这个页面布局效果对于那些页面要求固定100%高度和宽度的网站和APP来说是十分有用的.效果图如下: 在线预览   源码下载 HTML wrappe ...

  4. 基于HTML5的Web SCADA工控移动应用

    在电力.油田燃气.供水管网等工业自动化领域Web SCADA的概念已经提出了多年,早先年的Web SCADA前端技术大部分还是基于Flex.Silverlight甚至Applet这样的重客户端方案,在 ...

  5. 基于 HTML5 的 WebGL 和 VR 技术的 3D 机房数据中心可视化

    前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...

  6. 基于 HTML5 的 WebGL 自定义 3D 摄像头监控模型

    前言 随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的同时,在监控系统中面临着严峻的现状问 ...

  7. 基于HTML5 Canvas和jQuery 的绘图工具的实现

    简单介绍 HTML5 提供了强大的Canvas元素.使用Canvas并结合Javascript 能够实现一些很强大的功能.本文就介绍一下基于HTML5 Canvas 的绘图工具的实现.废话少说,先看成 ...

  8. 基于 HTML5 WebGL 的加油站 3D 可视化监控

    前言 随着数字化,工业互联网,物联网的发展,我国加油站正向有人值守,无人操作,远程控制的方向发展,传统的人工巡查方式逐渐转变为以自动化控制为主的在线监控方式,即采用数据采集与监控系统 SCADA.SC ...

  9. B/S 端基于 HTML5 + WebGL 的 VR 3D 机房数据中心可视化

    前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...

随机推荐

  1. Python标准库01 正则表达式(re包)

    python正则表达式基础 简单介绍 正则表达式并不是python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大 ...

  2. Linux系统管理命令之用户组管理

    涉及的配置文件 /etc/group /etc/gshadow /etc/gshadow- 可用于还原 不同系统的备份文件名称不同:name-或name.old 命令: 添加用户组groupadd 组 ...

  3. discuz mysqli_connect() 不支持 advice_mysqli_connect

      看网友的解决方案是:下面2行去掉注释 ? 1 2 ;extension=php_mysql.dll ;extension=php_mysqli.dl 尝试修改 ? 1 #vi /etc/php.i ...

  4. corefile 设置

    程序运行的过程中,可能会因为一些隐藏的bug导致崩溃,为了在出问题时,及时记录所在环境的情况,所以要设置core文件的产生.其实其本质就是把进程的内存保存到文件中去. 1.core文件的生成开关和大小 ...

  5. putty-不输入密码直接登陆

    在桌面建立新的快捷方式,命令行填写如下: d:\soft\putty.exe -pw 你的口令 用户名@服务器地址注意更换你的putty.exe的路径,为了避免出错,这里有个窍门,你可以找到putty ...

  6. 【转载国外好文】代工开发一个iOS应用没有那么容易

    导读:这是来自新加坡的 iOS 开发者 Kent Nguyen 发表在1月底的一篇博文.这篇吐槽文在 iOS 开发圈子里流传甚广,从原文150多个评论就可见一斑,现翻译如下. 让我们开门见山吧:做一个 ...

  7. Sql server2012连接Sql server 2008时出现的问题:已成功与服务器建立连接,但在登陆过程中发生错误。(provider:SSL Provider,error:0-接收到的消息异常,或格式不正确。)

    以前连接是正常的,就这两天连不上了.(没有耐心的直接看末尾解决办法) 错误消息如下: 1.尝试读取或写入受保护的内存.这通常指示其他内存已损坏.(System.Data) 2.已成功与服务器建立连接, ...

  8. 洛谷10月月赛Round.1| P3399 丝绸之路 [DP]

    题目背景 张骞于公元前138年曾历尽艰险出使过西域.加强了汉朝与西域各国的友好往来.从那以后,一队队骆驼商队在这漫长的商贸大道上行进,他们越过崇山峻岭,将中国的先进技术带向中亚.西亚和欧洲,将那里的香 ...

  9. AC日记——字符串最大跨距 openjudge 1.7 26

    26:字符串最大跨距 总时间限制:  1000ms 内存限制:  65536kB 描述 有三个字符串S,S1,S2,其中,S长度不超过300,S1和S2的长度不超过10.想检测S1和S2是否同时在S中 ...

  10. [记录]ASP.NET MVC 2.0 如何使用Html.RadioButtonFor?

    在MVC 2.0里支持强类型实体绑定,可以直接使用如 <%: Html.TextBoxFor(model => model.Description, new { @class=" ...