NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

加快 Flex 应用启动速度的 5 种方式

  • 2008-05-31
  • 本文字数:1286 字

    阅读完需:约 4 分钟

Jun Heider 在 O’Reilly 的 InsideRIA 站点上发表了一篇精彩的文章,该文章就如何加快 Flex 应用的启动速度提出了很多建议,以帮助用户减少看见讨厌的“Loading”对话框的出现时间。他深入探讨了问题的不同方面,并对每种技术的优势和劣势进行了评判。

  1. 从外部加载媒体(Media)
    Heider 提到了一个常用的 Flex 最佳实践——限制嵌入到应用 /SWF 文件中的媒体的数量,如图像、影片及 mp3 等资源都可以从外部的 SWF 文件加载。

Flex 框架可以直接将图片、mp3 及字体等资源编译到 SWF 中。当你想让最终用户获得全部资源时,这种方式确实能派上用场,但是这会导致你的应用长时间停留在“Loading”阶段。

  1. 在嵌入式字体中限制字符集
    Heider 建议在嵌入式字体中限制字符集以降低 SWF 文件的总下载时间:

当你在 Flex 中嵌入一种字体时,你就会获得该字体的全部字符的支持。尽管这可能是你想要的,但你确信你需要全部字符么?例如,在一个只面向英文的应用中,你确信你真的想花时间下载中文字符数据么?

  1. 缓存框架
    Heider 回顾了 Flex 3 support for runtime-shared-libraries (RSL)这篇文章:

从 Flex 3 开始,你可以将 Adobe 签名的框架——RSLs 缓存到 Flash Player 的 cache 中。这有两个好处。首先,缓存在 Flash Player cache 中的签名的框架 RSLs 可由所有配置好的 Flex 应用共享。换句话说,如果某人的应用已经下载了 500k 的签名的框架 RSL,并且该 RSL 仍旧 在 Flash Player cache 中,那么你的应用就可以使用缓存下来的 RSL。其次,即使某人清空了其浏览器缓存,对 Flash Player cache 也没有任何影响。

  1. 考虑模块化
    Heider 谈到了将 Flex 应用划分成模块的好处: > 减少字体加载时间的另一种方式就是将你的 Flex 应用划分成模块。使用模块的一个好处在于当加载和卸载模块时你能完全操控它。…

之所以要划分成模块的最后一个原因是他们更快,而且我能即时加载它们。换句话说,在启动时唯一需要加载的模块就是 Step1.swf 模块。因此,在使用模块的情况下,最终用户节省了启动时间,但是当他从一个模块切换到另一个模块时却需要花更多时间,因为每个模块都需 要以 JIT 形式加载。在我的应用中,只有当用户首次在 steps 1-5 之间切换时需要花更多时间。

  1. 推迟实例化
    Heider 围绕着 Flex 组件的“creationPolicy”属性及何时实例化应用的不同部分给出了很多建议。

如果你想减少从数据下载到用户真正可以使用的总时间,当务之急就是推迟实例化。这项技术背后的理念就是直到应用真正使用的时候才在内存中创建对象。尽管推迟实例化技术会在应用的整个使用过程中导致少许——通常不那么明显——的延迟,但与长时间的启动延迟相比,它还是可接受的。推迟实例化的另一个好处在于内存使用的优化。

Heider 还谈到了一个“实验性”的条款——“使用流”,这是他在讨论 Dirk Eismann 的帖子(Building monolithic Flex SWFs that still startup quickly.”)时谈及的。Eismann 提出一项技术以利用 Flash Player 中的多个 frames 以在部分应用中达到流的目的。查看所有的帖子以更多地了解该技术及关于加快Flex 启动速度的建议。

查看英文原文: Top 5 Ways to Reduce Flex Application Startup Time

2008-05-31 21:051267
用户头像

发布了 88 篇内容, 共 258.6 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

跨越前后端排障鸿沟,精准排障,让IT人员不“撕逼”

嘉为蓝鲸

告警 后端技术 IT 运维

如何构建用户体验优化体系?

嘉为蓝鲸

IT运维 用户体验设计 用户体验分析

云服务过载控制的前世今生

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

拒绝“爆雷”!GaussDB(for MySQL)新上线了这个功能

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

Python:直观地查看某个物品使用一段时间之后每天的平摊价格

强劲九

Python 面试 matplotlib 算法题

平台使用体验和大客户推荐指数稳居第一,得帆信息入选《2022中国低代码全景产业研究报告》

得帆信息

低代码平台

喜报|得帆信息成为中国信通院“卓信大数据计划”成员单位

得帆信息

低代码 中国信通院

在 Rainbond 上使用 Curve 云原生存储

北京好雨科技有限公司

云原生 kubernete 分布式存储 rainbond

OceanBase大事记(2023年3月)

OceanBase 数据库

数据库 oceanbase

直播揭秘,人人都在聊的AI技能究竟怎么学?

科技热闻

2步搞定拼版!AD通用拼版技巧分享!

华秋PCB

工具 PCB 原理图 PCB设计 拼版

在Github上标星103K爆火的Spring Security手册及源码笔记,YYDS

程序知音

Java spring security Java进阶 后端技术 java 架构

使用卷积神经网络实现图片去摩尔纹

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

MobTech MobPush|用户行为分析

MobTech袤博科技

强大的PDF文档处理:Acrobat Pro DC 2023 中文版

真大的脸盆

Mac PDF Mac 软件 pdf编辑器 PDF文档处理

玩转 ChatGPT+极狐GitLab|自动化的MR 变更评审来了

极狐GitLab

DevOps Code Review 极狐GitLab 代码合并 ChatGPT

性能测试难做?RunnerGo带你突破!

爱研究代码的极客人

Jmeter 性能测试 压力测试 测试工具 runnergo

通信云服务全球突围,融云助力互联网产业出海「外卷」

融云 RongCloud

互联网 通信 融云

一文带你搞懂如何优化慢SQL

京东科技开发者

数据库 sql 优化 企业号 3 月 PK 榜

一份GitHub star过万的1121页图解算法让“他”成功杀进字节跳动

程序知音

Java 算法 编程语言 后端技术

行业分析| anyRTC智慧视频监控的应用

anyRTC开发者

人工智能 音视频 智慧城市 智慧交通 视频监控

借AI之势,打破创意与想象的边界

阿里云视频云

阿里云 AIGC

提高单元测试质量的低代码思路

赫杰辉

Java 后端 低代码 单元测试

MobTech SMSSDK|短信验证服务

MobTech袤博科技

Nautilus Chain 首个生态基础设施 Poseiswap,公布空投规则

西柚子

多工厂、多基地数字化生产管理有难题?得帆云iPaaS可以帮你

得帆信息

集成

AI系统简介和分类

陈磊@Criss

嘉为蓝鲸研发运营一体化解决方案入选金融信创优秀解决方案

嘉为蓝鲸

金融 解决方案 一体化

编码的未来是根本不需要编码

引迈信息

前端 低代码 JNPF

低代码平台助力AIGC:让人工智能技术更加普及和高效

加入高科技仿生人

人工智能 低代码 AIGC 人工智能技术

MobTech MobPush|厂商通道支持

MobTech袤博科技

加快Flex应用启动速度的5种方式_Java_Jon Rose_InfoQ精选文章