观察者模式 ( 又叫发布者-订阅者模式 ) 应该是最常用的模式之一. 在很多语言里都得到大量应用. 包括我们平时接触的 dom 事件. 也是 js 和 dom 之间实现的一种观察者模式.
1 2 3 4 5 |
div.onclick = function click (){ alert ( ''click' ) } |
简单工厂模式是由一个方法来决定到底要创建哪个类的实例, 而这些实例经常都拥有相同的接口. 这种模式主要用在所实例化的类型在编译期并不能确定, 而是在执行期决定的情况。 说的通俗点,就像公司茶水间的饮料机,要咖啡还是牛奶取决于你按哪个按钮。
简单工厂模式在创建 ajax 对象的时候也非常有用.
之前我写了一个处理 ajax 异步嵌套的库,地址在 https://github.com/AlloyTeam/DanceRequest
通常情况 CSS 不论是内嵌还是外联,都是预先定义好的。其实利用 JavaScript,我们也可以动态在页面中插入或删除 CSS。
比较常见的场景是:CSS 动画。由于我们在设计网页时不能预知动画的具体细节,所以需要在运行时进行定制。比如,我们想让一个元素从右侧飞出屏幕,如果用 keyframe 动画实现,我们必须知道屏幕的宽度,这个信息只有在运行才知道。
例如下面的 1026px,是运行时浏览器窗口的宽度。
Web 无障碍设计(Accessibility in Web design,也叫网站可及性 )是要让所创建的网站对所有用户都可用/可访问,不管用户的生理/身体能力如何、不管用户是以何种方式访问网站。
为什么不是所有网站都能无障碍访问?你可能也会问自己为什么存在 “无障碍” 的问题,为什么不是所有网站都能让所有用户无障碍访问?要进行无障碍设计有许多不同原因,其中包括残疾人用户的需求、不同的人访问和使用互联网的不同途径和方式。
最近公司在推行 Web 网页的无障碍化,所以转载此文,很多国内互联网项目开始重视网页无障碍,开始更好的为视障用户提供更好的便利,这方面做的比较好的有腾讯 QQ、朋友网和 QQ 空间,还有淘宝网等。
然而平时测试并不是很方便,因为绝大部分读屏软件都是收费的。NVDA 是一个免费开源的读屏软件,而且做的很不错。所以它就是我们平时测试网站可用性的首选。
Application cache 是 HTML5 中在规范完整性上比较糟糕的特性之一,规范上的不到位导致浏览器厂商在实现上也存在些许差异,而产生本文档的目的即让开发者们知晓那些潜规则,摆脱问题的困惑与束缚,正确的使用离线缓存真正让 Web 加速。
有时候我们会感觉到页面反应迟钝,这是因为 DOM 树元素中附加了过多的事件句柄并且些事件句病被频繁地触发。这就是为什么说使用事件代理是一种好方法了。如果你在一个 div 中有 10 个按钮,你只需要在 div 上附加一次事件句柄就可以了,而不用去为每一个按钮增加一个句柄。事件冒泡时你可以捕捉到事件并判断出是哪个事件发出的。
有两种方式加载样式文件,一种是 link 元素,另一种是 CSS 2.1 加入 @import。而在外部的 CSS 文件中使用 @import 会使得页面在加载时增加额外的延迟。虽然规则允许在样式中调用 @import 来导入其它的 CSS,但浏览器不能并行下载样式,就会导致页面增添了额外的往返耗时。比如,第一个 CSS 文件 first.css 包含了以下内容:@import url("second.css")。那么浏览器就必须先把 first.css 下载、解析和执行后,才发现及处理第二个文件 second.css。简单的解决方法是使用<link> 标记来替代 @import,比如下面的写法就能够并行下载 CSS 文件,从而加快页面加载速度:
Iframe 也叫内联 frame,可以把一个 HTML 文档嵌入到另一个文档中。使用 iframe 的好处是被嵌入的文档可以完全独立于其父文档,凭借此特点我们通常可以使浏览器模拟多线程,需要注意的是使用 iframe 并不会增加同域名下的并行下载数,浏览器对同域名的连接总是共享浏览器级别的连接池,即使是跨窗口或跨标签页,这在所有主流浏览器都是如此。也因为这样这让 iframe 带来的好处大打折扣。
Copyright © 2011-2021 AlloyTeam. All Rights Reserved. Powered By WordPress
粤ICP备15071938号-2