《疯狂JavaScript讲义》—略读

  三年前大学因为学Java的时候接触了疯狂讲义系列书籍,觉得还不错,所以接着买了《疯狂JavaScript讲义》这本书,用来学习前端知识,当时一些简单的前端知识也是从这本书学来的。介绍了HTML5的全部标签和CSS3的大部分常用选择器和属性,学完还可以当成工具书查阅;还介绍了JavaScript基础编程的内容,附带实例开发讲解“俄罗斯方块”,虽然有光盘,但是当时自学的时候没有使用。

  总的来说适合前端入门,需要了解前端基础的也可以阅读。因为现在从事测试,所以也不是那么需要这本书了,在送人之前,又翻阅了一下JavaScript基础编程的内容,补充学习一下。

  1、JavaScript简介:嵌入web页面中的解释性语言,无需编译,由浏览器解释执行,可动态修改HTML内容。

  2、DOM编程简介:文档对象模型(Document Object Model,简称DOM),W3C制定的标准接口规范,是一种处理HTML和XML文件的标准API。DOM提供了访问结构化文档的一种方式,但是DOM并不是一种技术,只是访问结构化文档的一种思想。基于这种思想,各种语言都有自己的DOM解析器。HTML文档被解析后,转化为DOM树,通过DOM模型动态改变HTML内容。

  3、本地存储于离线应用:离线应用可以显式地控制浏览器缓存哪些资源,这样即使浏览器处于离线状态,依然可以使用本应用;现在还提供了web storage的本地存储支持,当浏览器处于离线状态,无法把数据提交给远程服务器时,本地存储可以把用户提交的数据存储在本地,当浏览器下一次处于联网状态时,程序可以把存储在本地的数据集中提交给远程服务器。

①存储少量数据;cookie:大小限制4KB;包含在每个HTTP请求中向服务器发送,势必导致多次重复发送;网络传输并未加密(除非整个应用都使用SSL),可能存在安全隐患。

②Session Storage保存的数据生存期限与用户Session期限相同,用户Session结束,Session Storage保存的数据也就丢失了。

③Local Storage:保存在用户磁盘的web storage。保存周期很长,除非用户或程序显式地清除这些数据,否则会一直存在。

  4、存储结构化数据:除了简单的字符串,还需要存储更复杂的数据。存储结构化数据步骤:

  ①把结构化数据封装成JSON对象

  ②把JSON对象转换成字符串后进行保存

  读取数据时:

  ①读取JSON格式字符串

  ②把JSON格式字符串转化成JSON对象

  ③通过JSON对象的属性来提取数据

  5、离线应用于浏览器缓存的区别

  ①服务范围不同:离线应用控制对整个Web应用进行缓存。离线应用提供的是一种不在线的网站服务功能;而浏览器只单纯地缓存网页。

  ②可靠性不同:离线应用可以精确地控制浏览器需要缓存哪些资源,是可靠的;但浏览器缓存完全依赖浏览器行为,有不可靠性。

  ③可控制性不同:离线应用可准确地控制缓存哪些资源,并可控制刷新缓存;但浏览器缓存依赖浏览器行为,无法控制缓存行为。

  6、worker创建多线程

  ①worker子线程的用法简单、方便,开发者只要传入一个JavaScript脚本的URL,创建一个Worker对象,浏览器就会启动一条线程来执行这段JavaScript脚本。

  ②使用Worker创建的多线程执行时有一个限制,Worker启动的多线程不允许使用DOM API,换句话来说,Worker启动的多线程不能直接更新前台HTML页面。

  ③当前台JavaScript脚本中启动了两条worker线程之后,两条Worker线程之间并不能直接交换数据,它们只能把需要交换的的数据传给前台JavaScript脚本来实现交换。

  7、客户端通信

  WebSocket则是一个革命性的技术,对于实时性要求比较高的应用,通过webSocket可以让服务器向浏览器主动推送数据,而不需要浏览器向服务器发送请求。

  ①方案一:周期性发送请求:频繁请求方式保持连接,但会带来很多无畏的传输,是一种非常低效的实时方案。

  ②方案二:隐藏的连接:隐藏窗口与服务器建立长连接。这种机制在并发量大的情况下,会加重服务端的负担。

  8、跨文档通信用于解决不同窗口里HTML文档的通信问题。postMessage()、onmessage()。

猜你喜欢

转载自www.cnblogs.com/cyanlee/p/11907692.html