javascript DOM 编程艺术 札记2 平稳退化
定义
指的是即便浏览器不支持javascript,页面的基础展示功能也不会受到影响的做法。
不能平稳退化的实例
- javascript:这种伪协议,它可以通过链接调用javascript函数。比如
<a href="javascript:popUp('http://www.example.com');">example</a> - 内嵌的事件处理函数
<a href="#" onclick="popUp('http://www.example.com');return false;">example</a>
它们不算平稳退化主要在于如果用户禁用了javascript,这样的链接虽然不会报错但是也失去了原本的作用。
平稳退化的做法
<a href="http://www.example.com" onclick="popUp(this.href);return false;">example</a>- 即使不支持弹出窗口,基础的功能还在,仍然可以点击链接生效。
一些理论的知识点
- CSS的最大优点是将Web文档的内容结构(标记)和版面设计(样式)分离开来。
- 渐进增强:用一些额外的信息层来包裹原始数据。这样的代码容易平稳退化。思考下CSS,就是包裹的样式,即使样式失效,内容本身仍在。
- 对应的javascript也可以像CSS那样,分离内容结构和页面行为。通常借助于属性节点class和id来实现定位。
- ==HTML文档加载完毕时将触发一个window.onload事件,这个事件将document对象加载到window里,所以window.onload执行时,document已经确认存在了==。
- 对象检测:使用逻辑非配合return语句比较简洁,更简洁方便地达到检测方法是否存在的目的。比如
if(!documen.getElementsByTagName) return false; - HTTP规范,浏览器每次从同一域名最多只能同时下载两个文件。(实际上现在的浏览器已经突破这个限制了,看这里)所以脚本放置在之前好一些。因为一般来说,内容优于样式和行为。
一些javascript函数
- window.open(url, name, features)第三个参数是诸如新窗口宽度高度等的设置。
javascript DOM 编程艺术 札记2 平稳退化的更多相关文章
- javascript DOM 编程艺术 札记1
一个重要观点 DOM 是指 文档对象模型,它对应浏览器实际认知的东西.html 文本本身和 html 加载到浏览器中显示的东西并不是完全一致的,后者就是 DOM 节点树,它是浏览器实际认知的东西.一个 ...
- JavaScript DOM编程艺术读后感(1)—— 平稳退化
最近,在读<JavaScript DOM编程艺术(第二版)>这本书,想着将自己的读后感记录下来,作为记忆吧. 其实我并不是最近才刚开始读这本书的,我读了有一段时间了.我是一名web前端开发 ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- JavaScript DOM编程艺术学习笔记(一)
嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推 ...
- 《JavaScript DOM 编程艺术》 学习笔记
目录 <JavaScript DOM 编程艺术> 学习笔记 第一章 js简史 第二章 js语法 准备工作 语法 第三章 DOM DOM中的D DOM中的O DOM中的M 第四章 js图片库 ...
- JavaScript DOM 编程艺术
最近把JavaScript DOM 编程艺术这本书看完了,觉得这本书很好 深入浅出地展示了渐进增强.平稳退化.结构和样式分离等编程思想,我对书中重要的知识进行了梳理总结. 一.网页 二.JavaScr ...
- JavaScript DOM编程艺术(第2版)的简单总结
介绍 JavaScript DOM编程艺术(第2版)主要讲述了 JavaScript.DOM 和 HTML5 的基础知识,着重讲述了 DOM 编程,并通过几个实例演示了具有专业水准的网页开发. 下面介 ...
- JavaScript DOM 编程艺术·setInterval与setTimeout的动画实现解析
先贴上moveElement()函数的大纲,为了方便观看,删了部分代码,完整版粘到文章后面. function moveElement(elementID,final_x,final_y,interv ...
- JavaScript DOM编程艺术第一章:JavaScript简史
本系列的博客是由本人在阅读<JavaScript DOM编程艺术>一书过程中做的总结.前面的偏理论部分都是书中原话,觉得有必要记录下来,方便自己翻阅,也希望能为读到本博客的人提供一些帮助, ...
随机推荐
- python 替换字符串的方法replace()、正则re.sub()
一.replace()函数1用字符串本身的replace方法: a = 'hello word' b = a.replace('word','python') print b 1 2 3 二.re ...
- python 布尔型(bool)
- 17-1 djanjo进阶-路由,视图,模板
一 路由系统进阶(urls.py) 动态路由 urls.py中通过正则表达式的分组匹配,捕获用户访问的url中的值,传递给视图函数1 分组匹配(通过圆括号): 相当于给视图函数传递 位置参数 例子: ...
- python---异常处理与反射
一.异常处理 1.异常基础 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!! try: pass except ...
- C++中文本的读入
读入文本文件 标准库包含逐行读取文本文件的功能.然后,你可以一次一行地解析文本文件的每一行. 比如说,你有文件,其中使用数字和逗号表示一个 3x4 的矩阵: , , , 10.5 , , , , , ...
- hdu 2662 Coin
Coin Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Oracle - @和@@、&与&& 的区别
2018-01-15 15:36:17 袭冷 阅读数 4783更多 分类专栏: DB 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接 ...
- oracle comment on的用法
转:http://www.2cto.com/database/201109/106249.html oracle中用comment on命令给表或字段加以说明,语法如下:COMMENT ON { ...
- [转]来自后端的逆袭 blazor简介 全栈的福音
背景 什么是SPA 什么是MPA MPA (Multi-page Application) 多页面应用指的就是最传统的 HTML 网页设计,早期的网站都是这样的设计,所之称为「网页设计」.使用 MPA ...
- Python--day49--ORM框架SQLAlchemy之relationship的使用(有时间要从新看,这里状态不好,没有仔细听)
小贴士: 迭代器:只有在循环的时候才一个一个往外拿 relationship