web前端的渐进增强式开发模型
渐进增强是前端开发的根本基础。从根本的层面上讲,它可以将HTML,CSS,JavaScript这三者的功能分离开来,这能让当前的项目开一个好头。我们在创建项目的开始要将这三者分开,它们对应的称呼是结构层、表现层、行为层。这种方式可以原封不动地套用在网页设计之外的其他领域中,无论怎么说,他都是一种自底向上或由内而外的模型,我们应该以此来构建网站。
渐进增强是一种分层设计的网页开发方式,其重点是强调内容,用户和易访问性。模型的目的是让这三层自上而下依赖:javascript依赖CSS,CSS依赖HTML,这样做的好处是自上而下的一除每一层,都不会损失网站中最重要的内容,也就是内容。
只要把这三层隔开,让网站在只有HTML代码的情况下运行,同时在逐层添加CSS美化页面,以javascript程序平滑的控制浏览器的行为,那么你就能确保用户可以访问到网站中的内容。
1 结构层
2 <body>
3 <headerid="header">
4 <h1><ahref="/">这是一个主页</a></h1>
5 </header>
6 <navid="nav">
7 <ul>
8 <li><ahref="/">页面一</a></li>
9 <li><ahref="/">页面二</a></li>
10 <li><ahref="/">页面三</a></li>
11 <li><ahref="/">页面四</a></li>
12 </ul>
13 </nav>
14 <articleid="main">
15 <!--网页主体/-->
16 <buttonid="about"type="submit"></button>
17 </article>
18 <footerid="footer">
19 <p>2006版权所有</p>
20 </footer>
21 </body>
1 表现层
2 #nav{
3 background-color:#201F1F;
4 padding:10px;
5 overflow:hidden;
6 }
7 #navul{
8 list-style:none;
9 margin:0;
10 padding:0;
11 }
12 #navli{
13 float:left;
14 }
15 #navlia{
16 padding:010px;
17 color:#03a9f4;
18 }
1 行为层
2 function doTheThing(){
3 alert("这是一则弹窗消息");
4 }
5
6 Var elem=document.getElementById("about");
7 elem.addEventListener(click,doTheThing,false);
可以发现,当移去(浏览器出错)css或javascript外部文件时,用户仍能访问到网页中的主体内容,只不过不漂亮而已。这种更加符合开发者的思维模式,能精准的找到所需的信息,可以更好的维护团队的项目,间接地改善了开发流程。
另外,在性能方面,如果CSS文件和javascript文件是通过外部文件(务必使用外链)的方式链接进来的,那么每个访问者的浏览器可以单独缓存它们,也就是说,只要用户打开一次过本网站的一个网页,在浏览其他页面的同时就不再下载这些资源了,这样也以减少页面的加载时间,并且将HTTP请求数量降至最低。
这是我认知的一些简显得前端知识,希望对一些朋友能有所帮助!
web前端的渐进增强式开发模型的更多相关文章
- 最受Web前端开发者欢迎的五大开发工具
工其事,必利于器.好的开发工具毋容置疑会帮助Web前端开发者事半功倍,51CTO在上期主办的技术沙龙<大型网站PHP开发之道> 对现场的百余位Web开发者做了问卷调查,后经51CTO调研小 ...
- Web前端框架与移动应用开发第八章
Web前端框架与移动应用开发:制作58招聘专题页 1.html代码: <!DOCTYPE html><html><head> <meta charset=&q ...
- Web设计思想——渐进增强
最近在拜读一本Web体验相关的书<渐进增强--跨平台用户体验设计 >,阅读后做些总结,消化一下书中的精髓. 在阅读本文前,可以先思考下面几个问题. 1. 浏览网页的目的是什么? 2. 浏览 ...
- Web前端工程师需要注意的开发规范有哪些?
从事web前端开发工作我们就需要了解web前端开发的规范,这样才能保证高效快速的完成工作,本篇就和大家分享一下web前端开发工程师需要注意的web前端开发规范有哪些,希望对小伙伴们有所帮助. web前 ...
- 【从0到1学Web前端】CSS定位问题一(盒模型,浮动,BFC) 分类: HTML+CSS 2015-05-27 22:24 813人阅读 评论(1) 收藏
引子: 在谈到css定位问题的时候先来看一个小问题: 已知宽度(假如:100px)div框,水平居中,左右两百年的分别使用div框填充.且左右div自适应. 效果如下图: 这个问题的难点主要是浏览器宽 ...
- Web前端面试指导(九):盒子模型你是怎么理解的?
问题分析 这道题问得比较宽泛,一定要找准切入点,如果切入点找不准,很容易乱答,甚至答偏,所以找准切入点是非常的重要的. 解答思路 1)盒子模型有两种,W3C和IE盒子模型 (1)W3C定义的盒子模型包 ...
- web前端-移动端响应式与自适应
一. 在HTML的头部加入meta标签 在HTML的头部,也就是head标签中增加meta标签,告诉浏览器网页宽度等于设备屏幕宽度,且不进行缩放,代码如下: <meta name="v ...
- Web前端框架与移动应用开发第七章:二
3.练习3:抽奖大转盘 注意事项:需要使用Zepto.js,区别于zepto.min.js 实现效果:转盘转动抽奖 html <!DOCTYPE html><html>< ...
- Web前端框架与移动应用开发第七章
1.练习1:焦点图切换 html: <!doctype html><html><head> <meta charset="utf-8" / ...
随机推荐
- 线段树区间求最大值(点更新)---I Hate It
HDU 1754 Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的 ...
- double 类型转化为Integer类型 ---DecimalFormat
假设x是你要转换的double类型变量: 不进行四舍五入操作: (int)x 进行四舍五入操作: Integer.parseInt(new java.text.DecimalFormat(" ...
- 数据库设计==>>MySchool
1.数据库设计的步骤 第一步:需求分析(收集信息) 第二步:绘制 E-R 图 (标示实体 ,找到实体的属性 第三步:将 E-R 图转换成数据库模型图 第四步:将数据库模型图转换成数据表 2.如何绘制 ...
- MySQL 数据库 InnoDB 和 MyISAM 数据引擎的差别
InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是 ...
- windows临界区
临界区: 临界区是一种轻量级机制,在某一时间内只允许一个线程执行某个给定代码段.通常在多线程修改全局数据时会使用临界区.事件.信号量也用于多线程同步,但临界区与它们不同,并不总是执行向内核模式的切换, ...
- dubbo序列化的一点注意
最近工作中遇见了一个小问题,在此记录一下,大致是这样的,有一父类,有一个属性traceId,主要是记录日志号,这样可以把所有日志串起来,利于排查问题,所有的pojo对象继承于此,但是其中一同事在子类p ...
- [js开源组件开发]js手机联动选择日期 开源git
js手机联动选择日期 这里在前面的<js手机联动选择地区>的基础上,改造数据源之后形成的一个日期的选择器,当然你可以使用之前的PC上模式的<日期控件>,它同时也支持手机端,ht ...
- 移动,企业社交(sharepoint2013)--jindahao(金大昊)
MobileIncreasingly, a major component of sharing and collaborating involves mobile access. SharePoin ...
- 关于停止AsyncTask和Thread的问题
在java的线程中,没有办法停止一个正在运行中的线程.在Android的AsyncTask中也是一样的.如果必须要停止一个线程,可以采用这个线程中设置一个标志位,然后在线程run方法或AsyncTas ...
- [Android]IllegalStateException: Could not find method onBind(View)
FATAL EXCEPTION: main Process: org.diql.aidldemo, PID: 2274 java.lang.IllegalStateException: Could n ...