一、文章开篇

由于最近也比较忙,一方面是忙着公司的事情,另外一方面也是忙着看书和学习,所以没有时间来和大家一起分享知识,现在好了,终于回归博客园的大家庭了,今天我打算来分享一下关于《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前端开发最佳实践笔记的更多相关文章

  1. 【社区公益】送《Web前端开发最佳实践》给需要的人

    算起来至今,我进入软件开发行业已经有11年之久.从最初的研究人工智能,到后来的Web开发,控件开发,直到现在纯粹的Web前端开发.虽然没有大的作品问世,但也是勤勤恳恳,踏实做事,低调做人.从来不吹牛逼 ...

  2. Web前端开发最佳实践系列文章汇总

    Web前端开发最佳实践(1):前端开发概述 Web前端开发最佳实践(2):前端代码重构 Web前端开发最佳实践(3):前端代码和资源的压缩与合并 Web前端开发最佳实践(4):在页面中添加必要的met ...

  3. Web前端开发最佳实践(9):CSS代码太太乱,重复代码太多?你需要精简CSS代码

    前言 提高网站整体加载速度的一个重要手段就是提高代码文件的网络传输速度.之前提到过,所有的代码文件都应该是经过压缩了的,这可提高网络传输速度,提高性能.除了压缩代码之外,精简代码也是一种减小代码文件大 ...

  4. Web前端开发最佳实践(8):还没有给CSS样式排序?其实你可以更专业一些

    前言 CSS样式排序是指按照一定的规则排列CSS样式属性的定义,排序并不会影响CSS样式的功能和性能,只是让代码看起来更加整洁.CSS代码的逻辑性并不强,一般的开发者写CSS样式也很随意,所以如果不借 ...

  5. Web前端开发最佳实践(7):使用合理的技术方案来构建小图标

    大家都对网站上使用的小图标肯定都不陌生,这些小图标作为网站内容的点缀,增加了网站的美观度,提高了用户体验,可是你有没有看过在这些网站中使用的图标都是用什么技术实现的?虽然大部分网站还是使用普通的图片实 ...

  6. Web前端开发最佳实践(1):前端开发概述

    引言 我从07年开始进入博客园,从最开始阅读别人的文章到自己开始尝试表达一些自己对技术的看法.可以说,博客园是我参与技术讨论的一个主要的平台.在这其间,随着接触技术的广度和深度的增加,也写了一些得到了 ...

  7. Web前端开发最佳实践(2):前端代码重构

    前言 代码重构是业内经常讨论的一个热门话题,重构指的是在不改变代码外部行为的情况下进行源代码修改,所以重构之前需要考虑的是重构后如何才能保证外部行为不改变.对于后端代码来说,可以通过大量的自动化测试来 ...

  8. Web前端开发最佳实践(4):在页面中添加必要的meta信息

    meta标签放置在HTML页面的head中,主要用于标识网站.其中基本上包含了网站的一些描述信息,例如,简介.作者等.这些信息有助于搜索引擎更准确地识别网页的内容,也有助于第三方工具抓取网站基本信息. ...

  9. Web前端开发最佳实践(5):正确闭合HTML标签,停止使用不标准的标签和属性

    正确闭合HTML标签 HTML元素的内容模型定义了元素的结构,表明元素可以包含哪些内容以及元素可以有哪些属性.元素可以包含的内容包括其他元素和字符,但是也有一些元素是空元素,即不能包含任何内容,这些元 ...

随机推荐

  1. jQuery静态方法globalEval使用和源码分析

    Eval函数大家都很熟悉,但是globalEval方法却很少使用,大多数参考手册也没有相关api,下面就对其用法和源码相应介绍: jQuery.globalEval()函数用于全局性地执行一段Java ...

  2. 3D Banner(jQuery)

    1.这是用面向对象的思想去动态生成banner的简易流程,用到一个javaScript框架jQuer: 2.将代码黏贴成html文件,直接用浏览器打开即可: 3.layer属于弹窗提示类插件,可能需要 ...

  3. Web API初探

    前几天有位同事说web api中的接口参数为对象的时候不好接收,具体什么方式我忘记了,虽然本人以前并没有接触过这方面的知识,但是据说和MVC差不多的,今天小小的研究一下,我想应该是可以的. 直接新建一 ...

  4. iOS开发-UI 从入门到精通(五)

    近日在做项目的时候,为了快捷适配屏幕采用了Storyboard,添加约束以后运行后发现一个问题(下面将以普通案例展示该问题);在4.7 甚至更大的屏幕下是没有问题的,如下图(4.7屏幕): 但是放到更 ...

  5. Linux0.11内核--加载可执行二进制文件之2.change_ldt

    前面分析完了copy_strings函数,这里来分析另一个注意的函数change_ldt. 先来看调用处: // 根据a_text 修改局部表中描述符基址和段限长,并将参数和环境空间页面放置在数据段末 ...

  6. iOS面试题总结 (三)

    22 键值编码KVC KVC全称key valued coding 键值编码 提到KVC,就不能不提反射机制,反射机制就是在运行状态中,对于任意一个类,都能够调用他的所有属性和方法,对于任意一个对象, ...

  7. iOS 用 SDWebImage 清理图片缓存

    效果图如下: 1.找到 SDWebImage找到SDImageCache类 2.添加如下方法 - (float)checkTmpSize { ; NSDirectoryEnumerator *file ...

  8. 解决idea中执行maven命令失败的问题

    1.问题描述 如上图所示,在使用idea 里的maven命令执行项目打包时,有时候会报如下一个错误. -Dmaven.multiModuleProjectDirectory system proper ...

  9. Microsoft IoT Starter Kit 开发初体验

    1. 引子 今年6月底,在上海举办的中国国际物联网大会上,微软中国面向中国物联网社区推出了Microsoft IoT Starter Kit ,并且免费开放1000套的申请.申请地址为:http:// ...

  10. (转载)SQL Reporting Services (Expression Examples)

    https://msdn.microsoft.com/en-us/library/ms157328(v=SQL.100).aspx Expressions are used frequently in ...