JavaScript DOM编程艺术-学习笔记(第五章、第六章)
第五章:
1.题外话:首先大声疾呼,"js无罪",有罪的是滥用js的那些人。js的father 布兰登-艾克,当初为了应付工作,10天就赶出了这个js,事后还说人家js是c语言和self语言”约“的产物,(百度百科说的,这些)。。。。。一个可怜的孩子-js。然后命运弄“人”,js此时已世人皆知。可能是因为js的毁誉参半,它老爸才不想承认它吧。如果js会说话,它可能会给它布兰登-艾克说,“你当初怎么不把*******在墙上”。这让我想起了,一个老故事:老木匠干了一辈子,退休前,领导说,你再最后建一座房子,老木匠心里只想着辞职,房子建的着急,也不好。房子完工以后,老板把房子钥匙给了老木匠,说是送给他的。。人呐,还是认真工作,认真生活的好。事情永远总是猜不到的。
2.题外话:大家都在赶潮流,而不问实际需求,我们公司的客户就是这样的滴:“这个人家的网站有,我们也要有。”
3.1)平稳退化:①含义:让禁用了js的用户,以让可以访问网站。(网上大部分人说,没有人会去特意关闭js。还有还有-‘“关闭js的那些刁民,是不配享受这高大上的技术的呢”)
②这么做,虽然让禁用了js的用户体验不如没有禁用之前的好,但总比不能访问的好。
③平稳退化的:有利于seo,因为搜索机器人大都不认识js。
④说实话,除了书中例举的这个href的实例,我还没有想到其它的平稳退化的例子。。。。。。。。。。
3.2)渐进增强:①含义:分离内容(html),样式(css),行为(js)
②打个"碧玉":一颗糖,报上糖纸(样式)很漂亮,去掉糖纸依然,可以食用(内容)
3.3)向后兼容:①含义:铺好退路,做好预防----如果网页中,没有了正在使用的元素或者无法获取需要使用的元素怎么办。
②常用技术-对象检测技术(现在常用方法。使用时记得去掉括号,否则测试的将是结果。效果相当于对浏览器的一个警示牌:如果没有这个方法,请你离开)
-浏览器嗅探技术(随着浏览器的五花八门,这种技术多少显的有气无力)
.小知识点:①获取当前链接的href属性-this.href
②return false;常常用于阻止a标签的默认跳转行为和表单的默认提交行为(submit)。含义是告诉浏览器:”按照该链接没有点击的情况采取行动“
<a href="https://www.baidu.com" onclick="windowOpen(this.href);return false;">点我哦</a>
这里同时采用了一下书中提及的平稳退化的技术-即使用户关闭了js,js链接以前可以跳转。
③return 后面的代码不会执行(一般为了阅读性也写作return false),但是只对当前函数有效:
(function(){
if(1==2){
console.log("1");
return false;
}
for (var i = 0; i < 1; i++) {
console.log("2");
return false;
}
console.log("3");
})();
console.log("4");
最后会打印出2和4
5.题外话:网站不过是文档和数据的结合,图片不过是像素点的组成。万物归于简单,由简单又幻化出复杂。
6.题外话:前端收集用户数据---数据存入数据库----生成模型----用于决策等
决策----生成模型-----数据库生成数据---前端展示数据
7.题外话:这本书还是挺适合刚刚工作的人的。可以说是一种查漏补缺把
8.性能优化:①尽量少去访问dom:
工作的时候,会偷懒,写如下的代码:
if(document.getElementById("imgShow")){ alert() }
但是这样写:a,每次判断,都会搜索整个dom树。效率低下,不如搜索一次,存在变量中的方法效率高。
②减少dom标签。
前几天,网站轮播需要修改,我想的是增加一个div+js去实现效果。而项目经理的意思是通过css去实现
过多的dom标签会增加dom树的规模,增加搜索成本。
③合并和放置脚本:
一直都知道js应该放在末尾,当时具体在哪里不是很清楚。----应该放在文档末尾,</body>标签以前
④压缩脚本:
除了书中提及的三个工具,还可以使用grunt。
第六章:
1.此章,主要是把上一张的思想,结合到实例中。
2.结构化程序设计:
工作中,会写出如下代码:
if (222) {
if(111){
if(3333){
}
}
}
这些写,会对后期的修改带来很多不便。并且阅读不方便。
这样的思路是:如果正确就这行。可以修改一下思路为,如果错误就停止。则代码变成了:
if (222) {return false;}
if (111) {return false;}
if (333) {return false;}
也可以用if else-if结构去代替结构化的写法:
if (222) {}
else if (111) {}
else if (333) {}
3.小知识点:①for循环中经常用到i,变量命名为i是一种传统做法:i的含义是”increment“(递增)
②可以使用三元运算去代替if-else,使得代码简短,不过逻辑关系表达不明显。用哪个,看你心情喽
③onclick事件对于键盘的访问的支持已经不错了(ps:在所有浏览器里,用tab键移动到某个链接以后,然后按下回车都会出发onclick事件),所以无需特意去绑定一次键盘事件。
④如何让ul里面的li横向排列,并且居中呢?ul设置为text-align:center;li设置-display-inline即可。网上好多使用postion:relative的方法。好麻烦的说。
4.题外话:人生就好像在网上查东西,查着查着就跑偏了,你得经常问一下自己:”我在干嘛“。
5.题外话:有一种小时候记录流水账的感觉。不过能说出,看书的想法也是一种不错的感觉。
6.题外话:网上的太多东西都是抄袭,抄书(一字不差),抄百度百科,抄抄抄,换个背景就说自己是自己写的。。。。
JavaScript DOM编程艺术-学习笔记(第五章、第六章)的更多相关文章
- JavaScript DOM编程艺术-学习笔记(第八章、第九章)
第八章 1.小知识点: ①某些浏览器要根据DOCTYPE 来决定页面的呈现模式(标准模式 / 怪异模式--也称兼容模式): 兼容模式意味着浏览器要模仿老一辈的浏览器的怪异行为,来让老站点得到运行,并让 ...
- JavaScript DOM编程艺术学习笔记(一)
嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推 ...
- JavaScript DOM编程艺术-学习笔记
发现基础不是很好,补习一下.37买了2本书(dom编程和高级程序设计). 以前读书总是自己勾勾画画,有点没意思.现在写下来,说不定会成为传世经典.哈哈...........随便扯扯淡. 第一天(201 ...
- JavaScript DOM编程艺术学习笔记-第二章JavaScript语法
一.JavaScript示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- 【干货】JavaScript DOM编程艺术学习笔记4-6
四.案例研究:JavaScript图片库 js: function showPic(whichpic){ //取得链接 var source=whichpic.getAttribute("h ...
- 【干货】JavaScript DOM编程艺术学习笔记1-3
从7月29号到8月8号,断断续续地看完了这本书,做了部分实践联系.总体感觉本书真的只能算是个入门,学完之后看到库的那一章才感觉是个大坑,实践中大部分应该都是用的现成的库吧,所以还要重新学习一个库,但是 ...
- JavaScript DOM编程艺术学习笔记-第一章JavaScript简史
一,JavaScript的起源 JavaScript是Netscape与Sun公司合作开发,它是一种脚本语言,通常只能通过Web浏览器去完成一些操作.JavaScript为程序员提供了一些操控Web浏 ...
- 【干货】JavaScript DOM编程艺术学习笔记10-12【完】
十.用JavaScript实现动画效果 鼠标放到链接上,每次只显示图片的一小部分,加快加载速度. js: function prepareSlideshow(){ //对象检测 if(!documen ...
- JavaScript DOM编程艺术-学习笔记(第七章)
第七章: 1.dom方法创建并且插入标签:(这种方法并没有改变文档的物理内容,而是在改变dom树) ①创建元素节点:createElement(); ②内部前插入:appendChild() ③创建文 ...
随机推荐
- LAMP on ubuntu12.04 PHP, Apache2, MySQL, Linux ( with phpmyadmin installed)
there are several procedure which include: 1. Install the packages sudo apt-get install php5 php5-gd ...
- 压缩文件 compress files 以7z 格式及解压 或者别的格式
主要是为了能大量的减少文件使用空间,为了能节约带宽. 那么就用了7z的压缩方式. 这里,使用了7z的压缩方式,硬生生的将一个10k多的图片压缩成了3k左右的包.图片是不好压缩的,这个压缩比比zip g ...
- JSP引擎的工作原理
JSP运行环境: 执行JSP代码需要在服务器上安装JSP引擎,比较常见的引擎有WebLogic和Tomcat.把这些支持JSP的web服务器配置好后.就可以再客户端通过浏览器来访问JSP页面了.默认端 ...
- 结构-行为-样式-Bootstrap笔记
1.自上而下的内容布局,中间内容可变,应该用: <div class=" container-fluid"> <div class=" row" ...
- Xpath学习笔记
最近复习自己上一年的课本,想起来刚学那个时候想做一个写日记的软件. 想不如做,用控制台瞎写了一个,一做就成了,没什么bug,期间使用Xpath来读数据,所以就稍微学了一下. 学习过程就这样做一点笔记, ...
- 一键安装Redmine
群英汇·项目管理系统:http://www.ossxp.com/HelpCenter/00040_Redmine 其中包含中文说明及管理手册 一键安装下载:http://bitnami.org/sta ...
- 访问mysql出现“Access denied for user root@localhost”(using password:NO)解决方案
首先声明,出现这个提示的原因有很多,以下只针对我遇到的一种情况 使用解压缩版安装mysql的时候,data文件夹是自己新建的,my-default.ini也是自己配置的,这时直接启动mysql服务的时 ...
- 64位win7系统中vb工程显示加载MSCOMCTL.OCX失败
MSCOMCTL.OCX明明已经注册成功,但还是提示加载失败,对象未注册 尝试过的方法:system32中注册,syswow64中注册,vb打sp6补丁, 修改工程文件:用记事本打开VBP文件找到这一 ...
- CentOS7安装Zabbix
一.Zabbix简介 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系 ...
- IIS错误解决办法(HTTP Error 500.19 - Internal Server Error)
window10 切换登陆用户,VS2015的IIS Express 调试代码报HTTP Error 500.19 - Internal Server Error 错误,无法读取配置文件解决办法. I ...