Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NextWind前端体系介绍
Search
Chris
August 03, 2012
Programming
4
270
NextWind前端体系介绍
PHPWind9前端体系介绍
Chris
August 03, 2012
Tweet
Share
Other Decks in Programming
See All in Programming
パフォーマンスチューニングで Web 技術を深掘り直す
progfay
18
4.8k
気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマンス健康診断〜
waka12
0
250
SpecKitでどこまでできる? コストはどれくらい?
leveragestech
0
380
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
120
階層構造を表現するデータ構造とリファクタリング 〜1年で10倍成長したプロダクトの変化と課題〜
yuhisatoxxx
3
820
あなたの知らない「動画広告」の世界 - iOSDC Japan 2025
ukitaka
0
310
Local Peer-to-Peer APIはどのように使われていくのか?
hal_spidernight
2
410
CSC305 Lecture 04
javiergs
PRO
0
230
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
2.6k
いま中途半端なSwift 6対応をするより、Default ActorやApproachable Concurrencyを有効にしてからでいいんじゃない?
yimajo
2
210
2分台で1500examples完走!爆速CIを支える環境構築術 - Kaigi on Rails 2025
falcon8823
3
2.5k
ててべんす独演会〜Flowの全てを語ります〜
tbsten
1
220
Featured
See All Featured
Producing Creativity
orderedlist
PRO
347
40k
Thoughts on Productivity
jonyablonski
70
4.8k
How GitHub (no longer) Works
holman
315
140k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
We Have a Design System, Now What?
morganepeng
53
7.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.2k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Raft: Consensus for Rubyists
vanstee
139
7.1k
Building Adaptive Systems
keathley
43
2.8k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Transcript
NextWind 前端体系介绍 2012-8-2 陈超群
思考:到底什么是前端开发 •HTML •CSS •JavaScript 这只是前端开发最重要的技能
前端仔的工作内容 • 视觉还原( HTML 、 CSS ) • 交互实现( JavaScript
) • 浏览器兼容性( HTML 、 CSS 、 JavaScript ) • 页面可访问性( SEO 、浏览器、读屏软件)
前端开发要考虑的群体 • 正常人 • 非正常人 • 浏览器 • 搜索引擎 •
读屏软件
NextWind 前端的重点 • 需要开发规范 • 需要核心类库 / 框架 • 需要开发文档
• 代码的可维护性 • 页面的可访问性 • 功能的可扩展性 • 高性能的前端体验
http://www.windframework.com/index.php/ 前端开发规范
Breeze • 需要专人来开发维护 • 质量比不过知名开源框架 • 开源框架在国内的推进与发展不容易 • 第三方开发、项目新进成员的学习成本 Breeze是2年前PHPWind中筹备开发的⼀一个JS框架,但
是经过了⼏几个月的开发,毅然决定放弃之,主要的原因:
JavaScript 框架、类库的选择
46% 12% 9% 9% 8% 7% 5% 5% javaScript 库使用概况统计
jQuery Facebook for Websites jQuery UI SWFObject Facebook SDK jQuery Cycle Twitter Platform MooTools http://trends.builtwith.com/javascript
拥抱 jQuery • 世界上最流行的 js 类库 • 有着最多的使用人群 • 庞大的技术社区支持
• 丰富的开源插件 • 开源、免费,使用 MIT & GPL 双协议 http://jquery.org/license/ 放弃 Breeze 后,首先想到的就是在 jQuery 与 YUI 之间选择一 个,经过几番思考,选择了 jQuery 。 http://docs.phpwind-inc.com/read.php?tid-858.html
最近发现大客户们都拥抱 jQuery • 化龙苍 • 新昌信息港 • 威锋网 • 厦门小鱼
JavaScript Loader 为解决浏览器加载 JS 的阻塞浏览器渲染的问题,我们需 要一个脚本加载器。
传统的脚本加载方式 Apple.com 首页
视频: phpwind.net 首页的加载过 http://httparchive.org/viewsite.php?pageid=2235188 ( PW 首页) http://httparchive.org/viewsite.php?pageid=2234050 ( DZ
首页)
JavaScript Loader 的选择 •LabJS •ControlJS •HeadJS •RequireJS (标准化 JS 模块加载器)
•SeaJS (标准化 JS 模块加载器) •...... •N 多 JS
WindJS 诞生 • 建立在 HeadJS 之上 • 做了部分精简与修改 • 含注释的开发版
16K •Gzip 压缩后 2.6K
WindJS 核心 API •Wind.js—— 异步、并行加载脚本资源 •Wind.ready——DomReady 方法 •Wind.css—— 加载 css
资源 •Wind.tmpl 方法 —— 微型 javascript 模板引擎 •Wind.use—— 使用别名的方式加载常用 JS
别名加载机制 常用脚本组件,我们不想去根据 URL 加载。一个 web 产 品,它的 URL 是多资多样的,如果 URL
变掉了,那么所 有引用的地方全部得改,所以我们对常用的 JS 组件,并 不直接加载其地址,而是使用一个别名来实现模块化管 理。
简单代码示例
在 wind.js 里定义别名
问题来了 • 高性能的前端部署,怎么能不压缩前端代码,怎么能不合并请 求? • 压缩后怎么做二次开发?
前端性能优化的制约 • 无法把握、控制站长的服务器 • 熟知的雅虎 34 条性能优化军规,好多无法实现 http://developer.yahoo.com/performance/rules.html http://www.ha97.com/2710.html (中文版)
HTTP 头 Expires 不能做 CDN 不能做 GZip 不能做 HTTP 头
Cache-control 不能做 代码压缩不能做 怎么办?
选择适合我们自己的方案
前端资源目录 // 压缩后的 // 开发目录(源代码) // 与业务相关的 js 代码文件 //ui
组件库 // 非 ui 组件库 // 富文本编辑器 // 国际化配置文件
开发模式 / 线上模式 通过后端输出开关配置,来确定是使用 build 目录还是 dev 目录,在上线之前通过 build 工具把代码
copy 到 build 目录。
自动版本参数
前后端开发约定 • 前端只负责展现数据和提交数据,不做任何业务逻辑的判断 • 后端不输出任何带有脚本的代码 •AJAX+JSON , 并不是 8.x 中的伪
AJAX+XML http://www.windframework.com/index.php/ 前后端开发配合约定
前端工具 http://ued.phpwind-inc.com/index.php/ 前端工具集合
示例演示
NextWind 富文本编辑器介绍
JS 框架和编辑器哪个难?
NextWind 编辑器需求 • 有插件扩展机制 • 建立在 jQuery 基础之上 • 需要实现
UBB 代码编辑 • 一系列 NextWind 特有的功能:出售、隐藏、表情等等 • 可作为通用的富文本编辑器
思考如何开发编辑器 考查了一圈 ckeditor 、 tinymce 、 ueditor 、 kissyeditor 、
kindeditor 、 xheditor ,发现都不合 适。
编辑器结构 与 NextWind 业务相关的功能,全部作为插件调用,可灵活定制。 可自主开发并替换默认皮肤。
基本的调用方式
可访问性 • 应付极端环境下的正常浏览需求 • 结构、表现、行为跨终端跨平台兼容支撑 • 保障残障人士无障碍信息获取 • 强化搜索引擎友好 http://rexsong.com/webdesign/accessibility/
听听特殊用户的声音 • 盲人用户体验谈 -- 写在 phpwind8.7 正式发布前 • 请官方注意:默认模板中的很多 img
元素没有 alt 属性
NextWind 页面可用性 & 无障碍规范指南
无障碍开发示例 http://www.zhangxinxu.com/wordpress/ 2012/03/wai-aria- 无障碍阅读 /
前端开发中遇到的问题 • 前端资源仅缺,作为公共资源经常被拉去支援别的项目 • 时间不够,需求都做不完, BUG 也改不完,很多亮点功 能没时间做。
尚未完成 • 图片懒加载 •Flash 头像上传 • 前端开发文档
HTML5 的展望 •HTML5 新标签 •HTML5 新的表单 • 语音输入 • 文件拖拽上传
• 编辑器内图片直接粘贴上传 • 桌面通知 •Page Visibility • 地理定位
CSS3 的展望 •CSS3 Selectors • 动画、圆角、阴影、渐变、 web 字体,等等等等 •Responsive Web
Design
关注浏览器市场 http://tongji.baidu.com/data/browser/
在摸索中前进
Thanks!