`

JSConf 2010 (三):Raphaël、优化前端性能

阅读更多

提到Raphaël,就得先说说SVG,可缩放矢量图形(Scalable Vector Graphics,SVG)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG由W3C制定,是一个开放标准。SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式。



 

SVG图形格式优点:

1. 图像文件可读,易于修改和编辑

2. 与现有技术可以互动融合。例如,SVG技术本身的动态部分(包括时序控制和动画)就是基于SMIL标准。另外,SVG文件还可嵌入JavaScript(严格的说应该是ECMAScript)脚本来控制SVG对象

3. SVG图形格式可以方便的建立文字索引,从而实现基于内容的图像搜索

4. SVG图形格式支持多种滤镜和特殊效果,在不改变图像内容的前提下可以实现位图格式中类似文字阴影的效果

5. SVG图形格式可以用来动态生成图形。例如,可用SVG动态生成具有交互功能的地图,嵌入网页中,并显示给终端用户

还有一个概念叫VML,VMLThe Vector Markup Language(矢量可标记语言)的缩写。VML用于将图形数据矢量化的标记语言。这是一种基于 XML 语法的语言,由 AutoDesk 、 Macromedia 和 Microsoft 和 HP 公司向 W3C 提出的方案。

Raphaël正是将VML和SVG结合起来的JavaScript库,看如下的网页,你能想象这些图像加起来只有20K么?

 

好了,看一看它的语法,看起来也很容易懂:

  

http://raphaeljs.com/上面有好多DEMO,体验一下吧。

 

Frontend Performance 指的是页面展示性能,在Best of Steve的slider中有此介绍:

YSlow(分析网页,并提出如何提高其性能的基础上一套规则)最有效的途径包括:

使用CSS sprites(CSS精灵,把一些散开的小图片合并成一张大图片)

CDN(Content Delivery Network,即内容分发网络,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容)

配置ETags(实体标签是服务器和浏览器用于确定浏览器中缓存的组件和服务器中的是否对应的一种机制,如果ETag匹配,会返回HTTP304)

使用AJAX GET请求

减少DOM中#数量

减少404页面

尽量避免使用image filter,这个东西运行时会锁死浏览器

优化收藏夹图标(favicon)

 

加速页面的有效途径包括:

延迟JS加载

去除无用CSS

使用有效的CSS选择器

优化图片

优化CSS和JS的顺序

使用代理缓存

 

二者皆有效的途径:

合并CSS、JS

添加过期header

gzip压缩响应

把CSS放在页顶,JS放在页底

避免CSS表达式

引用外部的JS和CSS,而不是直接写在页面内部

减少DNS查找

最小化JS和CSS

避免HTTP302

减少重复脚本

Ajax允许被缓存

尽量少用cookie,减少cookie的大小

尽量不要缩放图片

详见 http://www.slideshare.net/souders/jsconf-us-2010

  • 大小: 4 KB
  • 大小: 23.1 KB
  • 大小: 33.4 KB
分享到:
评论

相关推荐

    Raphaël—JavaScript Library 绘制矢量

    **Raphaël JavaScript Library** 是一个强大的矢量图形库,专为Web开发设计,它允许开发者在网页上创建和操作SVG(Scalable Vector Graphics)和VML(Vector Markup Language)图形。这个库尤其适合那些需要在...

    用 Raphaël 绘制(修改版)

    总的来说,"用 Raphaël 绘制(修改版)"是一个利用Raphaël库开发的中国地图应用,它不仅展示了如何使用Raphaël创建矢量图形,还涵盖了数据处理、图形渲染、用户交互等多个方面,是学习Web图形编程和Raphaël库的好...

    raphael js所有文档以及网站内容,书籍

    6. **绘图路径**:Raphaël允许通过Path命令创建复杂的矢量路径,使用SVG的路径数据格式,如M(移动到)、L(直线到)、C(三次贝塞尔曲线到)等。 7. **动画效果**:Raphaël的动画功能强大,不仅支持基本的平移、...

    Raphaël 用法 An Introduction to the Raphael JS Library

    **Raphaël JS 库入门指南** Raphaël 是一个强大的JavaScript库,用于在Web浏览器中创建矢量图形。这个库支持SVG(Scalable Vector Graphics)和VML(Vector Markup Language),使得在IE6+和其他现代浏览器中创建...

    raphael矢量图形库

    Raphaël是一款强大的JavaScript库,专用于在Web浏览器中创建矢量图形。这个库由Dmitry Baranovskiy开发,旨在提供...无论你是前端新手还是经验丰富的开发者,Raphaël都能提供一个便捷的工具集,让你的创意得以实现。

    raphael特效示例

    Raphaël是一款JavaScript库,专门用于在Web浏览器中创建矢量图形。它提供了一种在HTML5 Canvas和SVG(Scalable Vector Graphics)之间进行交互的统一接口,使得开发者可以不受浏览器兼容性限制地创建复杂的图形和...

    使用Raphaël.js实现心形函数

    Raphaël.js 是一个流行的JavaScript库,专用于在Web浏览器中创建矢量图形。它支持SVG(可缩放矢量图形)标准,允许开发者在网页上绘制复杂的图形,包括动态和交互式的元素。在本篇文章中,我们将深入探讨如何使用...

    raphael web绘图工具

    Raphaël是一款强大的JavaScript库,专为Web上的矢量图形设计而开发。...这个库由Dmitry Baranovskiy创建,其目标是提供一个跨浏览器的...对于前端开发者来说,掌握Raphaël可以极大地提升Web应用的视觉效果和用户体验。

    web流程设计器,基于jQuery和Raphaël

    可视化流程设计器,基于jQuery和Raphaël ,兼容性强,使用方便,扩展性强。经过一夜的努力反编译了一位大神的代码,整理了整体思路并添加注释。 具体描述可在我博客中找到。 10分确实有点贵,但是绝对超值,而且我...

    raphael.js实例

    **Raphaël.js 实例详解** Raphaël.js 是一个JavaScript库,它使得在Web浏览器中创建矢量图形变得简单。...对于想要提升网页设计和用户体验的前端开发人员来说,深入理解并实践Raphaël.js的这些实例是非常有价值的。

    raphael浏览器画图

    这个库的名称"raphael-min.js"暗示了它是Raphaël库的压缩和优化版本,适用于实际项目中的性能考虑。 Raphaël的核心功能在于提供了一系列简单易用的API,用于创建和操作矢量图形。开发者可以通过这些API轻松地创建...

    raphael动态绘制简单的图形.zip

    "raphael动态绘制简单的图形.zip"这个压缩包文件显然包含了使用Raphaël JavaScript库进行动态图形绘制的相关示例。Raphaël是一个流行的选择,因为它允许开发者在网页上创建矢量图形,这些图形可以在各种分辨率和...

    raphael饼图

    Raphaël是一款强大的JavaScript库,专用于在Web浏览器中创建矢量图形。这款库的名字源于16世纪的意大利画家拉斐尔·桑西,它允许开发者使用SVG(Scalable Vector Graphics)和VML(Vector Markup Language)技术来...

    拼字游戏:RaphaëlRosinski,Aleandre Rafanel和AlexandrePrévot制作的拼字游戏

    《拼字游戏:Raphaël Rosinski,Aleandre Rafanel和Alexandre Prévot的创作解析》 拼字游戏,作为一种深受全球玩家喜爱的智力竞技活动,它不仅锻炼了参与者的词汇量,还提升了其逻辑思维和策略规划能力。Raphaël...

    MATLAB典型环节代码-GameboyPrinterPaperSimulation:RaphaëlBOICHOT的具有电子纸功能的游戏男孩打

    RaphaëlBOICHOT 策展人:Brian Khuu 该脚本的作者是RaphaëlBOICHOT,并且在他的允许下被发布在了这里。 具有电子纸功能的游戏男孩打印机模拟器(CrapPrinter)代码在Matlab中运行非常快,而在Octave中则运行缓慢。...

    raphaeljs源码库0分分享

    Raphaël.js 是一个强大的JavaScript库,专用于在Web浏览器中创建矢量图形。它允许开发者使用SVG(可缩放矢量图形)和VML(矢量标记语言)技术来绘制复杂的图形,这些图形在任何分辨率下都能保持清晰。Raphaël.js的...

    raphael-boolean:与Raphaël执行布尔运算

    raphael.boolean.js-使用Raphaël执行布尔运算 该插件为javascript矢量库Raphaël( )提供了布尔操作。 您可以使用单个元素(而不是集合)来执行 联合[A + B | A或B] 差异[A-B | A NOT B] 交集[A * B | A和B] ...

    raphael绘制流程图

    Raphaël是一款强大的JavaScript库,专用于在Web浏览器中创建矢量图形。它支持SVG(可缩放矢量图形)和VML(Vector Markup Language)格式,使得开发者能够在所有现代浏览器以及较旧的IE浏览器上创建出清晰、高质量...

    raphael demo

    Raphaël是一款强大的JavaScript库,专用于在Web浏览器中创建矢量图形。这个"raphael demo"很显然是一个展示Raphaël功能的实例,它包含三个文件:raphael.html(HTML页面)、raphael.js(Raphaël库本身)和jquery-...

    raphael画各种简单的图形,都可以拖动

    Raphaël.js 是一个流行的JavaScript库,专用于在浏览器中进行矢量图形绘制。它提供了丰富的API,使得开发者能够创建复杂的图形,并且支持在网页上动态交互,如拖动等效果。本教程将深入探讨如何使用Raphaël来绘制...

Global site tag (gtag.js) - Google Analytics