Web应用“卡”在何处?

简介: 本文讲的是Web应用“卡”在何处?,Firefox 3.5已于不久前正式对外发布。Mozilla基金组织宣传说,Firefox 3.5的最大优势是其速度,因为这个最新版的开源浏览器采用了名为TraceMonkey的JavaScript引擎,能把JavaScript的性能提升到一个数量级甚至更多。

本文讲的是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应用“卡”在何处?

目录
相关文章
|
5天前
|
JavaScript 前端开发 持续交付
【专栏】构建现代Web应用:Vue.js与Node.js的完美结合
【4月更文挑战第27天】本文探讨了Vue.js和Node.js如何结合构建现代Web应用。Vue.js作为轻量级前端框架,以其简洁易懂、组件化开发、双向数据绑定和虚拟DOM等特点受到青睐;而Node.js是高性能后端平台,具备事件驱动、非阻塞I/O、丰富生态系统和跨平台优势。两者结合实现前后端分离,高效通信,并支持热更新、持续集成、跨平台和多端适配,为开发高性能、易维护的Web应用提供强有力的支持。
|
5天前
|
开发框架 缓存 前端开发
利用Visual Basic构建高效的ASP.NET Web应用
【4月更文挑战第27天】本文探讨使用Visual Basic与ASP.NET创建高效Web应用的策略,包括了解两者基础、项目规划、MVC架构、数据访问与缓存、代码优化、异步编程、安全性、测试及部署维护。通过这些步骤,开发者能构建出快速、可靠且安全的Web应用,适应不断进步的技术环境。
|
1天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
1天前
|
前端开发 JavaScript 搜索推荐
【专栏:HTML 与 CSS 前端技术趋势篇】HTML 与 CSS 在 Web 组件化中的应用
【4月更文挑战第30天】本文探讨了HTML和CSS在Web组件化中的应用及其在前端趋势中的重要性。组件化提高了代码复用、维护性和扩展性。HTML提供组件结构,语义化标签增进可读性,支持用户交互;CSS实现样式封装、布局控制和主题定制。案例展示了导航栏、卡片和模态框组件的创建。响应式设计、动态样式、CSS预处理器和Web组件标准等趋势影响HTML/CSS在组件化中的应用。面对兼容性、代码复杂度和性能优化挑战,需采取相应策略。未来,持续发掘HTML和CSS潜力,推动组件化开发创新,提升Web应用体验。
|
2天前
|
缓存 前端开发 JavaScript
探索现代Web应用的性能优化策略移动应用开发的未来之路:跨平台与原生之争
【4月更文挑战第30天】随着互联网技术的迅猛发展,Web应用已成为信息交流和商业活动的重要平台。用户对Web应用的响应速度和稳定性有着极高的期望,这促使开发者不断寻求提升应用性能的有效途径。本文将深入探讨针对现代Web应用进行性能优化的关键策略,包括前端优化、后端优化以及数据库层面的调优技巧,旨在为开发者提供一套全面的优化工具箱,帮助他们构建更快速、更高效的Web应用。
|
2天前
|
开发框架 JavaScript 前端开发
【JavaScript 与 TypeScript 技术专栏】TypeScript 在 Web 开发中的前沿应用
【4月更文挑战第30天】TypeScript在Web开发中日益重要,以其强大的类型系统提升代码质量,支持组件化开发,与React、Vue、Angular等框架良好集成。在大型项目管理中,TypeScript助于代码组织和优化,提高团队协作效率。此外,它提升开发体验,提供智能提示和错误检测。众多成功案例证明其前沿应用,未来将在Web开发领域持续发挥关键作用。
|
2天前
|
移动开发 JavaScript 前端开发
【JavaScript技术专栏】Web Worker在JavaScript中的应用
【4月更文挑战第30天】HTML5的Web Worker API解决了JavaScript单线程性能瓶颈问题,允许在后台线程运行JS代码。本文介绍了Web Worker的基本概念、类型、用法和应用场景,如复杂计算、图像处理和数据同步。通过实例展示了搜索建议、游戏开发和实时数据分析等应用,并提醒注意其无法直接访问DOM、需消息传递通信以及移动端资源管理。Web Worker为前端开发提供了多线程能力,提升了Web应用性能和用户体验。
|
2天前
|
开发框架 Dart 前端开发
【Flutter前端技术开发专栏】Flutter中的Web支持:构建跨平台Web应用
【4月更文挑战第30天】Flutter,Google的开源跨平台框架,已延伸至Web领域,让开发者能用同一代码库构建移动和Web应用。Flutter Web通过将Dart代码编译成JavaScript和WASM运行在Web上。尽管性能可能不及原生Web应用,但适合交互性强、UI复杂的应用。开发者应关注性能优化、兼容性测试,并利用Flutter的声明式UI、热重载等优势。随着其发展,Flutter Web为跨平台开发带来更多潜力。
【Flutter前端技术开发专栏】Flutter中的Web支持:构建跨平台Web应用
|
2天前
|
存储 前端开发 数据库
搭建轻量级Web应用
【4月更文挑战第14天】本文介绍了使用Flask快速搭建轻量级Web应用的步骤。首先,通过`pip install Flask`安装Flask,然后创建基础应用结构,包含路由和简单的Hello, Flask!页面。接着,学习如何添加更多页面、使用模板引擎(如Jinja2)和处理表单。此外,文章还涉及管理静态文件、集成SQLite数据库、进行数据库迁移以及添加用户认证功能,使用Flask-Login实现登录和登出。通过这些步骤,读者能掌握构建完整Flask应用的基本知识,了解其灵活性和扩展性。
11 0
|
3天前
|
网络协议 数据库 开发者
构建高效Python Web应用:异步编程与Tornado框架
【4月更文挑战第29天】在Web开发领域,响应时间和并发处理能力是衡量应用性能的关键指标。Python作为一种广泛使用的编程语言,其异步编程特性为创建高性能Web服务提供了可能。本文将深入探讨Python中的异步编程概念,并介绍Tornado框架如何利用这一机制来提升Web应用的性能。通过实例分析,我们将了解如何在实际应用中实现高效的请求处理和I/O操作,以及如何优化数据库查询,以支持更高的并发用户数和更快的响应时间。