狠狠撸

狠狠撸Share a Scribd company logo
上海盛付通电子商务有限公司 [email_address] 前端架构方向漫谈 –  Shengpay.com
前端发展历史 1.  使用整张图片 + 热点( MAP )  2.  将图片切割成块,使用 TABLE 布局  3.  使用元素 inline style 呈现页面  4.  使用外部 CSS 以达到复用的目的  5.  使用 MVC 的理念达到结构和样式分离  6.  页面语义化 /SEO/ 移动设备 HTML5
前端遇到的问题 1. 团队间及团队内部协作问题 2. 多系统复用问题 3. 新老系统互相影响问题 4. 前端性能问题 5. 样式优先级混乱问题 6.SEO 搜索引擎优化问题(应该 IMG 出现的地方出现的却是背景图片) 7. 多人协作时操作多份 CSS 冲突问题 8. 使用,选择符导致强耦合问题 9.CSS 重名冲突检测的问题 10. 样式移植问题 11.Z-index 混乱问题 12.background/font 缩写易覆盖问题
前端遇到的问题 13. 背景图片无法显示问题 [ 某些情况 background 缩写导致 ] 14.CSS 在开发流程中流转一致性问题 15.CSS 名称 HTML 结构之间的对应问题(即如何能只看 CSS 名称就能知道 HTML 结构)、 16.ID 冲突问题 17.position:relative 导致页面元素层级混乱问题 18.position:absolute 使用 left/top 需依赖外层定位问题 19. 图片和页面分离问题 20.UL/TABLE 无法在后期特殊化处理问题 21.CSSSprite 累加易出错问题如 position:1361px1471px; 22. png24 透明浏览器不兼容问题 23.Iframe 导致的问题 24. 为什么是 DIV+CSS 而不是 P+CSS
前端架构目的 建立一个提高用户体验的基础技术平台,提高公司利润 解决前端开发中潜在的问题,规避项目风险 快速实现设计到产物转化,降低产物开发成本
前端架构方向 横向架构 前端小组 A 前端小组 B 前端小组…
前端架构方向 纵向架构 UED 设计 前端开发 后端开发
前端横向架构 如何让多个团队更快、更好、更有效地 协作 ?
前端横向架构 1. 良好的基础架构 2. 良好的规范性
良好的基础架构 硬件条件 1. 拥有静态资源服务器及 CDN 2. 使用 JS/CSS 在线压缩 3. 采用 Shell 脚本或 ANT 自动发布 4. 使用了缓存技术
良好的基础架构 使用稳定,兼容性强的页面结构及实现方式,如 1. 弹出遮罩层的实现 2. 校验提示信息如何显示 3. 圆角 panel 的实现 4. 使用额外标签清除浮动 5. 空 DIV 或 TD 中加   6. 在 UL 标签加一层 DIV , class 加在 DIV 上 7. 使用透明 png 解决鼠标事件穿透问题 8. 使用兼容性高的方法如 removeChild
良好的基础架构 User infomation  Base info Name:  Gender:  Set Password Password:  Confirm:  Submit Cancel
良好的基础架构 <form action=&quot;&quot; method=&quot;post&quot;> <fieldset> <legend>User infomation</legend> <dl class=&quot;section&quot;> <dt class=&quot;section_title&quot;>Base info</dt> <dd class=&quot;section_content&quot;> <div class=&quot;field_item&quot;> <label class=&quot;field_item_title&quot; for=&quot;name&quot;>Name: </label>  <input type=&quot;text&quot; id=&quot;name&quot; /> </div> <div class=&quot;field_item&quot;> <label class=&quot;field_item_title&quot; for=&quot;gender&quot;>Gender: </label>  <input type=&quot;text&quot; id=&quot;gender&quot; /> </div> </dd> </dl> </fieldset> </form>
良好的规范性 1.  尽量在前期解决 IE6 潜在的 bug ,如背景图片不缓存, expression 闪动问题 2. 不推荐多重继承  [ 解耦 ] 3. 使用分隔符下划线表示父子级关系  [ 高聚 ] 4. 模块化设计  [ 结构化 ] 5. 前期使用一个 CSS 文件 [ 及早发现命名冲突 ] 6. 前期 CSS 中不使用 #ID[ 预留给后期 JS 及避免 ID 冲突 ] 7. font/background 尽量不使用缩写的方式  [ 便于后期合并样式 ] 8. 非 .net 项目尽量不使用 iframe[ 破坏页面整体性 ]
两种 CSS 流派 .page {} .page .head {} .page .body {} page .foot {} .page {} .page_head {} .page_body {} page_foot {} VS
CSS 组织结构化 // 公共样式 html{} body{} form{} img{} // 布局样式 .page {} .page_head{} .page_body{} .page_foot{} // 特殊页面样式  .product_item_hover{}
JS 规范 1.  变量是用之前必须使用 var 声明 2. 使用命名空间及 use strict.[ 上线之前需注释掉 ] (function(){ &quot;use strict&quot;; // your code here  }()); 3. 函数返回自身对象时注意不要形成意外的闭包
JS 小测试 <script type=&quot;text/javascript&quot;> function foo(){ foo.abc = function(){alert('def')}; this.abc = function(){alert('xyz')}; abc = function(){alert('@@@@@')}; var abc = function(){alert('$$$$$$')}; } foo.prototype.abc = function(){alert('456');}; foo.abc = function(){alert('123');}; var f = new foo(); f.abc(); foo.abc(); abc(); </script>
JS 工具库 jMin 轻量级 JS 工具库 jMin 主要功能 :  封装了前端常用功能 , 如 trim, 日期格式化 ,cookie 操作 , 事件绑定 , 动态加载 , 异步请求等 面向对象 :  有一定经验的前端开发人员 https://my-javascript-library-jmin.googlecode.com/svn/trunk/
感谢您的关注  www.Shengpay.com

More Related Content

Viewers also liked (6)

飞别产标准化交流会产辞产产测分享
飞别产标准化交流会产辞产产测分享飞别产标准化交流会产辞产产测分享
飞别产标准化交流会产辞产产测分享
裕波 周
?
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
裕波 周
?
飞别产标准化交流会上海站产辞产产测分享
飞别产标准化交流会上海站产辞产产测分享飞别产标准化交流会上海站产辞产产测分享
飞别产标准化交流会上海站产辞产产测分享
裕波 周
?
白玉磊 Webrebuild
白玉磊 Webrebuild白玉磊 Webrebuild
白玉磊 Webrebuild
裕波 周
?
分布式系统浅谈
分布式系统浅谈分布式系统浅谈
分布式系统浅谈
song_son
?
腾讯技术讲座:1.4亿在线背后的故事
腾讯技术讲座:1.4亿在线背后的故事腾讯技术讲座:1.4亿在线背后的故事
腾讯技术讲座:1.4亿在线背后的故事
Tian Wang
?
飞别产标准化交流会产辞产产测分享
飞别产标准化交流会产辞产产测分享飞别产标准化交流会产辞产产测分享
飞别产标准化交流会产辞产产测分享
裕波 周
?
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
裕波 周
?
飞别产标准化交流会上海站产辞产产测分享
飞别产标准化交流会上海站产辞产产测分享飞别产标准化交流会上海站产辞产产测分享
飞别产标准化交流会上海站产辞产产测分享
裕波 周
?
白玉磊 Webrebuild
白玉磊 Webrebuild白玉磊 Webrebuild
白玉磊 Webrebuild
裕波 周
?
分布式系统浅谈
分布式系统浅谈分布式系统浅谈
分布式系统浅谈
song_son
?
腾讯技术讲座:1.4亿在线背后的故事
腾讯技术讲座:1.4亿在线背后的故事腾讯技术讲座:1.4亿在线背后的故事
腾讯技术讲座:1.4亿在线背后的故事
Tian Wang
?

Similar to 前端架构漫谈 (20)

揭秘贬迟尘濒5和颁蝉蝉3
揭秘贬迟尘濒5和颁蝉蝉3揭秘贬迟尘濒5和颁蝉蝉3
揭秘贬迟尘濒5和颁蝉蝉3
Adam Lu
?
揭秘贬迟尘濒5和颁蝉蝉3 ---- 鲁超伍
揭秘贬迟尘濒5和颁蝉蝉3 ---- 鲁超伍揭秘贬迟尘濒5和颁蝉蝉3 ---- 鲁超伍
揭秘贬迟尘濒5和颁蝉蝉3 ---- 鲁超伍
裕波 周
?
Html5css3 go.yeefe.com
Html5css3 go.yeefe.comHtml5css3 go.yeefe.com
Html5css3 go.yeefe.com
tellyeefe
?
Struts1+ hibernate3
Struts1+ hibernate3Struts1+ hibernate3
Struts1+ hibernate3
edanwade
?
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
compassdesign
?
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快
li qiang
?
十步学会用颁蝉蝉+顿颈惫建站
十步学会用颁蝉蝉+顿颈惫建站十步学会用颁蝉蝉+顿颈惫建站
十步学会用颁蝉蝉+顿颈惫建站
yiditushe
?
厂辫谤测框架的简单使用小结
厂辫谤测框架的简单使用小结厂辫谤测框架的简单使用小结
厂辫谤测框架的简单使用小结
sunnylqm
?
贬迟尘濒5智能手机耻颈布局浅谈
贬迟尘濒5智能手机耻颈布局浅谈贬迟尘濒5智能手机耻颈布局浅谈
贬迟尘濒5智能手机耻颈布局浅谈
sankyu Tang
?
Big pipe backend2
Big pipe backend2Big pipe backend2
Big pipe backend2
锐 张
?
给聚划算后端开发的前端培训
给聚划算后端开发的前端培训给聚划算后端开发的前端培训
给聚划算后端开发的前端培训
j5726
?
Denver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS templateDenver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS template
compassdesign
?
Creating CSS Template with Barrie North
Creating CSS Template with Barrie NorthCreating CSS Template with Barrie North
Creating CSS Template with Barrie North
John Coonen
?
口碑导航更换项目总结
口碑导航更换项目总结口碑导航更换项目总结
口碑导航更换项目总结
liuzhitao2000
?
网页制作基础
网页制作基础网页制作基础
网页制作基础
loo2k
?
Cms and Html
Cms and HtmlCms and Html
Cms and Html
zaiyou
?
新浪微博的叠颈驳笔颈辫别后端实现技术分享——11月26日淘宝补顿别惫技术沙龙
新浪微博的叠颈驳笔颈辫别后端实现技术分享——11月26日淘宝补顿别惫技术沙龙新浪微博的叠颈驳笔颈辫别后端实现技术分享——11月26日淘宝补顿别惫技术沙龙
新浪微博的叠颈驳笔颈辫别后端实现技术分享——11月26日淘宝补顿别惫技术沙龙
slawdan
?
淘宝网前端开发面试题
淘宝网前端开发面试题 淘宝网前端开发面试题
淘宝网前端开发面试题
Lumend
?
揭秘贬迟尘濒5和颁蝉蝉3
揭秘贬迟尘濒5和颁蝉蝉3揭秘贬迟尘濒5和颁蝉蝉3
揭秘贬迟尘濒5和颁蝉蝉3
Adam Lu
?
揭秘贬迟尘濒5和颁蝉蝉3 ---- 鲁超伍
揭秘贬迟尘濒5和颁蝉蝉3 ---- 鲁超伍揭秘贬迟尘濒5和颁蝉蝉3 ---- 鲁超伍
揭秘贬迟尘濒5和颁蝉蝉3 ---- 鲁超伍
裕波 周
?
Html5css3 go.yeefe.com
Html5css3 go.yeefe.comHtml5css3 go.yeefe.com
Html5css3 go.yeefe.com
tellyeefe
?
Struts1+ hibernate3
Struts1+ hibernate3Struts1+ hibernate3
Struts1+ hibernate3
edanwade
?
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
compassdesign
?
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快
li qiang
?
十步学会用颁蝉蝉+顿颈惫建站
十步学会用颁蝉蝉+顿颈惫建站十步学会用颁蝉蝉+顿颈惫建站
十步学会用颁蝉蝉+顿颈惫建站
yiditushe
?
厂辫谤测框架的简单使用小结
厂辫谤测框架的简单使用小结厂辫谤测框架的简单使用小结
厂辫谤测框架的简单使用小结
sunnylqm
?
贬迟尘濒5智能手机耻颈布局浅谈
贬迟尘濒5智能手机耻颈布局浅谈贬迟尘濒5智能手机耻颈布局浅谈
贬迟尘濒5智能手机耻颈布局浅谈
sankyu Tang
?
Big pipe backend2
Big pipe backend2Big pipe backend2
Big pipe backend2
锐 张
?
给聚划算后端开发的前端培训
给聚划算后端开发的前端培训给聚划算后端开发的前端培训
给聚划算后端开发的前端培训
j5726
?
Denver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS templateDenver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS template
compassdesign
?
Creating CSS Template with Barrie North
Creating CSS Template with Barrie NorthCreating CSS Template with Barrie North
Creating CSS Template with Barrie North
John Coonen
?
口碑导航更换项目总结
口碑导航更换项目总结口碑导航更换项目总结
口碑导航更换项目总结
liuzhitao2000
?
网页制作基础
网页制作基础网页制作基础
网页制作基础
loo2k
?
Cms and Html
Cms and HtmlCms and Html
Cms and Html
zaiyou
?
新浪微博的叠颈驳笔颈辫别后端实现技术分享——11月26日淘宝补顿别惫技术沙龙
新浪微博的叠颈驳笔颈辫别后端实现技术分享——11月26日淘宝补顿别惫技术沙龙新浪微博的叠颈驳笔颈辫别后端实现技术分享——11月26日淘宝补顿别惫技术沙龙
新浪微博的叠颈驳笔颈辫别后端实现技术分享——11月26日淘宝补顿别惫技术沙龙
slawdan
?
淘宝网前端开发面试题
淘宝网前端开发面试题 淘宝网前端开发面试题
淘宝网前端开发面试题
Lumend
?

More from 裕波 周 (11)

厂肠谤耻尘敏捷项目管理
厂肠谤耻尘敏捷项目管理厂肠谤耻尘敏捷项目管理
厂肠谤耻尘敏捷项目管理
裕波 周
?
移动设备飞别产重构
移动设备飞别产重构移动设备飞别产重构
移动设备飞别产重构
裕波 周
?
重温网站重构
重温网站重构重温网站重构
重温网站重构
裕波 周
?
从问题开始,前端,架构、框架与库的实战
从问题开始,前端,架构、框架与库的实战从问题开始,前端,架构、框架与库的实战
从问题开始,前端,架构、框架与库的实战
裕波 周
?
从问题开始,谈前端架构
从问题开始,谈前端架构从问题开始,谈前端架构
从问题开始,谈前端架构
裕波 周
?
Ie9 overview
Ie9 overviewIe9 overview
Ie9 overview
裕波 周
?
《一专多长》——罢飞颈苍蝉别苍摆梁璟彪闭
《一专多长》——罢飞颈苍蝉别苍摆梁璟彪闭《一专多长》——罢飞颈苍蝉别苍摆梁璟彪闭
《一专多长》——罢飞颈苍蝉别苍摆梁璟彪闭
裕波 周
?
浏览器兼容性问题介绍 --- 黄昊
浏览器兼容性问题介绍 --- 黄昊浏览器兼容性问题介绍 --- 黄昊
浏览器兼容性问题介绍 --- 黄昊
裕波 周
?
网站重构Whoami ---- 偷米饭
网站重构Whoami ---- 偷米饭网站重构Whoami ---- 偷米饭
网站重构Whoami ---- 偷米饭
裕波 周
?
分层语义化模板实践 ---- 张克军
分层语义化模板实践 ---- 张克军分层语义化模板实践 ---- 张克军
分层语义化模板实践 ---- 张克军
裕波 周
?
javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当
裕波 周
?
厂肠谤耻尘敏捷项目管理
厂肠谤耻尘敏捷项目管理厂肠谤耻尘敏捷项目管理
厂肠谤耻尘敏捷项目管理
裕波 周
?
移动设备飞别产重构
移动设备飞别产重构移动设备飞别产重构
移动设备飞别产重构
裕波 周
?
重温网站重构
重温网站重构重温网站重构
重温网站重构
裕波 周
?
从问题开始,前端,架构、框架与库的实战
从问题开始,前端,架构、框架与库的实战从问题开始,前端,架构、框架与库的实战
从问题开始,前端,架构、框架与库的实战
裕波 周
?
从问题开始,谈前端架构
从问题开始,谈前端架构从问题开始,谈前端架构
从问题开始,谈前端架构
裕波 周
?
《一专多长》——罢飞颈苍蝉别苍摆梁璟彪闭
《一专多长》——罢飞颈苍蝉别苍摆梁璟彪闭《一专多长》——罢飞颈苍蝉别苍摆梁璟彪闭
《一专多长》——罢飞颈苍蝉别苍摆梁璟彪闭
裕波 周
?
浏览器兼容性问题介绍 --- 黄昊
浏览器兼容性问题介绍 --- 黄昊浏览器兼容性问题介绍 --- 黄昊
浏览器兼容性问题介绍 --- 黄昊
裕波 周
?
网站重构Whoami ---- 偷米饭
网站重构Whoami ---- 偷米饭网站重构Whoami ---- 偷米饭
网站重构Whoami ---- 偷米饭
裕波 周
?
分层语义化模板实践 ---- 张克军
分层语义化模板实践 ---- 张克军分层语义化模板实践 ---- 张克军
分层语义化模板实践 ---- 张克军
裕波 周
?
javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当
裕波 周
?

前端架构漫谈

  • 2. 前端发展历史 1. 使用整张图片 + 热点( MAP ) 2. 将图片切割成块,使用 TABLE 布局 3. 使用元素 inline style 呈现页面 4. 使用外部 CSS 以达到复用的目的 5. 使用 MVC 的理念达到结构和样式分离 6. 页面语义化 /SEO/ 移动设备 HTML5
  • 3. 前端遇到的问题 1. 团队间及团队内部协作问题 2. 多系统复用问题 3. 新老系统互相影响问题 4. 前端性能问题 5. 样式优先级混乱问题 6.SEO 搜索引擎优化问题(应该 IMG 出现的地方出现的却是背景图片) 7. 多人协作时操作多份 CSS 冲突问题 8. 使用,选择符导致强耦合问题 9.CSS 重名冲突检测的问题 10. 样式移植问题 11.Z-index 混乱问题 12.background/font 缩写易覆盖问题
  • 4. 前端遇到的问题 13. 背景图片无法显示问题 [ 某些情况 background 缩写导致 ] 14.CSS 在开发流程中流转一致性问题 15.CSS 名称 HTML 结构之间的对应问题(即如何能只看 CSS 名称就能知道 HTML 结构)、 16.ID 冲突问题 17.position:relative 导致页面元素层级混乱问题 18.position:absolute 使用 left/top 需依赖外层定位问题 19. 图片和页面分离问题 20.UL/TABLE 无法在后期特殊化处理问题 21.CSSSprite 累加易出错问题如 position:1361px1471px; 22. png24 透明浏览器不兼容问题 23.Iframe 导致的问题 24. 为什么是 DIV+CSS 而不是 P+CSS
  • 6. 前端架构方向 横向架构 前端小组 A 前端小组 B 前端小组…
  • 7. 前端架构方向 纵向架构 UED 设计 前端开发 后端开发
  • 10. 良好的基础架构 硬件条件 1. 拥有静态资源服务器及 CDN 2. 使用 JS/CSS 在线压缩 3. 采用 Shell 脚本或 ANT 自动发布 4. 使用了缓存技术
  • 11. 良好的基础架构 使用稳定,兼容性强的页面结构及实现方式,如 1. 弹出遮罩层的实现 2. 校验提示信息如何显示 3. 圆角 panel 的实现 4. 使用额外标签清除浮动 5. 空 DIV 或 TD 中加 &nbsp; 6. 在 UL 标签加一层 DIV , class 加在 DIV 上 7. 使用透明 png 解决鼠标事件穿透问题 8. 使用兼容性高的方法如 removeChild
  • 12. 良好的基础架构 User infomation Base info Name: Gender: Set Password Password: Confirm: Submit Cancel
  • 13. 良好的基础架构 <form action=&quot;&quot; method=&quot;post&quot;> <fieldset> <legend>User infomation</legend> <dl class=&quot;section&quot;> <dt class=&quot;section_title&quot;>Base info</dt> <dd class=&quot;section_content&quot;> <div class=&quot;field_item&quot;> <label class=&quot;field_item_title&quot; for=&quot;name&quot;>Name: </label> <input type=&quot;text&quot; id=&quot;name&quot; /> </div> <div class=&quot;field_item&quot;> <label class=&quot;field_item_title&quot; for=&quot;gender&quot;>Gender: </label> <input type=&quot;text&quot; id=&quot;gender&quot; /> </div> </dd> </dl> </fieldset> </form>
  • 14. 良好的规范性 1. 尽量在前期解决 IE6 潜在的 bug ,如背景图片不缓存, expression 闪动问题 2. 不推荐多重继承 [ 解耦 ] 3. 使用分隔符下划线表示父子级关系 [ 高聚 ] 4. 模块化设计 [ 结构化 ] 5. 前期使用一个 CSS 文件 [ 及早发现命名冲突 ] 6. 前期 CSS 中不使用 #ID[ 预留给后期 JS 及避免 ID 冲突 ] 7. font/background 尽量不使用缩写的方式 [ 便于后期合并样式 ] 8. 非 .net 项目尽量不使用 iframe[ 破坏页面整体性 ]
  • 15. 两种 CSS 流派 .page {} .page .head {} .page .body {} page .foot {} .page {} .page_head {} .page_body {} page_foot {} VS
  • 16. CSS 组织结构化 // 公共样式 html{} body{} form{} img{} // 布局样式 .page {} .page_head{} .page_body{} .page_foot{} // 特殊页面样式 .product_item_hover{}
  • 17. JS 规范 1. 变量是用之前必须使用 var 声明 2. 使用命名空间及 use strict.[ 上线之前需注释掉 ] (function(){ &quot;use strict&quot;; // your code here }()); 3. 函数返回自身对象时注意不要形成意外的闭包
  • 18. JS 小测试 <script type=&quot;text/javascript&quot;> function foo(){ foo.abc = function(){alert('def')}; this.abc = function(){alert('xyz')}; abc = function(){alert('@@@@@')}; var abc = function(){alert('$$$$$$')}; } foo.prototype.abc = function(){alert('456');}; foo.abc = function(){alert('123');}; var f = new foo(); f.abc(); foo.abc(); abc(); </script>
  • 19. JS 工具库 jMin 轻量级 JS 工具库 jMin 主要功能 : 封装了前端常用功能 , 如 trim, 日期格式化 ,cookie 操作 , 事件绑定 , 动态加载 , 异步请求等 面向对象 : 有一定经验的前端开发人员 https://my-javascript-library-jmin.googlecode.com/svn/trunk/