一、文章开篇
由于最近也比较忙,一方面是忙着公司的事情,另外一方面也是忙着看书和学习,所以没有时间来和大家一起分享知识,现在好了,终于回归博客园的大家庭了,今天我打算来分享一下关于《web前端开发最佳实践》这本书的读后感,以及梳理这本书中比较有用的核心知识点
二、书之印象
《web前端开发最佳实践》其实说到底就是一本提高你的涉猎面的书籍,但是缺点就是这本书的标题是web前端开发最佳实践,但是其实也就是一些很基础的东西没有什么很高深的,所以前端最佳实践这个书名就是标题党,而且里面的东西就是只可意会不可言传,说到底就是根本都没有详细的说明要怎样来实现的,从我个人的角度上来看,就是本书的内容太过于肤浅,不适合细度,大致了解就行了,但是其实这个也是挺难说的,毕竟技术也是因人而异的,如果这本书是初入职场的小白或者是还是在校的大学生的话,那么这本书拓展知识面也是挺不错的。
三、书之知识面
书中提出了几个知识点我认为是平时使用中比较有用的知识,所以在这里就跟大家分享一下
1、HTML5的async属性和defer属性
这两个属性只有在script标签设置了src属性的时候才有用,其中的defer大部分的浏览器都是支持的,但是opera mini不支持这个属性,
defer属性:这个属性是让脚本后置加载,相当于把脚本放置于页面最后加载和执行
async属性:让脚本异步加载和执行,设置了async属性之后不能保证脚本按照属性加载和执行,所以如果是脚本之间存在依赖关系,那么不能使用async属性来加载,
从功能上面来说,可以使用async属性的场合就可以使用defer属性,因此设置了async属性的时候最好是把defer属性加上,async这个属性是HTML5才出现的属性,但是defer这个属性就由来已久,所以这样写的另外一个好处是如果浏览器不支持html5属性,那么也就可以执行defer属性
2、自定义标签属性data-*
相信大多数人都知道HTML5中是可以自定义标签的,但是一方面自定义标签会导致不同的人编写的格式不同,从而降低了代码的可维护性,data-*的使用如下:
<ul>
<li id="test" data-length="222222"></li>
</ul>
<script>
var test=document.getElementById('test');
//获取数据
test.dataset['length'];
//设置数据
test.dataset['length']='qwe';
</script>
要注意的是这种用法在IE7以下的版本中是不支持的
3、浏览器兼容问题
说到浏览器的兼容问题,这里我们区分为两种兼容性问题,一种是兼容低版本的浏览器,比如就是兼容IE6、IE7之类的低版本浏览器,另外一类就是兼容不同高版本浏览器对HTML5支持特性的不完整
1、兼容低版本浏览器
低版本的浏览器我们一般是要引入html5.js来支持高版本浏览器中支持的HTML5标签,但是在高版本的浏览器中我们是不需要这个html5.js文件的这个时候我们的思路是当浏览器是IE低版本的时候就引入,这个时候我们可以尝试使用IE浏览器特有的条件注释
例如:为IE9以下的版本添加HTML5.js文件
<!--[if lt IE 9]-->
<script src="html5.js"></script>
<!--[endif]-->
2、兼容高版本浏览器的差异
高版本的差异性主要体现在对HTML5特性支持的差异性上面,如果是忽略了这一点的话,那么就有可能会出现意想不到的错误,所以为了防范于未来,在构建的时候,我们就应该要把这种问题扼杀在襁褓中,这里我推荐使用自动检测框架来解决这个问题,现在市面上的检测框架有很多,但是从检测准确率和使用率较高的是Modernizr框架
用法是首先引入框架的JS文件
<script src="modernizr-1.5.min.js"></script>
然后是在html标签中添加no-js类,这样做是指定了检测的范围是包含在html标签内的,也就是全部的内容
例如:
<html class="no-js">
这样当你运行脚本的时候,就可以在浏览器中查看到框架为HTML中的标签动态的添加添加class类,要注意的是添加的类中y
4、编写高性能的CSS代码
对于高性能的CSS代码,我个人认为CSS从性能上面来说,在CSS上面做优化可能是不太明智的选择,但是还是要提一点,就是在chrome浏览器的开发工具dev tool中提供了一个查找无效样式规则的东东,这个的具体如下:
从这里我们就可以看到了CSS使用的情况
5、Timeline工具的使用
这个的具体使用我也是一知半解,在此就不误人子弟了,以后了解到了再来讲解
四、小结
总的来说我个人认为这本书对于我这个层次的核心东西也就是这些,本书我的感觉是太过理论化,有点忽略了知识在实际中的应用实战这一点,本次的书评就到此为止,期待下期我带来的新书知识,如果你觉得本文还可以的话,请点赞
web前端开发最佳实践笔记的更多相关文章
-
【社区公益】送《Web前端开发最佳实践》给需要的人
算起来至今,我进入软件开发行业已经有11年之久.从最初的研究人工智能,到后来的Web开发,控件开发,直到现在纯粹的Web前端开发.虽然没有大的作品问世,但也是勤勤恳恳,踏实做事,低调做人.从来不吹牛逼 ...
-
Web前端开发最佳实践系列文章汇总
Web前端开发最佳实践(1):前端开发概述 Web前端开发最佳实践(2):前端代码重构 Web前端开发最佳实践(3):前端代码和资源的压缩与合并 Web前端开发最佳实践(4):在页面中添加必要的met ...
-
Web前端开发最佳实践(9):CSS代码太太乱,重复代码太多?你需要精简CSS代码
前言 提高网站整体加载速度的一个重要手段就是提高代码文件的网络传输速度.之前提到过,所有的代码文件都应该是经过压缩了的,这可提高网络传输速度,提高性能.除了压缩代码之外,精简代码也是一种减小代码文件大 ...
-
Web前端开发最佳实践(8):还没有给CSS样式排序?其实你可以更专业一些
前言 CSS样式排序是指按照一定的规则排列CSS样式属性的定义,排序并不会影响CSS样式的功能和性能,只是让代码看起来更加整洁.CSS代码的逻辑性并不强,一般的开发者写CSS样式也很随意,所以如果不借 ...
-
Web前端开发最佳实践(7):使用合理的技术方案来构建小图标
大家都对网站上使用的小图标肯定都不陌生,这些小图标作为网站内容的点缀,增加了网站的美观度,提高了用户体验,可是你有没有看过在这些网站中使用的图标都是用什么技术实现的?虽然大部分网站还是使用普通的图片实 ...
-
Web前端开发最佳实践(1):前端开发概述
引言 我从07年开始进入博客园,从最开始阅读别人的文章到自己开始尝试表达一些自己对技术的看法.可以说,博客园是我参与技术讨论的一个主要的平台.在这其间,随着接触技术的广度和深度的增加,也写了一些得到了 ...
-
Web前端开发最佳实践(2):前端代码重构
前言 代码重构是业内经常讨论的一个热门话题,重构指的是在不改变代码外部行为的情况下进行源代码修改,所以重构之前需要考虑的是重构后如何才能保证外部行为不改变.对于后端代码来说,可以通过大量的自动化测试来 ...
-
Web前端开发最佳实践(4):在页面中添加必要的meta信息
meta标签放置在HTML页面的head中,主要用于标识网站.其中基本上包含了网站的一些描述信息,例如,简介.作者等.这些信息有助于搜索引擎更准确地识别网页的内容,也有助于第三方工具抓取网站基本信息. ...
-
Web前端开发最佳实践(5):正确闭合HTML标签,停止使用不标准的标签和属性
正确闭合HTML标签 HTML元素的内容模型定义了元素的结构,表明元素可以包含哪些内容以及元素可以有哪些属性.元素可以包含的内容包括其他元素和字符,但是也有一些元素是空元素,即不能包含任何内容,这些元 ...
随机推荐
-
python(五)文件操作
1.打开文件 f = open('db','r') #只读 f = open('db','w') #只写,先清空原文件 f = open('db','x') #文件存在,报错,不存在,创建 ...
-
C# 委托总结
总结 委托的本质: 委托是一种特殊的数据类型,它表示某种特定类型的函数,并且可以表示多个函数,将这些函数串联起来.使用委托就好像函数调用一样. 委托实质上是一个类,编译器会根据关键字delegate自 ...
-
Java Web services: WS-Security with Metro--referenc
As you know from "Introducing Metro," the reference implementations of the JAXB 2.x data-b ...
-
解读Spring Ioc容器设计图
在Spring Ioc容器的设计中,有俩个主要的容器系列:一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器最基本的功能:另外一个是ApplicationContext应用上下 ...
-
[Web远程wsshd]CentOS6.4搭建配置wssh
wssh 是一个 SSH 到 WebSockets 的桥,可以让你通过 HTTP 调用远程服务器的 SHELL 命令.wssh 可以让我们通过 HTTP 来调用远程的一个 shell,也就是说我们可以 ...
-
学习pthreads,多线程的创建和终止
在多CPU多线程的编程中,通过作者的学习发现,pthreads的运用越来越广泛,它是线程的POSIX标准,定义了创建和操作线程的一整套API.环境的配置见上一篇博文,配置好环境后只需要添加#inclu ...
-
Java-ServletOutputStream
/** * Provides an output stream for sending binary data to the * client. A <code>ServletOutput ...
-
关于CPU 架构与指令集的一些个人理解
关于CPU 架构与指令集的一些个人理解 (理解不一定正确,只是目前的理解) 1.一般所说的X86,是指基于Intel X86架构处理器的一套指令集,即X86指令集: 2.CPU的架构是最底层的,是处理 ...
-
ulimit系统资源的设定
使用ulimit -a 可以查看系统使用的资源 core file size 设定core文件的最大值,单位为区块,如果指定为0,不会产生core文件 data seg size 设定数据段的最大值, ...
-
2018-04-21 搭建Python官方文档翻译环境
参考PEP 545 -- Python Documentation Translations fork的编译脚本: nobodxbodon/docsbuild-scripts, 添加了zh语言标签, ...