- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
新浪博客前端架构分析报告
新浪博客前端架构
2010年10月30日
代码框架
代码的加载与执行
开发流程
架构实例
代码框架
sina包
lib包
product
Javascript框架概览
基础库
通用组件
产品需求
sina包结构
是基础库,最底层的代码
为上层提供服务
不涉及产品需求
sina包
功能颗粒度小
隔离了细节,提供抽象的接口
lib包结构
lib包
提供通用的可复用功能
组件
交互效果
各产品之间的公共功能
托盘
登录
suggest
一般的配置信息
product
博客
相册
个人中心
活动站
product
各产品代码独立
方便管理、维护、扩展
通过打包发布
调用lib和sina包的模块
针对产品需求编码
以Job的形式注册代码
通过不同的页面id加载代码
代码的加载与执行
Job1
Pageid
页面1
页面2
页面3
Job2
Job3
Job4
Job5
Job6
Pageid
Pageid
代码按Job加载
Job
Job通过pageid组织
一个大的功能可拆分成多个Job
可把复杂的问题相对简单化
一个Job可以被多个页面使用
相同的功能可复用
Job代码
$registJob(“jobTest, function () {
alert(“I am a job test,ha~ha~ha~”);
}
$registJob(“jobTestToo, function () {
alert(“I am 还是 a job test,la~la~la~”);
}
pageid引导页代码
function main () {
var job = new Jobs();
job.add(jobTest);
job.add(jobTestToo);
job.start();
}
Boot.js
script
type=text/javascript”
src=http://host/boot.js
/script
页面节点装载完成后执行入口function
__addDOMLoadEvent(main);
开发流程
调试模式
上线模式
开发模式
未压缩合并的代码
支持调试工具
合并压缩的代码
线上文件名为页面id.js
开发顺序
1.从SVN中取出代码
不同的产品在不同的svn目录(博客、相册、个人中心、活动站)
2.开始本地开发和调试
1) XAMPP搭建本地开发环境
2) ftp到专门的开发机
3.提交到SVN
合并代码
解决因多人开发造成的代码冲突
4.打包测试
5.上线
专门的打包工具(合并、压缩、生成页面id.js)
打包的shell命令:sh –p 产品名 –t svnTag地址 –o
在svn中生成一个新的上线tag
专门的上线系统上线
开发顺序
开发流程图
架构实例
SinaDialog UML
Q A
文档评论(0)