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
Atom
Search
Alibaba.com
May 31, 2013
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Atom
Atom is growing up
Alibaba.com
May 31, 2013
More Decks by Alibaba.com
See All by Alibaba.com
jQuery Selector 源码剖析
alibaba
0
170
Backbone.js 初探
alibaba
2
260
Other Decks in Technology
See All in Technology
世界、断片、モデル。そして理解
ardbeg1958
1
110
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
1.1k
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
120
CIで使うClaude
iwatatomoya
0
230
環境凍結という Toil を倒す -セルフサービス型 Ephemeral テスト環境の 設計と実践
shirouz
1
2.3k
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
2.3k
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
13
6k
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
140
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
1
110
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
2
710
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
220
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Docker and Python
trallard
47
3.9k
The Pragmatic Product Professional
lauravandoore
37
7.4k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Product Roadmaps are Hard
iamctodd
55
12k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
AI: The stuff that nobody shows you
jnunemaker
PRO
8
820
Test your architecture with Archunit
thirion
1
2.3k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
330
Mind Mapping
helmedeiros
PRO
1
280
RailsConf 2023
tenderlove
30
1.5k
Transcript
Atom is Growing Up!
Atom 阶段回顾 连沁 2013-05-31
强调下模块编写/引用的规范
• 模块编写 使用 CMD 模块规范,每个js文件就是一个模块 模块使用 匿名方式 编写 • 模块之间引用
引用 自身的私有模块 ,使用 相对路径 引用 其他的公用模块 ,使用 以htdocs为根目录的绝对路径 禁止引用其他模块的私有模块!!! • html/vm 引用模块 禁止在非js文件中定义模块!!! 引用模块只能使用 seajs.use 接口, 禁止使用script标签同步引入!! 引用模块使用 全路径 ,推荐使用 #stamp 宏包裹,保证时间戳准确
开发中一些常见问题
为什么js里不能使用seajs.use? • 首先,规范 • 在seajs的模式里面,所有的js文件都是 CMD 模块。 • 而在 CMD
模块中,对模块的引用只能通过 require() 及 require.async() 的方式, seajs.use的用法是 不符合规范 的
为什么js里不能使用seajs.use? • 其次,性能 • 正常的使用 `seajs.use` 去加载文件,流程如 下 • ...
| | - 在 html/vm 里写 seajs.use 去请求模 块(js文件) ====异步===> 模块 ====> 运 行 callback | | - 其他html渲染,script运行等 | ... 除了 atom.js 以外所有的js文件都是 异 步加载 的
看看demo与结果
i18n相关 • 设置页面i18n • <script type='text/javascript'> // 页面中越早 调用越好 //
建议在引入 atom.js 之后马上设 置 seajs.setLocale(locale); </script>
i18n相关 • 模块里使用i18n • 使用 {locale} 来代替 i18n 中标识语言的部分 •
使用变量代替在 require 中的位置 (该用法是 为了解决独角兽时间戳失效的问题,独角兽端 的修复在7月份解决) • // 时间戳问题修复前,要这么使用 // #require "i18n/en-us.js" // #require "i18n/zh-cn.js" // #require "i18n/zh-tw.js" var i18nStr = './i18n/{locale}.js'; var i18n = require(i18nStr) || {}; // 时间戳问题解决后(2013-07完成),这 么使用 var i18n = require('./i18n/{locale}.js') || {};
Combo相关 • 页面上可以在任何地方使用seajs.use,最终 请求会在domReady的时候统一 Combo后 发 出 • 可以使用 seajs.flush()
提前发出请求(一般 用于首屏优化) • url过长的时候会自动拆分成多个 • 做完combo后的页面至少有2个串行的js请 求
Q & A