‘壹’ 响应式web导航添加CSS3过渡动画为何不起作用
你只是设置了transition的参数,没有设置怎么响应这个过度,以及过度的值!
‘贰’ web3.0是什么意思
web3.0是在web2.0的基础上发展起来的能够更好地体现网民的劳动价值,并且能够实现价值均衡分配的一种互联网方式。
web3.0更多的不是仅仅一种技术上的革新。而是以统一的通讯协议,通过更加简洁的方式为用户提供更为个性化的互联网信息资讯定制的一种技术整合。将会是互联网发展中由技术创新走向用户理念创新的关键一步。
web3.0产生背景
web2.0虽然只是互联网发展阶段的过渡产物,但正是由于2.0的产生,让人们可以更多地参与到互联网的创造劳动中,特别是在内容上的创造,在这一点上,web2.0是具有革命性意义的。人们在这个创造劳动中将获得更多的荣誉、认同,包括财富和地位。
正是因为更多的人参与到了有价值的创造劳动,那么“要求互联网价值的的重新分配”将是一种必然趋势,因而必然催成新一代互联网的产生,这就是web3.0。
‘叁’ Web前端工程师要知道的Web技术之间的关系
今天小编要跟大家分享的文章是关于Web前端工程师要知道的Web技术之间的关系。如果你是一个Web开发初学者,那么你难免会在网上搜索HTML,
CSS,XML,_S(Javascript),DOM,XSL等等这些词的意思,然而,随着学习的深入。
当你把他们搅在一起,你又糊涂了,你会不停的问:
§_TML是什么?
§_SS是什么?
§_ML是什么?
§_S是什么?
§_堑降子惺裁从?
在这里,我争取用最根本的语言向大家分别说明HTML,CSS,XML,JS到底是什么,有什么用。然后我们再来看把他们组合起来是什么,有什么用。当然如果你对HTML,CSS,XML,JS有足够了解,可以直接跳过,看文章的后半部分,那里才是本文核心所在。下面来和小编一起看一看吧!第一部分1.HTML超文本标记语言(HyperTextMarkup
Language),是用来描述网页的一种标记语言。
_
__
_
_
__id="num1">HelloWorld!I'mHTML
_
网页文件本身是一种文本文件,通过在文本文件中添加标记,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。
HTML之所以称为超文本标记语言,是因为文本中包含了所谓“超链接”点。超文本(Hypertext)是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。
概括,HTML就是整合网页结构和内容显示的一种语言。
HelloWorld!I'mHTML
浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容。
这段内容在浏览器上显示的结果是:HelloWorld!I’m
HTML
我们看标签上有一个id,这是这个标签的唯一标识,方便别人找到它,对它进行操作。
2.CSS层叠样式表单(CascadingStyleSheet)。是将样式信息与网页内容分离的一种标记性语言
。作为网站开发者,你能够为每个HTML元素定义样式,并将之应用于你希望的任意多的页面中。如需进行全局的更新,只需简单地改变样式,然后网站中的所有元素均会自动地更新。这样,即设计人员能够将更多的时间用在设计方面,而不是费力克服HTML的限制。说白了,CSS就是设置网页上HTML元素属性的语言。
CSS代码:
#hello{_olor:blue;_
当把这段CSS代码应用于HTML中,它会找到id为“hello”的HTML标签,将其中的内容以蓝色显示出来;具体的插入HTML的方法这里不再赘述(说一句,只说明是什么,有什么用的问题,不关注技术细节,技术细节网上很好找)。
3.Javascript,首先说明JavaScript和Java无关,JavaScript是属于网络的脚本语言!那么为什么名字如此相似?这是典型的市场营销方面的成功,它的推广成功,也是借了Java的东风。当微软开始意识到Javascript在Web开发人员中流行起来时,微软还是一贯风格,建立了自己的脚本语言,JScript。
Javascript是一种基于对象(Object)和事件驱动(Event
Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。例如可以设置鼠标悬停效果,在客户端验证表单,创建定制的HTML页面,显示警告框,设置cookie等等。
网页中所有的对数据进行判断、操作以及向浏览者反馈信息的本地代码实现部分均是Javascript(当然也有其他的),这样既可以使网页更具交互性,给用户提供更令人兴奋的体验,同时减轻了服务器负担。
JS的代码如下:
functionjsHello(){
__alert('HelloWorld!');_
}
当把以上代码应用于HTML代码,它会在你的HTML载入时,弹出一个内容为“HelloWorld!”的对话框。同样,它是通过嵌入或调入在标准的HTML语言中实现的,至于如何嵌入或调入不再赘述,理由上面提到了。
4.Xml可扩展标记语言(ExtensibleMarkupLanguage),是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。你可以把XML理解为一种数据库,例如rss就是xml的一种变体。
XML代码如下:
XML的起因是,用户受到SGML(后面再说)复杂性的挫伤和HTML的不充分。相对HTML来说,XML更追求严谨性,如果说你在HTML代码中标签比较混乱,如未关闭等,或许浏览器会忽略这些错误;但同样的事情发生在XML中会给你带来大麻烦。
铺垫终于完了,在进入正题之前,建议大家对比着图来理解后边的内容,废话不多说,开始进入正题。第二部分
这里的DOM指的是HTMLDOM。HTMLDOM是W3C的标准,同时它也是HTML的文档对象模型的缩写(theDocumentObjectModelfor
HTML)。HTMLDOM定义了用于HTML的一系列标准的对象,以及访问和处理HTML文档的标准方法。
通过DOM,可以访问所有的HTML元素,连同它们所包含的文本和属性。其中的内容可以修改和删除,同时也可以创建新的元素。HTMLDOM独立于平台和编程语言。它可被任何编程语言诸如Java、Javascript和VBScript所使用。HTMLDOM就是HTML语言对外界开通的接口,以便其他语言能够访问或修改HTML内部的元素。
当js需要对html元素进行操作时,DOM是一个很必要的对象。
你便可以通过利用DOM对象构造如下代码并插入到HTML代码中的任何位置来实现。
当用CSS去修饰HTML中的元素,这一过程可以称为声明HTML元素样式的过程。
SGML标准通用标记语言()。由于SGML的复杂,导致难以普及。SGML有非常强大的适应性,也正是因为同样的原因,导致在小型的应用中难以普及。HTML和XML同样衍生于SGML:XML可以被认为是SGML的一个子集,而HTML是SGML的一个应用。XML的产生就是为了简化SGML,以便用于更加通用的目的。比如语义Web,它已经应用于大量的场合,比较着名的有XHTML、RSS、XML-RPC和SOAP。
XHTML是可扩展超文本标识语言(TheExtensibleHyperText
MarkupLanguage)。HTML是一种基本的Web网页设计语言,XHTML是一个基于XML的置标语言,看起来与HTML有些相象,只有一些小的但重要的区别,XHTML就是一个扮演着类似HTML的角色的XML,所以,本质上说,XHTML是一个过渡技术,结合了部分XML的强大功能及大多数HTML的简单特性。
简单的说,XHTML比HTML要严谨些,但又没像XML那么严重——譬如所有的XHTML标签以及属性必须要小写,属性性必须要加双引号(当然如今的浏览器不管是IE还是FF,对HTML和XHTML采取兼容措施,这也是XSS产生的根本原因),而且也可以像XML一样自定义部分标签,因此有了极大的灵活性。
而且进入了XHTML时代,大家倡导的是CSS+DIV,这也是web2.0的基础。
DHTML只是一种制作网页的概念,实际上没有一个组织或机构推出过所谓的DHTML标准或技术规范之类的。DHTML不是一种技术、标准或规范,DHTML只是一种将目前已有的网页技术、语言标准整和运用,制作出能在下载后仍然能实时变换页面元素效果的网页的设计概念。DHTML就是动态的html,Dynamic
HTML。传统的html页面是静态的,Dhtml就是在html页面上加入了javascript脚本,使其能根据用户的动作作出一定的响应,如鼠标移动到图片上,图片改变颜色,移动到导航栏,弹出一个动态菜单等等。
一般如:![](pic)
Expression是微软为了使样式表能够在修饰HTML样式的同时执行javascript脚本而在IE浏览器中增加的一个功能,这样你可以做譬如:图片的自适应宽度,表格的隔行换色等等。
如:img{max-width:500px;width:expression(document.body.clientWidth>
200?“200px”:“auto”);}
XMLHTTP最通用的定义为:XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。
来自MSDN的解释:XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象向http服务器发送请求并使用微软XML文档对象模型Microsoft_XMLDocumentObject
Model(DOM)处理回应。
现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用ActiveXObject方式创建XmlHttp对象,其他浏览器如:Firefox、Opera等通过window.XMLHttpRequest来创建XmlHttp对象。
一个简单的定义IE的XmlHttp的对象及应用的实例如下:
varXmlHttp=newActiveXObject("Microsoft.XMLhttp");
XmlHttp.Open("get","url",true);
XmlHttp.send(null);
XmlHttp.onreadystatechange=functionServerProcess(){
__f(XmlHttp.readystate==4||
XmlHttp.readystate=='complete')
__
___
alert(XmlHttp.responseText);
__
}
XSLT()最早设计XSLT的用意是帮助XML文档(document)转换为其它文档。但是随着发展,XSLT已不仅仅用于将XML转换为HTML或其它文本格式,更全面的定义应该是:XSLT是一种用来转换XML文档结构的语言。
XSL-FO:XSL在转换XML文档时分为明显的两个过程,第一转换文档结构;其次将文档格式化输出。这两步可以分离开来并单独处理,因此XSL在发展过程中逐渐分裂为XSLT(结构转换)和XSL-FO(formattingobjects)(格式化输出)两种分支语言,其中XSL-FO的作用就类似CSS在HTML中的作用。
AJAX:异步JavaScript和XML(AsynchronousJavaScript
andXML)。
最后一个东东,它算得上是web2.0思想的心。
AJAX=CSS+HTML+JS+XML+DOM+XSLT+XMLHTTP。是指一种创建交互式网页应用的网页开发技术。AJAX不是一种单一的新技术,而是有机地利用了一系列相关的技术。
在2005年,Google通过其GoogleSuggest使AJAX变得流行起来。
GoogleSuggest使用AJAX创造出动态性极强的web界面:当您在谷歌的搜索框输入关键字时,Javascript会把这些字符发送到服务器,然后服务器会返回一个搜索建议的列表。
在AJAX中,XmlHttp用来在不改变页面的情况下传输数据,其中传输的数据即是XML,然后通过XSLT将其格式化,利用js通过dom对象将其显示到HTML中,同时利用CSS确定数据的显示及位置。
这项技术在网络上的应用无处不在,如你的微博,你的邮箱,你的QQ空间,再如搜索引擎,电子商务平台,网络地图等等。
以上就是小编今天为大家分享的关于Web前端工程师要知道的Web技术之间的关系的文章,本文主要探讨了Web开发技术之间的关系,以及他们组合起来到底有什么用的问题。希望对挣扎在Web开发学习前线的朋友有所帮助。想要了解更多web前端相关知识记得关注北大青鸟web培训官网,最后祝愿小伙伴们工程顺利,成为一名优秀的web前端工程师。
‘肆’ web要展示的数据过多如何优雅的显示
web要展示的数据过多优雅地显示如下方法:
1、从数据上处理:分页分表,比如前端可以把数据分页展示,后端也分段吐数据
2、从渲染上解决:
(1)、异步渲染,比如进入页面先不渲染,然后加载好页面再渲染。
(2)、局部渲染:只渲染目前可见区域的数据,再渲染次屏数据。
(3)、还有性能瓶颈,可以考虑web worker 做压缩和解码,也可以考虑离屏canvas做预渲染。
3、减少数组操作,避免多次循环及处理数据。
4、控制可视数量,如按需加载,可分为接口按需和展示按需。回收远离可视区域数据。
5、减少过渡效果和过度dom操作。
‘伍’ html5怎么设置网页过渡效果
步骤1 创建空白的HTML 5模版
首先,我们创建一个空白的模版,代码很简单,如下所示:
复制代码
步骤2 增加HTML 5新标签 HTML 5中新增加了不少标签,如:
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section
在页面模版中,我们需要确保每个区域都能正确地对齐,因此需要使用HEADER、 NAVIGATION、 CONTENT、 SIDEBAR和Footer这些标签。代码如下所示:
复制代码
读者可能留意到这里使用的div id=”wrapper”,这个是稍候用来做meida query的时候调整全局CSS样式调整用的 步骤3 往HTML 5标签中增加代码
1)首先往标题中增加如下代码:
Simple HTML5 Template
复制代码
2)往导航标签中添加如下代码,这样很方便地构件了一个简单的页面分类导航:
Home About Parent Page Child
One Child Two with child Child One Child
Two Child Three Child Three
Contact
复制代码
3)使用标签来描述每一个要展示的内容实体,比如要展示的是多篇文章列表,其中的每一篇文章的具体内容就可以使用标签了。如下代码所示:
This is a title for post
Richard KS 20th March 2013 Tutorials HTML5, CSS3
and Responsive 10 Comments Lorem
Ipsum is simply mmy text of the printing and typesetting instry.
Lorem Ipsum has been the instry's standard mmy text ever since the
1500s
复制代码
4)添加标签 HTML5提供的元素标签用来表示当前页面或文章的附属信息部分,可以包含与当前页面或主要内容相关的引用、侧边栏、广告、nav元素组,以及其他类似的有别与主要内容的部分。
根据目前的规范,元素有两种使用方法:
被包含在中作为主要内容的附属信息部分,其中的内容可以是与当前文章有关的引用、词汇列表等。
在之外使用,作为页面或站点全局的附属信息部分;最典型的形式是侧边栏(sidebar),其中的内容可以是友情链接、附属导航或广告单元等。
代码如下:
Categories Category 1 Category 2
Parent Category Child One Child Two
Grandchild One Grandchild Two Grandchild Three
Child Three Category 3
Text Lorem Ipsum is simply mmy
text of the printing and typesetting instry.
复制代码
5)加上最后的标签,代码为:
Copyright@ 2013 HTML5.com Privacy Policy - About Us
复制代码
步骤4 增加CSS样式
首先创建一个空白的样式,如下:
[/code] 然后在http://necolas.github.com/normalize.css/中下载这个css,然后将其内容复制到该空白的文件中代码如下: [code]body {
font-family: arial, sans-serif;
font-size: 100%; /* best for all browser using em */
padding:0;
margin:0;
}
*, html { line-height: 1.6em; }
article img { width:auto; max-width:100%; height:auto; }
.sidebar a, article a, header a, footer a { color: #C30; }
header a { text-decoration: none; }
#wrapper {
font-size: 0.8em; /* 13px from 100% global font-size */
max-width: 960px; /* standard 1024px wide */
margin: 0 auto;
}
/* css for */
header { padding: 1em 0; margin: 0px; float: left; width: 100%;
}
header hgroup { width: 100%; font-weight:normal; }
/* css for */
nav
{ display: block; margin: 0 0 2em; padding: 0px;
float: left; width: 100%; background-color: #181919;
}
nav ul ul {display: none;}
nav ul li:hover > ul {display: block;}
nav
ul { padding: 0; list-style: none; position:
relative; display: inline-table; z-index: 9999;
margin: 0px; float: left; width: 100%;
}
nav ul:after {content: ""; clear: both; display: block;}
nav ul li {float: left;}
nav ul li:hover a {color: #fff;}
nav
ul li a { display: block; padding: 1em; font-size:
1.125em; color: #ccc; text-decoration: none;
margin: 0px; background-color: #000; border-right: 1px
solid #333;
}
nav ul li:last-of-type a {border-right: 1px solid transparent !important;}
nav
ul ul { background: #5f6975; border-radius: 0px;
padding: 0; position: absolute; top: 100%; width:
auto; float: none;
}
nav ul li:hover { background: #5f6975; color: #FFF;
}
nav ul ul li a:hover { background-color: #4b545f;
}
nav ul ul li {
float: none;
border-bottom: 1px solid #444240;
position: relative;
}
nav ul ul li a {
padding: 0.5em 1em;
font-size: 1em;
width:10em;
color: #fff;
}
nav ul ul ul {
position: absolute; left: 100%; top:0;
}
/* css for */
section.content { width: 70%; float:left; }
.content article { width:100%; float:left; padding: 0 0 1em; margin: 0 0 1em; border-bottom: 1px solid #ddd; }
article .entry { clear:both; padding: 0 0 1em; }
h1.post-title { font-size: 1.8em; margin:0; padding:0;}
.entry.post-meta { color: #888; }
.entry.post-meta span { padding: 0 1em 0 0; }
.entry.post-content { font-size: 1.125em; margin:0; padding:0;}
/* css for */
aside.sidebar { width: 25%; float:right; }
aside.sidebar ul { width:100%; margin: 0px; padding: 0px; float: left; list-style: none;
}
aside.sidebar
ul li { width:100%; margin: 0px 0px 2em; padding:
0px; float: left; list-style: none;
}
aside.sidebar ul li ul li { margin: 0px 0px 0.2em; padding: 0px;
}
aside.sidebar
ul li ul li ul li { margin: 0px; padding: 0px 0px 0px
1em; width: 90%; font-size: 0.9em;
}
aside.sidebar
ul li h3.widget-title { width:100%; margin: 0px;
padding: 0px; float: left; font-size: 1.45em;
}
/* css for */
footer { width: 98%; float:left; padding: 1%; background-color: white; margin-top: 2em;
}
footer .footer-left { width: 45%; float:left; text-align:left; }
footer .footer-right { width: 45%; float:right; text-align:right; }
复制代码
步骤5 为移动应用使用@media query查询 为了进行响应式设计,最佳的方案是使用@media query去进行查询,在上面的CSS代码中添加如下代码:
/* ipad 768px */
@media only screen and (min-width:470px) and (max-width:770px){
body { background-color: red; } #wrapper { width:96%; font-size: 0.6875em; }
section.content, aside.sidebar { width:100%; }
}
/* iphone 468px */
@media only screen and (min-width:270px) and (max-width:470px){
body { background-color: yellow; } #wrapper { width:96%; font-size: 0.6875em; }
section.content, aside.sidebar { width:100%; }
}
复制代码
步骤6 增加jquery,modernizer和html5shiv到标签中 这里推荐使用Modernizr 和html5shiv,它们都是一个能在多种浏览器中通过运行各种脚本兼容运行支持大部分HTML 5标签的插件。我们将它们和jQuery库放在标签前
‘陆’ 如何在Python基础知识和Flask web开发之间平滑过渡
写web应用一定要对一个请求的生命周期有所了解,以及它在你的应用里是怎么走的,先执行哪个部分,再执行哪个部分,各个部分都是干什么的。
所有web框架,只要是mvc架构,都大同小异,你可以照着这个表的知识点梳理:
‘柒’ web1.0到web2.0花了多久
web1.0到web2.0花了多久:
web3.0”一词受追捧的程度高涨,获得广大网友关注。3.0是web的第三个发展阶段,是“家族”的第三代继承人,web的“祖辈”1.0负责“打江山”;“父辈”2.0为“江山”稳固夯实基础;“孙辈”3.0为虚拟世界拉近现实贡献力量。目前,我们处于Web2.0向web3.0的过渡阶段,而web3.0是前端工程师对下一互联网发展阶段的伟大构想和的愿景。计算机科学家称,Web3.0将把人们带入人工智能和信息共享的时代,构建一个全球互联、互通、互享的语义性互联网。为了深入了解web3.0将来的翻天覆地的变化,从web的第一阶段1.0开始探索。
打开网易新闻 查看精彩图片
Web1.0——只读web
Web1.0是什么呢?即依托个人电脑和web浏览器浏览内容、获取信息的单向传递互联网。换而言之,门户网站向用户灌输信息的“洗脑”模式。然而,Web1.0的诞生、发展离不开盈利的底层逻辑,很多处在知识、科技、资源前沿的创造者的敏锐低嗅到web1.0的发展前景。譬如:Netspace研发大型商用浏览器、yahoo创办黄页、google推出搜索服务……为虚拟世界的生成做出革命性贡献。面对web1.0这块新蛋糕,各大资本虎视眈眈,可谓司马昭之心。据资料显示,自1991年Tim Berners-Lee创建web浏览器后,雅虎、亚马逊、Echo Buy、网易、搜狐、腾讯、新网网(新浪前身)、阿里巴巴、网络相继成立互联网公司。可谓是群雄争霸的逐鹿时代
‘捌’ 为什么要从Web form过渡到MVC中
1.View State
相信大家对于这个视图状态都很熟悉,它是用来保存我们在页面中输入的数据状态,以便我们可以在刷新页面或者回发时使页面回到我们原来的输入数据时的状态,这个效果很好的实现了我们的需求。但是同时,我们要问自己一下,是否我们就真的需要这些,需要页面刷新时显示原来的数据,这是否是有意义的?
还有就是View State在web form时代大行其道,在每个页面都会存在,甚至在复杂的页面中他的大小甚至很大,在每次 页面回发时都会传递View State状态,我们不说服务器解析这些View State需要时间,就是每次页面传输都要传递这些View State就会使带宽增加,显示网页的时间变长。这在2.0时代,最起码是我所不允许的。
2.Page Life Cycle 页面生命周期
在Web form中存在着复杂的生命周期,我甚至清楚的记得在我学习Web form的时候,都是拿着笔在纸上画着这些周期图,在每个周期页面会执行什么动作。这就像我在学习c#连接数据库的时候写sql helper,让我很头疼。例如在Page_render()中不应该访问具体的控件,因为这时控件还没有生成(有园友提出错误,我查阅了资料也认为这是错误的,因为这时已经把控件渲染要输出,特此声明。感谢园友提出错误,我会积极改正),如果要访问请在Page_load()中,我们每天都要和Page_Load()事件打交道,至少我很经常。IsPostBack是经常可以见到的方法。
如果你觉得你可以完全掌握这些生命周期,那么至少你是一名大牛。如果你可以很随意的就控制页面的生命周期,并且控制控件的生成,那么我会很敬仰你。
3.False sense of concerns 失败的关注点分离
现在我们做软件,讲究的都是可维护性、可重用性以及关注点分离。何为关注点分离,我的理解就是每层结构只负责他自己的事情,不属于他的不能控制,也不要试图控制。例如,我们在code behind中写了访问数据库的代码,调用了sql helper中的类,但是现在是数据库服务器的服务没有开启,那么这次调用肯定会抛出异常。难道让我们在code behind中处理这些异常,那么我们程序员会累死的,异常应该是sql helper中处理,而不是code behind。这应该就是所谓的关注点分离。还有就是关注点分离应该是每个类只负责他自己的工作,而不要在一个类Sql Helper中有着返回html的语句出现。
4.Limited control over HTML 对于html的控制极差
我在页面生命周期中说了,如果你可以随意的更改生成的控件,那么我会崇拜你。如果说对于一个服务器端控件可以控制生成html的样式,或者生成html的ID、name,以便可以让js使用,这是很困难的。当然在.net 4.0中添加了一个属性,那就是ClientIDMode,如果把这个属性值设置为static,就可以生成和定义的ID一样的html的ID值。默认情况下这是不被启用的,会生成复杂的、嵌套的ID值。这对于我们在客户端操作html标签是很困难的。
当然了,这不是你可以转向MVC的原因,但是是原因之一,虽然这个原因可能会有点牵强。
5.Leaky abstraction 脆弱的抽象
Web form试图隐藏所有的http状态(http的无记忆性或者是无状态性)。我们在拖入一个服务器控件的时候从来需要考虑他会在什么时候显示?因为服务器控件已经实现了这些,例如,IsPostBack 方法为什么可以用来判断页面是否回发,它的实现原理是什么?我们不会关心,我们只关心这个方法能够完成什么,这就够了?真的够了吗?
我认为没有,只是会使用,我想任何一个只要认识英文的人都可以完成,但是会使用就够了吗?性能问题达到了吗?会出现哪些问题?我们都不知道,我们只是用了一个黑盒子,但是里面是什么东西我们不知道?如果是陷阱我们也会毫不犹豫的跳进去?对吗?
偶尔的熟悉一下源码,对于提升我们自己的开发水平有帮助之外,我们也可以发现很多我们可以控制的问题,避免他们发生?所以,亲爱的朋友们,不要仅仅限于使用,有时候大牛和小牛的根本区别就是小牛不知道为什么要这样?而大牛指导如何更好的这样。
6.Low testability 极差的可测试性
我在以前开发web form的时候,采用服务器控件可以大大的提高开发速度。但是,我从来不知道如何去测试我开发的代码是否运行正常。唯一的方式就是自己一个人没事的时候点击、点击、再点击。还有就是设置断点,按住F11,不断的点击键盘,直到看到这些代码都想吐的地步?
但是在MVC中,这些问题都不再存在,因为我们可以使用Nunit等可以进行单元测试的工具,我们可以把测试精确到每一行代码,我们可以实现测试的自动化,避免了手动点击浪费的大量时间。这是一件好事,不是吗?
还有我个人认为最重要的一个原因就是,你如果有web form的开发基础,那么学习MVC可以说就是很简单的事情,因为MVC中没有了服务器控件,有的只是html标签以及一些可以生成html标签的helper类。我个人感觉做美工的如果想转开发,这倒是不错的时机,因为html对于美工来说笔程序员更熟悉。
在MVC中没有View State,可以对html进行完全的控制,可以不再使用原来的Url rewriter,而是采用MVC中自带的Route(Url路由系统),良好的关注点分离框架(Model、View、Controller),每一层都是负责自己的任务。
在MVC中不是每一个地址都会对一个一个具体的页面,你可以定义多个Action,返回同一个页面。在MVC中因为有了强大的路由系统,所以我们不会再见到www.cnblogs.com/default.aspx,这样的地址了,而是取而代之的www.cnblogs.com/home/index ,这是一个巨大的突破。可以让特定的页面具有具体的含义。这是URl友好,你认为呢?
我并不是说MVC会取代Web form,而是他们之间的对比性,当然如果可以避免一些问题的存在,那么让MVC和Web from共存在同一个项目中,或许是不一个不错的选择。但是前提还是需要你学习MVC,我个人认为在未来几年中,Web form和MVC会共存。
好了,说了这么多,我只是有一句话,就是如果你想在未来的Web开发中不落后,那么就在业余时间学习一下MVC吧。
‘玖’ html5怎么设置网页过渡效果
在web设计中使用js可以实现很多的页面特效,然而很多人却忽视了HTML标签中META标签的强大功效,其实meta标签也可以实现很多漂亮的页面过渡效果。
META标签是HTML语言HEAD区的一个辅助性标签,Meta 标签放在每个网页的<head>...</head>
中间,我们大家比较熟悉的如:
<meta name="GENERATOR" content="Microsoft FrontPage
3.0">//说明编辑工具;
<meta name="KEYWORDS" content="...">//说明关键词;
<meta name="DESCRIPTION" content="...">//说明主页描述;
它提供用户不可见的信息。meta标签通常用来为搜索引擎robots定义页面主题,或者是定义用户浏览器上的cookie;它可以用于鉴别作者,设定页面格式,标注内容提要和关键字;还可以设置页面使其可以
根据你定义的时间间隔刷新自己,以及设置RASC内容等级,等等
用法:
<Meta http-equiv="Page-Enter" Content="blendTrans(Duration=0.5)">
<Meta http-equiv="Page-Exit" Content="blendTrans(Duration=0.5)">
blendTrans是css动态滤镜的一种,产生渐隐效果。另一种动态滤镜RevealTrans也可以用于页面进入与退出效果:
动态滤镜可以为页面添加动人的淡入淡出、图象转化效果,它可以分为两种blend(混合)和reveal(显示),
前者可以使对象渐渐消失或出现,后者提供了24种图象转化的效果......
<Meta http-equiv="Page-Enter"
Content="revealTrans(ration=x, transition=y)">
<Meta
http-equiv="Page-Exit" Content="revealTrans(ration=x, transition=y)">
Duration:表示滤镜特效的持续时间(单位:秒)
Transition:滤镜类型。表示使用哪种特效,取值为0-23。