Web性能之战打响 开发者面临复杂度挑战

简介: 本文讲的是Web性能之战打响 开发者面临复杂度挑战,FireFox 3.5将比3.0版快两倍,据Mozilla基金会说,它的主要优点是速度飞快。新版本的Firefox开源浏览器第一次全面使用了TraceMonkey引擎为JavaScript加速,而这以前仅在3.1的测试版中出现过。

本文讲的是Web性能之战打响 开发者面临复杂度挑战,【IT168 资讯】FireFox 3.5将比3.0版快两倍,据Mozilla基金会说,它的主要优点是速度飞快。新版本的Firefox开源浏览器第一次全面使用了TraceMonkey引擎为JavaScript加速,而这以前仅在3.1的测试版中出现过。
  这一行动是Mozilla在近来的浏览器大战中使出的最新杀手锏,这同时也表明了浏览器厂商们已经开始转而注重Web应用的性能改善。51CTO.com之前曾报道过Google专家的观点,JavaScript是网站性能的致命克星;根据Google研究小组的报告,互联网上,速度最重要!Google已经在去年给Chrome安装了高性能的JavaScript引擎,而随后Opera和苹果也相继宣布为各自的浏览器推出新的JavaScript引擎,微软也在费力的对IE8进行着优化。
  但浏览器的单方面表现并不能代表一切。上周流行天王迈克尔杰克逊的突然死讯让几乎所有的主要新闻网站的访客们感受到了延迟,但问题既不是出在浏览器,也不是出在超负荷的服务器身上。根据网络监控机构Keynote Systems的分析,在许多情况下,网站速度减慢的主要原因是广告网络和第三方内容提供商的问题,他们自身的网络无法处理突然增加的流量。
  这一事件正巧显示了Web开发者们越来越关注的一个问题。如今的Web应用通常会整合来自多个来源的内容、数据存储和服务,而且对云计算越来越大的兴趣只会加速这种趋势。考虑到这些交错在一起的因素,Web开发者可以真的保证快速敏感的用户体验吗?或者说随着Web应用的元素越来越错综复杂,我们会不会逐渐对应用的性能变得不在意,把问题扔给互联网来解决?
  Web开发者受到的云困扰
  制作网页很容易,但建立高效的Web应用却难得多。对开发者来说,开发桌面端软件是更好掌控的工作。你可以通过消灭内存泄漏和提高磁盘访问效率来优化它的性能。但这一切都不适用于Web应用,这时开发者必须依靠浏览器来处理本地资源的效率。
  在Web应用中,开发者面临着变幻莫测的网络情况。如果用户访问的网页需要从第三方供应商那里读取图像,那么总体的用户体验就要取决于用户的浏览器、用户的数据连接方式、Web服务器的输出管道、Web应用软件、网络服务器和图片提供商之间的管道,还有图像提供商的服务器软件等等。一位Web应用开发者通常只负责优化这其中的一个方面。
  这是因为在这样的基于云计算的分布式模式中,他们认为理所当然会有别的开发者去考虑该他负责的问题。但是你怎么能肯定第三方图像供应商对安全性足够认真?怎么能确保他们的系统设置了足够的冗余,有没有定期备份,这样才不会在出现意外时无计可施?
  更为迫切的问题是外部服务是以什么方式与网页进行整合。它们大多依赖于外部JavaScript或iframe,或两者兼有。这两种技术都会拥堵网页的onLoad事件,这是造成用户浏览体验缓慢的一个主要因素。因为这个瓶颈是在JavaScript代码执行前发生的,所以浏览器JavaScript引擎速度的快慢解决不了太大问题。如果网络本身的负担就已经过重,那么就不仅是第三方内容的问题了,你的整个应用都会受到影响。
  复杂性的提高导致Web应用风险增加
  Web社区正在努力寻找减轻这些问题的方法。例如,新一代的浏览器会在等待JavaScript执行的同时装载其他内容的元素,开发者们找出各种聪明的技巧来消除脚本瓶颈问题。但是,这些单方面的优化无法从根本上解决问题。
  “考虑一下这个问题,”Google传播者Steve Souter说,他也是“高性能网站”和“更快的网站”两本书的作者,“我们有时会把一大块的HTML,可能还包括CSS、JavaScript和Flash,一起塞到另一个网页里……因此这造成网页性能大幅度降低也并不奇怪,在某些情况下甚至还会导致整个网站瘫痪。”
  部分原因在于这样的整合内容往往缺乏协调的管理和监督。“将第三方内容整合到网页中本该是一个复杂的项目,在同一家公司里需要两个团队协作完成,”Souter说。“比如广告,两个团队需要负责两个不同的公司。而事实上,设计广告的开发者可能永远不会与主网站的建设团队进行沟通。”
  但是这并不是说每个人都要去分担网站变慢的责任。请放心,在网站变慢时,所有的访问者都会责怪网站自身,而没有人会去找外部内容提供商的麻烦。
  网络一步步走向成熟的应用平台
  就目前而言,Web应用的开发者和架构师们应该多去了解一下那些潜在的瓶颈问题,还有那些分布式以及类似云计算的Web应用的自身缺陷。多关注一些相关的书籍和消息,比如51CTO.com上月曾报道的Google面向Web开发者推出了一个网站,专门研究如何提升Web性能,怎样提升JavaScript的性能;并向Web开发者发布了网页加速工具Page Speed。
  然而从长远来看,Web服务提供者和消费者们需要共同努力,为今后基于云的互联网应用制定出标准的做法。互动广告局(The Interactive Advertising Bureau)为了缩短载入时间已经成立了一个工作组,为广告提供商们提供最佳实践。这是一个好的开始,但显然还有很多工作要做。
  Web社区的工作也至关重要,需要提高不仅仅是浏览器性能,还有Web开发团队跨机构合作的能力。随着网站和服务变得更加互联,我们必须拿出新的办法来交流与合作,使分布式的跨网站开发工作可以进行的更加流畅。只有这样,基于云的新一代网络才会蓬勃发展,成长为可靠的、一流的应用开发平台。

