本文将带您了解关于EverythingareHTMLcomponents–小谈HTML组件化与可视化的编程_html/css_WEB-ITnose的新内容,另外,我们还将为您提供关于html的meta
本文将带您了解关于Everything are HTML components – 小谈 HTML 组件化与可视化的编程_html/css_WEB-ITnose的新内容,另外,我们还将为您提供关于 html 的 meta 总结,html 标签中 meta 属性使用介绍_html/css_WEB-ITnose、ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction、asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处的实用信息。
本文目录一览:- Everything are HTML components – 小谈 HTML 组件化与可视化的编程_html/css_WEB-ITnose
- html 的 meta 总结,html 标签中 meta 属性使用介绍_html/css_WEB-ITnose
- ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
- asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处
Everything are HTML components – 小谈 HTML 组件化与可视化的编程_html/css_WEB-ITnose
从 angularjs 1.0.7 开始,我们就拿它做项目。刚开始使用了 angular-seed 创建页面,结合 ng-controller 做了好多事。同时我们也用了 directive 做了些公用组件。
我们组在 retrospection 时,慢慢地有了对比。 ng-controller 做出来的东西都是大块大块的,彼此连动,组织很不清晰。而 directive 却是自成体系,透过组件嵌套和通信控制,我们可以做出任意的页面——而且还保证各个组件自己是独立、可测试和不受其他 Scope / EventListener 影响的。甚至,我们还总结出了一个原则:
Everything should be directives.
具体呢,举个栗子。
JavaScript
这个简单的 html 结构,是我们吃了很多亏之后总结出来了 (高仿样本)
立即学习“前端免费学习笔记(深入)”;
你能看出什么门道?1. 组件化 2. 可视化 HTML 3. 可测试单元
1. 组件化
无需多言, bw-appnode 是一个组件,bw-table 与 bw-search 也是。这些组件彼此嵌套,也彼此独立,使用协议(Scope或者Service)通信。这样的好处非常明显。
比如我们现在还没有做好 bw-table ,服务器 Restful API 也还没有完成,但我们却可以独立开始开发 bw-search 。bw-search 自带独立的 UI 与复杂逻辑,其将对 bw-appnode 的假数据进行过滤,而 bw-table 则是渲染层而已,任何 bw-appnode 上面的变化,都会自动的 reactive 到 bw-table 里 (就是 Angular Scope 了)。
2. 可视化/具象化
缘由一:我们习惯于把很多的功能使用 JavaScript 事件绑定的方式实现。慢慢地,点击了一个按钮会发生什么,我们只能猜,或者辛辛苦苦的去跟踪源代码。而到底一个 Dom 节点上的 JavaScript 事件监听器有几个,我们也很难察觉——每个工程师都可能在 JS 文件的任何地方给某个节点添加上不可预期、天花乱醉的监听事件。
缘由二:还记得为什么 HTML5 要增加那么多标签么?比如 section/article/video。因为这样,HTML 页面与功能可能更加可视化,组件化。可视化是一看就知道这个是干什么的(Chrome Developer Tools Inspect、Google Crawler 精确搜索),组件化是一个标签就渲染出自己的一套独立行为与 view (Web Component / Shadow-Dom的题中之义)所以,我们都近乎引颈渴望:如果从 HTML 上面就可以看出这一段 HTML 片断/页面块 是干什么的,是何等的奇妙和方便啊—— 这里有另外一个术语,是描述性编程,在此也可见一斑。在我们的例子中,顶级节点有一个新的 directive,叫
JavaScript
顾名思义,这个就是用来拿服务端数据的。在 Server 还没有做完时,在它里面直接拿的是静态的数据 (使用Promise resolve),拿到数据之后,直接设在 bw-appnode 的 Scope 。
而更有意识的是,由于这个节点是独立的另外一个directive,我们可以在上面考虑更多复杂的逻辑,比如 ajax 数据缓存处理等。我们坦然地对这个组件说,“反正你就干这事,怎么干,你慢慢细化;想做多精,就做多精;一辈子只做一件事,就不相信你做不好。”。另外,这个节点还可以用在其他地方——要 appnode 数据的,可不止于这个 bw-appnode 页面。不过呢,我这里不是说, Component 的主要目的是为了做重用——这个明显不是本文要谈的。
3. 可测试单元和 jsDoc
这里讲的不是单元测试,而是测试单元。显而易见,上面的任何一个 Component 都可以独立拿出来做测试。我们只需要引入相关的 directive 的 js 文件与 view html 文件,就可以在另外一个独立的测试空间,给这个 directive 做测试 (Protractor驱动)。测试用例、数据环境,想加就加,想改就改。完全不用担心强耦合问题。
而既然是组件化, jsDoc 也好写多了。一个 directive,一个 module 定义。
当我们把这个经验(Everything should be directives.)总结出来之后不久几个月,我们却发现 Angular2 / React 的团队早就意识到这个原则的重要性,他们早就偷偷地调整了一切。
在 React / Angular2 看来,一切都是组件。在写一个新的 SPA 时,你首先要做的,就是把你要做的页面划分成不同的嵌套的组件。
借用 别人 的图举个栗子。
一目了然,不言而喻。不过多说一句,划出组件之后,你还要决定是使用 Scope 通信还是使用 Publish/Subscribe 能信,另外是组织页面(容器组件)的超级 Router 抽象层(用现成的 Router 都太弱,你应该用自己发明的 Router)。这里不再多谈。
下面有几个好资源与童鞋们共享。
Facebook React: Step 1: break the UI into a component hierarchy
AngularJS: Component Based Thinking in AngularJS
AngularJS: Refactoring Angular Apps to Component Style
最后再来一个给力的, 别人 做的东西。
让 Component 革命中关村和硅谷的前端吧。
后记:
我当前使用的是 Microsoft KnockoutJS,然而,从 Angular/React 得来的经验,已经彻底的革命了我们的 KnockoutJS 云应用。
Component,成功人士的不二之选。
小方,中关村软件园,Mar. 18, 2016。转载请标明出处。
java引用和gc.mdown—/users/wjk/desktop/笔记
强引用
强引用是我们接触最多的引用,若果是强引用jvm宁愿抛出oom也不愿回收具有强引用的对象。
软引用
具有软引用的对象,内存空间充足的时候,垃圾回收器不会回收,当内存空间不充足的时候,垃圾回收器回收。
弱引用
在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。
虚引用
虚引用主要用来跟踪对象被垃圾回收器回收的活动。虚引用与软引用和弱引用的一个区别在于:虚引用必须和引用队列 (ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之关联的引用队列中。
引用队列
软引用、弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。
立即学习“前端免费学习笔记(深入)”;
html 的 meta 总结,html 标签中 meta 属性使用介绍_html/css_WEB-ITnose
引子
之前的我的博客中对于meta有个介绍,例如:http://www.haorooms.com/post/liulanq_think_ie 浏览器安全性想到的这篇文章,中间介绍了meta下面ie的一些属性,可以实现页面之间的过渡转换。已经seo优化中有所提及。下面具体介绍一下meta的功能和使用。
前言
meta是html语言head区的一个辅助性标签。也许你认为这些代码可有可无。其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言,自动刷新并指向新的页面,实现网页转换时的动态效果,控制页面缓冲,网页定级评价,控制网页显示的窗口等!
html的meta总结
meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。
1、name属性
name属性主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。
meta标签的name属性语法格式是:
立即学习“前端免费学习笔记(深入)”;
<meta name="参数"content="具体的参数值">。
其中name属性主要有以下几种参数:
A、Keywords(关键字)
说明:keywords用来告诉搜索引擎你网页的关键字是什么。
举例:
<meta name="keywords"content="meta总结,html meta,meta属性,meta跳转">
B、description(网站内容描述)
说明:description用来告诉搜索引擎你的网站主要内容。
举例:
<meta name="description"content="haorooms博客,html的meta总结,meta是html语言head区的一个辅助性标签。">
C、robots(机器人向导)
说明:robots用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。
content的参数有all,none,index,noindex,follow,nofollow。默认是all。
举例:
<meta name="robots"content="none">
具体参数如下:
信息参数为all:文件将被检索,且页面上的链接可以被查询;
信息参数为none:文件将不被检索,且页面上的链接不可以被查询;
信息参数为index:文件将被检索;
信息参数为follow:页面上的链接可以被查询;
信息参数为noindex:文件将不被检索,但页面上的链接可以被查询;
信息参数为nofollow:文件将被检索,但页面上的链接不可以被查询;
D、author(作者)
说明:标注网页的作者
举例:
<meta name="author"content="root,root@xxxx.com">
E、generator
<meta name="generator"content="信息参数"/>
meta标签的generator的信息参数,代表说明网站的采用的什么软件制作。
F、COPYRIGHT
<META NAME="COPYRIGHT"CONTENT="信息参数">
meta标签的COPYRIGHT的信息参数,代表说明网站版权信息。
G、revisit-after
<META name="revisit-after"CONTENT="7days">
revisit-after代表网站重访,7days代表7天,依此类推。
2、http-equiv属性
http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值。
meta标签的http-equiv属性语法格式是:
<meta http-equiv="参数"content="参数变量值">;
其中http-equiv属性主要有以下几种参数:
A、Expires(期限)
说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。
用法:
<meta http-equiv="expires"content="Fri,12Jan200118:18:18GMT">
注意:必须使用GMT的时间格式。
B、Pragma(cache模式)
说明:禁止浏览器从本地计算机的缓存中访问页面内容。
用法:
<meta http-equiv="Pragma"content="no-cache">
注意:这样设定,访问者将无法脱机浏览。
C、Refresh(刷新)
说明:自动刷新并指向新页面。
用法:
<meta http-equiv="Refresh"content="2;URL=http://www.haorooms.com"> //(注意后面的引号,分别在秒数的前面和网址的后面)
注意:其中的2是指停留2秒钟后自动刷新到URL网址。
D、Set-Cookie(cookie设定)
说明:如果网页过期,那么存盘的cookie将被删除。
用法:
<meta http-equiv="Set-Cookie"content="cookie value=xxx;expires=Friday,12-Jan-200118:18:18GMT;path=/">
注意:必须使用GMT的时间格式。
E、Window-target(显示窗口的设定)
说明:强制页面在当前窗口以独立页面显示。
用法:
<meta http-equiv="Window-target"content="_top">
注意:用来防止别人在框架里调用自己的页面。
F、content-Type(显示字符集的设定)
说明:设定页面使用的字符集。
用法:
<meta http-equiv="content-Type"content="text/html;charset=gb2312">
具体如下:
meta标签的charset的信息参数如GB2312时,代表说明网站是采用的编码是简体中文;
meta标签的charset的信息参数如BIG5时,代表说明网站是采用的编码是繁体中文;
meta标签的charset的信息参数如iso-2022-jp时,代表说明网站是采用的编码是日文;
meta标签的charset的信息参数如ks_c_5601时,代表说明网站是采用的编码是韩文;
meta标签的charset的信息参数如ISO-8859-1时,代表说明网站是采用的编码是英文;
meta标签的charset的信息参数如UTF-8时,代表世界通用的语言编码;
G、content-Language(显示语言的设定)
用法:
<meta http-equiv="Content-Language"content="zh-cn"/>
H、Cache-Control指定请求和响应遵循的缓存机制。
Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、on
ly-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下
Public指示响应可被任何缓存区缓存
Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效
no-cache指示请求或响应消息不能缓存
no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应
max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
J、http-equiv="imagetoolbar"
<meta http-equiv="imagetoolbar"content="false"/>
指定是否显示图片工具栏,当为false代表不显示,当为true代表显示。
K、Content-Script-Type
<Meta http-equiv="Content-Script-Type"Content="text/javascript">
W3C网页规范,指明页面中脚本的类型。
L 页面跳转,只用于IE
具体请看 http://www.haorooms.com/post/liulanq_think_ie
ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
1.Action、RenderAction加载办法的视图,履行Controller → Model → View的次序,然后把产生的页面带回到本来的View中再回传。而Partial、RenderPartial直接加载视图文件内容
2.Html.Partial可以直接供给用户控件名作为参数,而Html.Action须要有对应的Action,在Action内部返回PartailResult(即retun PartialView())。
3.对于简单的没有任何逻辑的用户控件,推荐应用Html.Partial;对于须要设置一些Model的用户控件,推荐应用Html.Action。当然,有Model数据也是可以应用Html.Partial办法的,可以看办法的重载。
4.Html.Partial与Html.Action有啥区别呢?区别就是,Html.Partial只有一个视图,而Html.Action除了视图,还真的有个Action跟它对应,所以,Html.Action功能比Html.Partial要强。
如何调用这个Html.Partial
//1、以视图名使用当前文件夹下的视图(如果没有找到,则搜索 Shared 文件夹)
@Html.Partial(
"_test"
)
//加载对应文件 /Views/Product/_test.cshtml
//2、依据应用根路径定位视图// 以 "/" 或 "~/" 开头的路径代表应用根路径
@Html.Partial(
"~/Views/Product/_test.cshtml"
)
@Html.Partial(
"/Views/Product/_test2.cshtml"
)
//3、加载其他目录的 视图文件
//注意:需要复制views中的web.config 到template目录,否则会提示 "/template/A.cshtml”处的视图必须派生自 WebViewPage 或 WebViewPage<TModel>"
@Html.Partial(
"/template/A.cshtml"
)
asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处
Html.Partial and Html.RenderPartial Html.Action and Html.RenderAction
解决方法
Html.Partial使用已创建的模型(或者可以在没有模型的情况下调用)来渲染指定的视图.
何时使用一个而不是另一个?如果您已有模型并且只想拥有可重复使用的视图,请选择Html.Partial.如果你看到某个部分值得拥有自己的模型和动作,那么使用Html.Action可能是有意义的.
这个问题在this article中有更详细的讨论,你在上面看到的基本上是它的摘录.
关于Everything are HTML components – 小谈 HTML 组件化与可视化的编程_html/css_WEB-ITnose的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于 html 的 meta 总结,html 标签中 meta 属性使用介绍_html/css_WEB-ITnose、ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction、asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处等相关内容,可以在本站寻找。
本文标签: