写点什么

Web 页面性能分析工具 YSlow 开源

  • 2012-02-16
  • 本文字数:761 字

    阅读完需:约 2 分钟

2 月 16 日,Yahoo! 的前端工程师 Marcel Duran 在 Yahoo! 研发团队官方博客发布消息: YSlow 开源

YSlow 是广为人知的 Web 页面性能分析、测试和调试工具,已经成为业界的事实标准之一。它的主要功能包括:

  • 基于三种预定义的规则集,或用户自定义的规则集,为页面打分
  • 为页面性能提升提供建议
  • 总结页面的组件情况
  • 展示页面统计信息
  • 提供性能分析工具,包括 Smush.it JSLint

YSlow 团队提出的“23 条 Web 性能最佳实践和规则”更是被奉为圭璧。

  1. 尽可能减少 HTTP 请求次数
  2. 使用 CDN
  3. 避免空 src 和 href 标签
  4. 加入 Expires 或 Cache-Control Header
  5. 使用 Gzip 压缩
  6. 在 html 文件顶部放置样式表
  7. 在 html 文件底部放置 JavaScript 脚本
  8. 避免使用 CSS 表达式
  9. 使用外部 JavaScript 和 CSS 外部文件
  10. 减少使用 DNS 查找次数
  11. 精简 JavaScript 和 CSS
  12. 避免重定向
  13. 移除重复的脚本
  14. 配置 ETag
  15. 缓存 AJAX
  16. 使用 GET 完成 AJAX 请求
  17. 减少 DOM 元素数量
  18. 避免 404
  19. 减少 Cookie 大小
  20. 使用无 Cookie 的域
  21. 避免使用滤镜
  22. 不要在 HTML 中缩放图片
  23. 使用小 favicon.ico 文件,并让其可缓存

在博客中,Marcel 这样写:

从 2007 年开始,YSlow 对公众免费发布。过去 5 年,Yahoo! 一直在维护其代码,并得到社区的鼓励,一直在改进。现在,我们在 BSD 开源协议下将 YSlow 代码开源。⋯⋯由于 YSlow 完全以 JavaScript、HTML 和 CSS 开发,大家很容易为其做出贡献。

YSlow 在 GitHub 上的最新开发版在 github.com/marcelduran/yslow

性能社区一直在通过 Exceptional Performance Yahoo! 讨论组做出间接贡献,提供有价值的反馈。现在,问题将会通过 GitHub 的公共问题跟踪系统处理,社区能够直接决定项目路线图。现在,你们可以来协助制定优先级、修复bug 并改进YSlow 了!请赶紧 fork 代码,开始贡献吧!

InfoQ 的读者们,你们对 YSlow 的开源怎么看?你们会去为其贡献代码吗?欢迎在评论中留下你们的想法!

2012-02-16 22:394416
用户头像

发布了 479 篇内容, 共 180.6 次阅读, 收获喜欢 53 次。

关注

评论

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

架构实战营模块五作业

zhihai.tu

电商行业:全链路监测广告投放效果,用数据驱动业务增长

HarmonyOS SDK

分析 电商营销

【算法实践】| 一步步手把手带你实现寻找最小公倍数

迷彩

算法 算法实践 8月月更 最小公倍数

[JS真好玩] 我帮掘金找到了一个小Bug,可利用该Bug增加专栏粉丝数

HullQin

CSS JavaScript html 前端 8月月更

Kubernetes MetalLB 作为 Load Balancer下

CTO技术共享

算法之“杨辉三角”题解

掘金安东尼

算法 前端 8月月更

英伟达首席科学家:深度学习硬件的过去、现在和未来

OneFlow

机器学习 深度学习 硬件

Linux常用命令

楠羽

呐,HTTP接口安全的八种对策送给你了

知识浅谈

HTTP API 8月月更

Kubernetes资源编排系列之五: OAM篇

阿里云大数据AI技术

运维 开放应用模型

揭秘百度智能测试在测试分析领域实践

百度Geek说

测试 数据 用例

图灵8月书讯 | 10 本新书上市,本本精选

图灵社区

新书推荐

何去何从的并行计算

博文视点Broadview

租金、物业费的催收困境,如何解决?

IT资讯搬运工

翻译|使用 StatefulSet 运行数据库应用

RadonDB

数据库 Kubernetes RadonDB

开源一夏 | 使用layui框架实战之栅格系统和菜单评分组件运用心得

恒山其若陋兮

开源 8月月更

GaussDB(DWS)如何实现实时,批量和交付式查询一站式开发

乌龟哥哥

8月月更

面试突击77:Spring 依赖注入有几种?各有什么优缺点?

王磊

Java 常见面试题

短视频软件开发:推荐算法没有想象的那么复杂

开源直播系统源码

直播系统 直播系统源码 短视频直播

文本纠错:提升OCR任务准确率的方法

合合技术团队

人工智能 文字识别 OCR 合合信息

详解AUTOSAR:什么是AUTOSAR?(理论篇—1)

不脱发的程序猿

汽车电子 嵌入式开发 AUTOSAR

头脑风暴:回文子串

HelloWorld杰少

算法 LeetCode 数据结构, 8月月更

Go-Excelize API源码阅读(十九)——SetHeaderFooter

Regan Yue

Go 开源 源码解析 8月日更 8月月更

技术分享| anyRTC 8月更新迭代

anyRTC开发者

音视频 WebRTC 视频通话 实时消息 抓拍图片

DDD实战(12-终篇):DDD下微服务的“分分合合”及一个倡议

深清秋

DDD 软件架构 8月月更

Kubernetes MetalLB 作为 Load Balancer上

CTO技术共享

云原生(二十四) | Kubernetes篇之Kubernetes 配置

Lansonli

云原生 k8s 8月月更

公众版与政企版,这两款云电脑我都要!

天翼云开发者社区

云原生 SIG:关于 Koordinator 混部原理及最佳实践 | 第 43 期

OpenAnolis小助手

开源 云原生 混部 sig 龙蜥大讲堂

Docker与虚拟化技术浅析第一弹之docker与Kubernetes

京东科技开发者

Docker Kubernetes k8s 虚拟机

MobTech ShareSDK 高级接口及配置

MobTech袤博科技

android MobTech袤博科技 sharesdk

Web页面性能分析工具YSlow开源_语言 & 开发_郑柯_InfoQ精选文章