• 《HTML 5应用开发实践指南》读书笔记


    《HTML 5应用开发实践指南》这书不厚,大概110页,目前第一版(2013.3.29),有些地方翻译得不太通顺。在购书中心站了3个多小时看完,前面看得比较细,后面看得较快。将个人看法记录如下。

    整本书主要重点在于介绍HTML5的新功能,示例代码不多,但都是浓缩的精华,没有废话。阅读本书需要有编写JS的经验,否则难以看懂,作者没打算讲得很全面,要不然就不止100多页了。

    第一章只有几页,吹捧一下JS,当然,今天的JS确实迎来了辉煌的一页,我也认为JS算得上世界上最优美的语言之一。

    现在浏览器脚本引擎性能得到极大提升,足够让前端开发人员创建基于浏览器的富应用,并且是跨平台的。

    第二章写得很棒,介绍JS函数与对象扩展,作者在函数应用方面绝对是有很深的造诣。

    作者首先指出JS是基于事件驱动的,通过事件回调函数,得以实现非阻塞I/O。

    其次是,高阶函数的运用。函数可以作为参数被传递,也可以作为结果被返回,函数表达式(形如xxx=function的变量赋值形式)能够在需要的时候创建或更新函数,善于运用这种高阶函数,能让开发人员写更少更好更通用的代码,最终目的,就是偷懒。我常常说:不善于偷懒的程序猿,不是好程序猿。所以,这一章,值得深入研读。如果觉得有困难,可以去阅读《javascript模式》这本书,里面有更详细的函数模式介绍。

    接下来,介绍了原型及其应用,实际上,就是模拟类的继承。通过几个例子解释如何扩展一个对象(包括函数,实际上,JS世界里,到处都是对象)。

    后面还介绍了数组迭代的操作,比较实用,示例代码写得挺不错,重要的还是在于吸收其思想,为你所用。

    第三章讲JS的测试,这章没细看,测试是一个专门的行业,在学测试前,还是先把基本的搞定吧。最多也就学下单元测试,做集成测试,可以另外买书研究。

    单元测试,常用的是QUnit,用法比较简单,有兴趣的去官网看看。还有一个JSLint,书里也介绍了,代码质量检查,要写出健壮的代码,质量检查与测试是得力助手。也许一开始并不习惯,但养成习惯后就轻松多了。

    至于集成测试的,用到的是Selenium,通过模式用户操作来进行测试,这个比较复杂,写测试用例也更耗时,交给专门想搞测试的人去做吧。

    第四章本地存储,LocalStorage和SessionStorage,操作上并没什么困难,不过要补充一点,在修改storage内容时,会触发storage事件,之前一直不知道有这个事件,看了这书才知道。

    后面还介绍了对不同浏览器统一本地存储API的方案——一个jQuery插件jStorage

    第五章是本地数据库IndexedDB,已经写入标准了,很多浏览器都支持。原本以为这章可以给我普及下该数据库的知识,结果作者再次使用了一个jQuery插件,来介绍数据库的增删改查,没有原汁原味的示例代码,让我很失望。如果你正在寻找一个统一API来管理数据库,那建议细读这一章。

    第六章是文件系统处理,包括了一个完整的示例——拖拽文件-->上传文件-->显示进度条,这些是基于Ajax实现的,要注意跨域问题。另外还提到了文件数据的读取,但没说得很详细,点到为止。可能是因为浏览器安全权限一直不敢轻易放开的原因吧。

    第七章离线web应用,这一功能的实现归功于缓存机制和manifest清单文件,该清单文件用于指定三种类型的文件——被缓存的文件、不该缓存的文件、根据在线状态读取的文件(或文件目录)。另外还提出了一种判断文件是否更新的方案,不过需要服务端语言的支持,其方法是对文件清单里的文件进行md5计算,然后用注释方式(井号#开头表示注释)写入清单,随后是通过比对md5值来判断是否需要通知客户端更新文件。

    后面介绍了清单文件的调试,具体内容忘了,好像是通过设置请求头来处理。现在知道清单文件有方法来调试就行了,用到的时候再查吧。

    第八章是Web Worker,让JS变成多线程的好东西,必学啊!书里也提供了示例代码。

    Web Worker比较特殊,是放在独立的JS文件里的,与主JS文件是通过事件回调交互的。

    主JS文件先创建一个worker线程,指定worker的js文件。然后通过postMessage发送消息。

    worker轮询监听消息,接收到消息时触发onMessage事件,执行回调,同样通过postMessage返回信息到主JS文件,主JS文件同样注册onMessage事件,接收worker返回的信息,执行对应回调函数。

    worker可以同时存在很多个,互不影响。

    最后提到一个web worker 库,忘了名称了,惭愧。下次记得的话补上。

    第九章web socket。如果说worker是客户端内部的交互,那web socket则是客户端与服务端的交互了。

    web socket采用socket协议,使用ws://形式发起请求,端口与http的一样,如果是加密的,则是wws://,端口443。书里有个示例可以看看,如何发起一个请求,然后服务器定时返回数据,直到客户端关闭请求。

    另外介绍了服务器创建socket连接的方式,目前大部分服务器都支持。特别的,书里提供了一段Nodejs创建socket连接的示例代码,看到了吧,JS自己就可以把事情搞定,自给自足。

    第十章很简略,大概十页,简单说了下无障碍访问(主要是视力问题方面的)、HTML5新标签、新表单类型、画布和SVG(SVG很早就有了)、地理位置、新的CSS3标准。一笔带过。

    最后的附录A,作者打广告了,推荐了些javascript工具,有些在书里面已经提到过了,都是些好工具,不过这也得先把基础的搞定先吧。感谢作者好意了。

    全书的内容基本就这些,3个多小时看完,¥49元,按小时计费啊!

    忘了封底了,介绍封面的鸟,叫风暴海燕,貌似很厉害的名字,有兴趣百度下吧。

    本文地址:http://www.cnblogs.com/linerz/archive/2013/05/12/3074772.html 如有转载,请保留。

    Thinking like a robot
  • 相关阅读:
    react父子组件之间传值
    MVC、MVP、MVVM模式的概念与区别
    exports、module.exports 和 export、export default
    进程与线程以及它们的区别
    axios详解
    箭头函数详解
    ES6扩展运算符...
    vue子组件数据跟着父组件改变
    JS实现千分位
    在.NET Core使用TimeZone将客户端时间转服务器本地时间但编译提示已过期
  • 原文地址:https://www.cnblogs.com/linerz/p/3074772.html
Copyright © 2020-2023  润新知