第五章
- 平稳退化-优雅降级:当浏览器不支持js的情况下仍旧能够访问网站
- 在js中怎么创建新窗口?
- 使用window对象的open方法,如下:
window.open(url,name,features)
- BOM与DOM的差别是什么?
- BOM对文档内容无任何印象,反之DOM是处理文档内容的
- 伪协议:区别于标准化协议,是一种非标准化协议
- CSS技术并无新内容,CSS能做到的用table和font等标签也能做到,内容结构(标记),版面设计(样式)
- 怎么写一个分离式的js?例如:给一个超链接添加一个点击弹出窗口的功能
- 我们有非常多种方法可以找到某一个指定元素,下面示例找到含有popUp类的超链接
- 使用getAttribute返回的是一个字符串,不是数组,书中的做法并不考虑有多个类的情况
- 修改一下,onclick可能也是元素节点对象的一个属性值,或者说方法
- 常规做法
<p onclick="showPic(this)"></p>
- 更改之后做法:获取到的p标签.onclick = function(){执行语句}
- popUp函数的onclick事件,是不是有些拗口
- 点击-触发事件-触发js函数,一个js函数不单单能被onclick事件触发,漏看了一个’调用’
- 实际上是调用popUp函数的onclick事件
- 过程可能是:给标签添加事件,给事件添加函数
- HTML文档全部加载完毕之后会触发一个事件
- 注意:当你感觉到陌生的知识,可能就是你忽略的知识
- document对象是window对象的一个属性
- 还是看得太快了:
- 怎么在浏览器中弹出一个新的窗口?
- 使用window.open函数,函数的参数是什么吗?返回什么?
- 参数有3个:URL值——要打开的网页;新窗口的名字;新窗口的属性
- 试验一下
- 注意,要打开浏览器默认的弹出窗口阻拦;第二个参数新窗口的名字,类似于标签的name属性,是不显示的,不是窗口的标题,每个参数都需要用”“包裹起来,且用逗号分隔开
- 怎么样才能点击超链接-弹出一个窗口?
- 涉及到3个概念,标签、事件、函数
- 把事件和标签关联起来:
<p onclick=""></p>
- 把函数和事件绑定在一起:
<p onclick="fun()"></p>
- 这么简单的事情为什么花这么久才解决?
- 我们看下书的流程是什么样的
- 有点对象和实例的概念,通过一个新建函数,把window.open包装成我们想要的方式,如下图:
- 注意:调整窗口属性的时候是width=100,而不是width:100
- 接下来就是怎么把这个函数和事件绑定起来?
- 注意到这个函数是有传入参数的,修改一下,如下图:
- 如果传入的不是一个字符串呢?不太可能
- 把函数和事件绑定起来是做法之一,还有伪协议的方法(不推荐);第二种方法才是使用事件处理函数,但是事件处理函数也有两种,一种是比较容易理解的内嵌型:把事件处理函数作为属性嵌入相应的标签
- 事件处理函数实际就是连接事件和动作函数的东西
- 而内嵌事件处理函数就是连接标签和事件的东西
- 虽然有些白痴,但是也是需要注意一下,都有了herf属性了,再给他添加一个点击后出现新窗口是不是多此一举?不是的,通过herf弹出的窗口的属性我们是不能更改的,显然文章的重点不在这里,所以没有特意去提
- 在禁用JS后,内嵌的事件处理函数οnclick=”“还能够使用吗?
- 学习CSS,CSS中是怎么做挂钩的?通过对标签的类型,类属性,ID属性挂钩使用:.class或#id,同理js可以学习
- 怎么学习?
- 编写的js函数最好和事件处理函数是分开的
- 对象检测
- 其实我不是很想花很多精力在浏览器的兼容上面
- 5.6 性能的考虑:应该注意的一些问题
- 5.6.1 尽量少访问DOM和少标记
- 举个实例?
- 自己先想一下概念:什么是访问DOM?什么是标记?类似于getElementById这三个针对document的就是访问访问dom,那么getAttribute这类呢?
- 作者的行文思路:先说要做什么然后给出代码;先给出代码再说要做什么;无论哪种我们都可以先给出自己的答案
- 如果文档中存在a元素;则把a元素都赋值给links;再对a元素一一处理。
- 为什么访问DOM的方式会影响性能?访问DOM只是浏览器的一种行为之一?其他的行为呢?可以量化吗?当浏览器执行执行访问DOM的方法时发生了什么?
- 这个可能要去读源码才知道?毕竟是原生提供的方法
- 解决方法时变量赋予,看来变量赋予除了提高代码易读性,还有提高性能的功能
- 标记就是元素,过多的元素会加大DOM树的规模,对性能的影响是显然的
一些思考03
- 被满足的欲望
- 大部分时候我们是很容易被满足的,工作中能够和领导同事聊到一块,被认同的快感就能得到满足,打开论坛看一些新闻或者说坛友的RPG、人生相谈等,好奇心的快感也能被满足,同理,上视频网站也一样,反正都是被满足,无论大小,我们都不会去深究分类,只会觉得,挺开心的
- 再次学习的时候找准一个切入点其实很重要,无论上我上面说的逛论坛、视频网站都有一个共同点:不需要延续性,你没有给自己安排一个任务,每天看几类的帖子或者看几类的视频,每类看几个,随意性就等于不需要切入点,只要你兴趣被拉起来了,你也进入状态了
- 学习的时候会想:自己之前学到了哪里,现在该学什么,如果没有做好充足的计划的话很容易就会有迷茫感,怎么样在没有计划的情况下迅速让自己进入到状态?
- 先让自己的大脑活跃起来:抄书是一个不错的方法