原文发布时间为:2009-07-15
本文作者: IT168.com
本文来自云栖社区合作伙伴IT168,了解相关信息可以关注IT168。
原文标题:Web性能之战打响 开发者面临复杂度挑战

目录
相关文章
|
21天前
|
Web App开发 JavaScript 前端开发
[译] 用 Web Worker 改善 Vue 组件性能
[译] 用 Web Worker 改善 Vue 组件性能
|
2天前
|
缓存 负载均衡 前端开发
优化Web应用性能的十种策略
在当今的数字化时代,Web应用的性能直接影响用户体验和业务成效。本文深入探讨了优化Web应用性能的十种策略,从前端的资源优化到后端的架构改进,涵盖了缓存机制、异步加载、数据库优化等关键技术手段。这些策略不仅能提升响应速度,还能显著减少服务器负担和带宽消耗,为开发者提供了一系列切实可行的解决方案。
|
19天前
|
缓存 安全 前端开发
【性能大逆袭】Web2py应用如何从龟速变飞快?六大优化秘籍让你的应用焕然一新!
【8月更文挑战第31天】Web2py是一款备受欢迎的全栈Python Web框架,以其内置的数据库抽象层和安全特性著称。然而,随着应用规模的扩大,性能瓶颈逐渐显现。本文通过对比分析,从代码层面(如减少数据库查询、避免全局变量)到部署策略(如静态文件压缩、CDN加速、选择合适数据库、优化查询、异步处理),全面介绍Web2py应用的性能优化方法及其应用场景。通过具体示例,展示了如何创建并优化一个简单的Web2py应用,旨在帮助开发者构建高效稳定的Web应用。
38 2
|
19天前
|
前端开发 JavaScript API
【独家揭秘】Bottle框架为何能俘获开发者的心?三大实战案例带你领略Web开发新境界!
【8月更文挑战第31天】Bottle是一款轻量级Python Web框架,以简单高效著称,秉持极简设计,适合快速开发小型项目或构建API服务。本文通过具体代码示例展示Bottle框架的独特魅力,从安装到创建应用、路由设置、模板渲染及表单处理等方面进行详细介绍,帮助读者轻松上手并掌握Bottle的应用技巧。
32 1
|
20天前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
22 1
|
22天前
|
缓存 NoSQL 数据库
Web服务器与数据库优化:提升系统性能的最佳实践
【8月更文第28天】在现代的Web应用中,Web服务器与后端数据库之间的交互是至关重要的部分。优化这些组件及其相互作用可以显著提高系统的响应速度、吞吐量和可扩展性。本文将探讨几种常见的优化策略,并提供一些具体的代码示例。
33 1
|
22天前
|
前端开发 JavaScript C#
C#开发者的新天地:Blazor如何颠覆传统Web开发,打造下一代交互式UI?
【8月更文挑战第28天】Blazor 是 .NET 生态中的革命性框架,允许使用 C# 和 .NET 构建交互式 Web UI,替代传统 JavaScript。本文通过问答形式深入探讨 Blazor 的基本概念、优势及应用场景,并指导如何开始使用 Blazor。Blazor 支持代码共享、强类型检查和丰富的生态系统,简化 Web 开发流程。通过简单的命令即可创建 Blazor 应用,并利用其组件化和数据绑定特性快速搭建界面。无论对于 .NET 还是 Web 开发者,Blazor 都是一个值得尝试的新选择。
40 1
|
23天前
|
缓存 前端开发 JavaScript
超时空加速秘籍:揭秘JavaScript前端开发中的性能魔法,让您的Web应用瞬间穿越到未来!
【8月更文挑战第27天】本文介绍了一系列实用的JavaScript性能优化方法并提供了示例代码,包括减少DOM操作、使用事件委托、避免阻塞主线程、异步加载资源、利用浏览器缓存、代码分割以及使用Service Worker等技术,帮助开发者有效提升Web应用性能和用户体验。
32 2
|
26天前
|
存储 缓存 监控
Memcached玩转Web性能:一致性哈希、数据持久化,一文全掌握!
【8月更文挑战第24天】Memcached是一款高性能的分布式内存对象缓存系统,它通过在网络中存储数据并使用简单的键值对机制来提高动态Web应用的性能。它可以显著减少数据库查询次数,进而减轻数据库负载并加快响应时间。为了最大化利用Memcached的优势,建议合理配置内存使用、采用一致性哈希策略、实施数据持久化措施,并持续监控系统健康状况。提供的示例代码展示了如何使用Java创建客户端、添加和获取数据。
28 1
|
1月前
|
缓存 编解码 前端开发
优化Web应用性能的前端技巧:从加载时间到用户体验
在现代Web开发中,提升前端性能不仅仅是为了缩短页面加载时间,更是为了提供更流畅的用户体验。本文将探讨几种有效的前端优化技术,包括懒加载、代码拆分、资源压缩以及浏览器缓存策略。通过具体实例和最佳实践,读者将能够掌握如何系统地提高Web应用的响应速度,减少资源消耗,并最终改善用户的整体体验。