Web应用“卡”在何处?

  1. 云栖社区>
  2. IT168>
  3. 博客>
  4. 正文

Web应用“卡”在何处?

轩墨 2017-09-11 09:51:00 浏览880
展开阅读全文

本文讲的是Web应用“卡”在何处?,【IT168 资讯】Firefox 3.5已于不久前正式对外发布。Mozilla基金组织宣传说,Firefox 3.5的最大优势是其速度,因为这个最新版的开源浏览器采用了名为TraceMonkey的JavaScript引擎,能把JavaScript的性能提升到一个数量级甚至更多。
  Mozilla将Firefox 3.5的卖点放在JavaScript引擎上并不令人意外,随着浏览器供应商把竞争的焦点转到了改善Web应用的性能上,JavaScript引擎已经成为突破的重点。自从Google在其去年发布的Chrome中首次采用了高性能的JavaScript引擎以来,到目前为止,Opera和Apple都宣布在各自的浏览器中引入新的JavaScript引擎,甚至微软也不得不对其IE性能进行优化。
  不过,浏览器并不是Web应用的全部。不久前,在获知迈克尔·杰克逊死讯后,不少想了解该消息的网民就经历过一次网络大堵塞。事后的调查发现,问题的根源并不是浏览器的性能不高,也不是新闻网站的服务器处理能力不够,而是因为广告网络和第三方的内容供应商自己的网应对不了这么高的并发访问请求。
  这次事件再次提醒我们Web应用的复杂性。现代的网络应用通常有多个内容来源、数据来源,其中的服务也可能来自不同的组织,最终用户体验到的Web应用是多个因素综合后呈现的结果,单靠Web应用的开发者是无法保证提供一个快速响应的Web应用的。
  Web开发者面临的难题
  开发一个网页很容易,但是开发一个好的Web应用绝对不是一个简单的事情。对开发人员来说,开发桌面应用一切都在自己的掌控之中。比如,为了优化程序的性能,程序员可以减少内存泄漏或者改善程序访问磁盘的效率等。而在开发Web应用时,这些方法都用不上,因为此时是浏览器在管理本地资源的利用。而且,Web开发人员还必须面对并不一定可靠的网络。这导致Web应用的性能具有非常大的不确定性。
  比如,用户访问的一个网页中有一个图片来自第三方。这时,用户访问网页的最终效果就不仅取决于用户所使用的浏览器,还与用户的网络出口带宽、提供网页的Web服务器、Web应用程序、Web服务器与提供图片的服务器之间带宽以及提供图片的服务器上的软件等都有关。而Web应用的开发者只能优化他能做的部分——其中很小的一部分,作为Web应用的开发者根本就不知道第三方的图片提供者是否充分考虑了安全问题,也不知道第三方是否进行了常规的备份,因此,对整个应用是否能正常运行也没有什么把握。
  一个更直接的问题是究竟采用何种方式将外部的服务到底集成到网页中。目前,大多数服务采用的是JavaScript、iframe或者两者同时采用,其中的任何一种都可能出现问题,从而影响网页的加载,导致用户请求的网页无法打开或者打开很慢。而且,问题往往出现在JavaScript引擎执行脚本之前,因此,很多时候浏览器的JavaScript引擎再快也于事无补。如果再加上拥塞的网络,就让原本脆弱的Web应用更不可靠了。
  复杂的网页增大了风险
  业界正在努力解决这个问题。例如,现在的浏览器在等待JavaScript脚本执行的同时可以下载其他网页内容,开发人员也可能想出很多办法来克服脚本方面的问题。不过,归根结底,这些办法的作用是很有限的,不能从根本上解决问题。
  《高性能网站》的作者、Google公司的Web性能专家Steve Souter说:“你设想一下,当我们把一大堆包含CSS、JavaScript、Flash等众多内容的HTML语句构成的网页导入另一个网页时难免会影响该网页的呈现,因此这个网页的性能如果大幅降低、甚至整个网站完全崩溃,我们都不应该感到奇怪,。”
  导致这个问题出现的部分原因在于这些内容之间整合时缺乏统一的协调或监控。“要把第三方的内容整合到一个网页中是很复杂的工作,即使这两者属于同一个公司,也并不容易,更何况如果整合的是广告内容,大多数情况下这两方分别属于不同的公司。” Souter说,“实际上,广告内容的提供者很可能从来没有与网站内容的开发团队进行过沟通和联系。”
  而另一方面,这并不是每个人都要为网站响应慢而承担责任。实际情况是,如果网站的网页打不开或者很长时间才能打开,人们通常会责备这个网站的所有者,而几乎很少有人会想到可能原因出在网站之外的内容的提供方,特别是广告的提供方。
  事情向好的方向发展
  如今,Web应用的开发者和架构师所要做的首先是充分了解开发这种分布式、类似云的Web应用时可能存在的性能瓶颈或者其他可能出现的问题。Souter的《高性能网站》是一个不错的起点,而不久前Google启用了一个新的网站,专门用于指导Web开发人员,网站上介绍了很多改善JavaScript性能的最佳实践。
  但是,从长远发展而言,Web服务的提供方和消费方需要合作制定出一个基于云的互联网应用开发实践标准。IAB(互联网架构委员会)已经成立了几个工作组,这些工作组给广告提供方提供了很多可以减少广告装载时间的最佳实践。这是一个非常好的开端,但是,很显然后面还有很多工作要做。
  目前还有一个让事情变得更复杂的问题就是大客户非常强势。比如,沃尔玛或者几个主要的运行项目组织常常会对外部的内容提供商提出很多要求,如全面的服务级别协议以及Web开发者的诸多责任等,而一般的报纸出版商就不可能提出这些要求,更小一些的客户就更不可能提出了。
  这也就是为什么这一点非常关键:即Web应用的开发界应该共同努力,不仅要提高浏览器本身的性能,而且更为重要的是要提高跨组织的Web开发团队协作能力。随着网站之间和服务之间的联系日益紧密,我们需要新的办法进行沟通、协作和合作,以确保分布式、跨网站的开发工作进行得更为顺利。惟其如此,基于云的Web应用才会得以普及,最终把互联网变成一个可靠的、一流的应用开发平台。

原文发布时间为:2009-07-23
本文作者:IT168.com
本文来自云栖社区合作伙伴IT168,了解相关信息可以关注IT168。
原文标题:Web应用“卡”在何处?

网友评论

登录后评论
0/500
评论
轩墨
+ 关注
所属团队号: IT168