`
lzy.je
  • 浏览: 150603 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

关于 RIA/Ajax 应用性能优化的一些思考

阅读更多

本文以现有理解写成,做为记录和基础。

 

          在做客户端/服务器性能优化的项目里,往往主要的调优对象是服务端,因为在这种分散请求、集中处理的总体架构中,决大部分情况下服务端性能的高低,就决定了客户端体验的好坏,也就是我们比较关心的吞吐量和响应时间的关系。但是,随着接触此类项目的增多,发现在 B/S (B/S/S 也好)中采用 RIA/Ajax 做为客户端时,一些瓶颈明显是存在于客户端。随着这方面的积累,也有了一些思考,在网上也搜索了一下,觉得国内这种ria的客户端性能优化工作做得不多,处于起步阶段,大家都在忙着做服务端,国外这块超前一些,有一些度量工具,也有一些优化工具,不过个人觉得也是属于讨论加尝试、走向成熟的过程中。

 

          我一直在接触传统行业解决方案类软件,不属于纯互连网应用,感觉这方面的问题更加严重。这种软件本质属于MIS系统,业务代码主要做的就是数据处理工作,因此 UI 必然会涉及更多的数据绑定、操作和提交操作。现在在 B/S 架构下,为了客户端更美观、方便等等吧,使用以 Ajax 为代表的 RIA 成份越来越多,而在这种重的数据处理负荷下(往往传输的数据量比较大,表单绑定的项目很多,网格更是很常见),客户端性能下降、乃至瓶颈就在所难免了。

 

          现在的问题是摆在这里了,怎么来解决它。我个人认为问题是层次化的,要逐层解决。

 

1. 首先我想是总体要有三个目标,可度量、诊断、最后才谈得上优化,这和服务端优化是一个道理。在这个层面上现在能够做到的是度量,而且负责的说,这块做得感觉不是很好;还要考虑度量的范围(主机级、网络 IO、浏览器、javascript virtual machine/runtime env 和 javascript 框架/代码);再就是有哪工具支持,手工恐怕不靠谱。

2. 其次我认为是关注的深度,如环境、配置、架构和代码层面的,实际也可以往大了说成优化方法问题。关注的深度不同,优化的目标和结果也不一样。如关注网络传输方面、HTML/JS/CSS 本身设计、环境配置(浏览器,服务端一些配置等)、架构和策略方面的、代码层面本身的。呵呵,不过往往代码也是最不希望下手的地方,但最有优化效果的也就是这部分了。

 

         对于上面提到的第一点,我觉得还有一个细节要考虑,就是客户端不像服务端,机器的配置是千差万别的,因此所有的工作都要创建个基线,也就是所有的工作是在什么样硬件配置的机器上做得的。这个可以参考容量估算的一些作法和模型,以便让取得的结果更具可比性,提高参考价值。

 

最后列一些有价值的文档,大家一起研究。

1. Client side performance testing has arrived

    客户端性能测试的研究与讨论。

2. 使用 Visual Round Trip Analyzer 加快网页加载速度的 12 个步骤

    以要点的方式给出了诸如客户端环境、网络传输和 HTML 和架构设计等方面的提高客户端性能的建议。并介绍了 VRTA 工具。

3. Razor - Profile and Optimize Web 2.0 Ajax Performance

    一个客户端性能度量、优化工具。

4. Introducing the IE8 Developer Tools JScript Profiler

    Microsoft IE 8 提供开发人员的 javascript 度量工具(当前 bate 版)。

5. Ajax View

    Microsoft Research 开发的一个原型工具,用于度量 Javascript 代码。

6. Emre Kıcıman

    Ajax View 作者的博客。

 

各位看客在这方面有什么看法?期待大家的声音~

 

// 2009.03.07 13:30 添加 ////


作者:lzy.je
出处:http://lzy.iteye.com
本文版权归作者所有,只允许以摘要和完整全文两种形式转载,不允许对文字进行裁剪。未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

// 2009.05.01 13:35 添加 ////

 

附件 性能优化.zip 为备份目的所添加,请勿下载使用。

 

// 2009.06.10 17:34 添加 ////

 

很好的一篇 Web 应用前端优化实践文章,分类也比较详细,推荐一读。

Best Practices for Speeding Up Your Web Site

 

分享到:
评论
1 楼 achun 2008-12-09  
<p>您所关注的.我也一直在探寻</p>
<p>您看看我博客里的内容.</p>
<p><a href='/category/33268' target='_blank'>jCT专题部分</a>,</p>
<p>另外一篇相关的文章在小工具专题里的</p>
<h3><a href='/blog/287908' target='_blank'>我的WEB设计契约--数据库篇</a></h3>
<p>
这些文章所讲的策略/契约和工具组成了我的完整的解决方案.</p>

相关推荐

    AJAX探秘与RIA深度挖掘

    **AJAX探秘** AJAX(Asynchronous ...通过深入学习AJAX和RIA,开发者可以创建出更高效、更互动、用户体验更好的Web应用。无论是局部更新的动态交互,还是全方位的富互联网体验,都是提升网站质量的重要途径。

    RIA应用开发课程简介

    在RIA应用中,jQuery的使用至关重要,因为它使得开发者能够高效地编写代码,同时提高页面性能。本课程的jQuery部分将涵盖以下关键知识点: 1. **jQuery基础**:了解如何引入jQuery库,掌握选择器的基本用法,以及...

    RIA应用开发:7-创建Ajax应用.ppt

    在RIA应用开发中,Ajax(Asynchronous JavaScript and XML)技术扮演着重要角色,它允许网页在不完全刷新的情况下与服务器进行数据交换,从而提升了用户体验。 创建Ajax应用的关键在于XMLHttpRequest对象,这是Ajax...

    Ajax,RIA与Web开发程序员教程代码示例(ch02)

    8. **Ajax安全与优化**:讨论跨域问题、防止XSS(跨站脚本攻击)和CSRF(跨站请求伪造)的安全措施,以及如何优化Ajax性能,如缓存策略、减少HTTP请求等。 9. **实例解析**:180多个实例覆盖了各种常见场景,如动态...

    RIA应用开发实验指导书:实验五 Ajax应用.doc

    **Ajax 应用详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它使得网页具有更好的用户体验,因为数据可以在后台与服务器交互,而用户可以继续浏览...

    RIA(富因特网应用程序)介绍

    1. **应用服务器性能**:对于需要处理大量数据的应用场景,使用RIA技术可以帮助减轻服务器的压力,优化资源分配。 2. **业务需求**:根据业务的具体需求选择RIA技术,特别是对于需要提供高度交互性、实时反馈的应用...

    《深入理解Ajax基于JavaScript的RIA开发》配书源码

    其配书源码包含了一系列实际的示例和实践项目,旨在帮助读者深入掌握Ajax和基于JavaScript的富互联网应用(Rich Internet Applications,简称RIA)开发。通过研究这些源代码,开发者可以更好地理解和应用书中介绍的...

    RIA应用展示

    ria,全称Rich Internet Application,即富互联网应用,是指那些具有丰富用户界面和交互功能的网络应用程序,它们能够提供类似桌面应用的体验,但运行在浏览器环境中。RIA应用结合了客户端和服务端的技术,旨在提高...

    大数据大数据前台页面 Ajax框架/RIA

    【大数据】大数据前台页面 Ajax框架/RIA 大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨大到无法透过主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。...

    WCF RIA Service Silverlight 商业应用

    通过这个示例项目,开发者可以学习到如何利用WCF RIA Services和Silverlight构建可扩展、高性能的商业应用,包括如何组织服务、处理数据交互、实现业务规则以及优化用户体验。此外,这也有助于理解和掌握Microsoft的...

    RIA 应用程式开发

    - **Flex 2的新特性**:Flex 2不仅仅是一个新版本那么简单,它引入了许多新的特性和改进,如更强大的数据绑定能力、更丰富的组件库以及更好的性能优化工具等,这些都是为了帮助开发者创建出更加出色的RIA。...

    RIA及技术与用户体验

    RIA 不依赖于特定的技术或编程语言,而是强调通过高度交互性和丰富的图形用户界面来增强网络应用的功能和性能。 **Flash/Flex/Flash Player/AIR**是Adobe公司推出的一系列相关技术,用于实现RIA开发: - **Flash**...

    RIA.压缩包

    RIA,全称Rich Internet Application,中文可译为“富互联网应用程序”,是一种在互联网上提供高度交互性和丰富用户体验的应用程序模型。这种技术结合了桌面应用程序的交互性和网页应用程序的分布性,旨在提供比传统...

    《Flash MX 2004 ActionScript 2.0 与 RIA 应用程序开发》

    《Flash MX 2004 ActionScript 2.0 与 RIA 应用程序开发》这本书深入探讨了使用Adobe Flash MX 2004进行富互联网应用(Rich Internet Application,简称RIA)开发的核心技术——ActionScript 2.0。ActionScript是...

    基于RIA架构的应用开发改进方案

    综上所述,改进基于RIA架构的应用开发,需要综合考虑性能优化、可维护性提升、用户体验优化以及安全性的保障。同时,选择合适的工具和方法,能够有效提高开发效率和软件质量。在实际项目中,应结合具体情况灵活运用...

    基于RIA方式的WebGIS构建.pdf

    本文还讨论了RIA的现状和主要技术方法,RIA技术手段和对应工具不断涌现,包括JavaScript/AJAX、Flex等客户端技术。这些技术可以使WebGIS RIA的构建更加灵活和高效。 本文的主要贡献是提出了基于JavaScript/AJAX、...

    RIA Architecture Pocket Guide

    5. **性能优化**:鉴于RIA应用的复杂性,性能优化成为关键,包括代码优化、资源加载策略、缓存机制等方面。 6. **安全性**:随着RIA应用的普及,安全问题日益凸显,需要采取有效措施保护用户数据,防止恶意攻击。 ...

    RIA技术实战

    同时,深入学习JavaScript的高级特性,如闭包、原型链、异步编程(Promise、async/await)和模块化(CommonJS、ES6模块),将帮助开发者构建更为复杂和高性能的RIA应用。 **Ajax技术** Ajax(Asynchronous ...

Global site tag (gtag.js) - Google Analytics