- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、JS架构设计的背景 淘宝前端工程师的增长 前端架构的重要性 成立之初,10个人团队,1名UED工程师 现在,支付宝就有100多名前端工程师团队 阿里巴巴页面性能优化 前端架构的重要性 页面性能优化: 20秒 12秒 8.5秒 ? 脚本数量的庞大 前端架构的重要性 脚本homeConsole.js达到了13389行(未包含注释与空行),压缩后达到527kb! 不同浏览器支持的需要 为什么要架构设计 用户观念改变的需要 为什么要架构设计 构建庞大项目的需要 为什么要架构设计 项目的需要 为什么要架构设计 没有架构设计的弊端 二、JS架构设计 1、JavaScript架构演变历程 2、JS前端架构的步骤 2.1 松散型的模块化设计 没有使用具体的模块化设计的框架,根据业务模块需求进行脚本的设计,不同页面对自身调用的模块进行按需引用、加载。 基于页面的模块代码加载方式 松散型的模块化设计 模块1代码 页面 1 页面 2 页面 3 框架 基础库 模块公共代码 模块2代码 模块3代码 2.1.1 需求确认 在JavaScript前端架构之前首先要进行需求的分析、确认。需求确认的内容包括: 1、用户对象 2、用户计算机水平 3、使用的浏览器 4、使用的计算机设备 5、主要的操作 优克普云PaaS建模平台需求确认 通过分析PaaS建模的用户群体,可以得出初步的结论:PaaS建模前端主要关注功能的实现,对浏览器并没有太多的限制要求,浏览器支持IE8以上的版本即可(浏览器支持的减少可以降低前端很多工作量)。 2.1.2 当前流行的框架 框架的选择 jQuery DOJO EXT Prototype YUI JavaScriptMVC MooTools easyUI miniUI 框架与应用的关系 框架的选择 框架 通用lib包 product 基础库 通用组件 产品需求 框架选择的考虑因素 框架的选择 2.1.3 目录结构 定义规则 优克普云平台PaaS前端脚本目录结构 目录结构 业务无关的公共库 第三方框架 业务模块的脚本 2.1.4 应用编码 可扩展性 可维护性 灵活性 采用闭包的模块设计 应用编码 没有采用闭包的开发方法 闭包设计 没有采用闭包的设计,所有的属性与方法的定义全部对外开放,其他模块调用API很混乱,并容易引起全局冲突。 采用闭包的模块开发方法 闭包设计 采用闭包后,私有的方法与公有的方法进行了区分,外部模块访问不到datalistSelector的私有对象与方法。 通用控件的设计 为了提高可复用性、可扩展性,在项目中经常要设计能够符合不同需求的通用控件,通用控件的设计也能够为今后发展自己的框架打下基础。 通用选择框控件的需求 嵌入页面 弹出窗口 通用选择框最终展示结果 通用选择框的目录结构 通用选择框设计 展示模板的配置只要更改模板的.html,css样式 通用选择框提供简单的接口 通用选择框设计 定义通用选择框的模块及对外开放的接口,options参数为外部扩展开发传入的参数。 通用选择框options扩展开发接口 通用选择框设计 是否多选 是否弹出窗口 通用选择框options参数数据源接口 通用选择框设计 最终的调用方式 通用选择框设计 定义以树形方式展示的字典选择框 数据来源格式 通用选择框设计 JS前端缓存的设计 空间换取时间,缓存永远计算机设计的重中之重,从cpu到io,到处都可以看到缓存的身影,JS前端架构设计重,缓存设计必不可少。 JS数据及对象的缓存 浏览页面的缓存 模拟k/v形式的简单前端缓存设计 前端缓存的设计 调用形式 Object缓存对象 基于jQuery缓存设计 前端缓存的设计 2.3 基于CMD规范的模块化设计 遵循CMD规范的前端设计具备可维护性、可测试性。在运行启动加载时,每个模块能够按需进行加载。 基于CMD规范的SeaJS CMD(Common Module Definition),是SeaJS 在推广过程中对模块定义的规范化产出,该规范明确了模块的基本书写格式和基本交互规则。在 CMD 规范中,一个模块就是一个文件。 开发规范定义 SeaJS框架的目录结构定义 以上为基于CMD规范设计的一个系统,在模块化设计中。采用CMD规范可以规范模块的书写格式、能自动处理模块的依赖,还非常有助于代码组织、开发调试和性能优化。(注:支付宝是采用基于CMD规范的SeaJS进行前端架构的) SeaJS模块的编写 SeaJS模块标识的定义与目录结构相同,其他关联模块的引入采用require。 SeaJS模块的引用 采用require引入关联模块,实现了其他关联模块的动态异步加载。 Se
您可能关注的文档
最近下载
- 《中国天然气发展报告(2016)》.docx VIP
- (高清版)B-T 24353-2022 风险管理 指南.pdf VIP
- GB∕T 24353-2022 《风险管理 指南》解读和应用指导材料(雷泽佳编写2024B0).pdf VIP
- 2025年版检验检测机构资质认定评审准则考试试题及答案.pdf VIP
- 前交通动脉瘤破裂伴蛛网膜下腔出血个案护理.pptx VIP
- 临床颅内动脉瘤破裂伴蛛网膜下腔出血的个案护理.pptx VIP
- 检验检测机构资质认定评审准则试题及答案.pdf VIP
- 语文教学中的心理健康教育心得体会.docx VIP
- 《检验检测机构资质认定评审准则》试题及答案.pdf VIP
- 蛛网膜下腔出血的个案护理.pptx VIP
文档评论(0)