书名:《HTML5应用开发实践指南》
英文名:《Programming HTML5 Applications》
作者:Zachary Kessin
译者:陈升想 / 汪奋进
12bet,函数式编程依赖于一些基本假设: 12bet,函数是该语言的“一等公民”,并可以在任何能使用其他值的地方使用它。可以通过组合简单的函数构建复杂的行为。 函数有返回值,在多数情况下,对于同样的输入给定函数总是返回相同的值。
当应用函数式编程时,程序员往往形成一种工作模式,使用许多非常小的函数,每个函数往往只用两三行代码来完成一个目标。这是一种很好的设计技术,因为通常很短的函数更容易保证正确性,测试也更容易。
12bet,函数式编程的一个非常强大的模型是高阶函数。高阶函数用一个函数作为参数抽象出特定的行为,而将通用行为留在外层函数中。
12博体育,柯里化是指将几个参数组合成一个单一对象的做法,这样就可以把它们作为一个参数传递给函数
12博体育,柯里化参数的最简单方法是创建一个函数,用它接收参数块,并返回一个函数,返回的函数将以预先提供的默认参数调用原函数
JavaScript程序由于更加关注用户界面而变得更加复杂,因为可能的用户输入行为序列变得非常庞大。所以需要测试的数目就非常大,甚至开发者都不能想到所有的情况。
cookie遇到许多问题。首先,每个cookie随着每个请求来回发送。因此,浏览器为每个JavaScript文件、图片、Ajax请求等发送cookie。这会无缘无故地增加大量的带宽使用。其次,试图创建的cookie规范,使不同的子域之间可以共享一个cookie。
localStorage和sessionStorage对象
Cookies受到了一定的限制:Cookies的大小只限于约4KB,必须通过每个Ajax请求传送到服务器,大大提高了网络流量。浏览器的localStorage大方多了。HTML 5规范中没有对大小列出确切的限制,但大多数的浏览器为每个Web主机作了5MB左右的限制。
IndexedDB是一种NoSQL数据库
与localStorage一样,IndexedDB有着严格的同源策略。因此页面创建的数据库不能被其他主机上的网页访问。
与IndexedDB的交互必须通过事务的方式实现。
如果一个blob包含需要加载的数据,即使是一个网址,它可以经过变换,通过createObjectURL()方法作为URL使用。
当它是一个URL时,手动释放是非常重要的,因为JavaScript无法确定什么时候回收该对象。
Web Worker不同于Java或Python中的线程,设计的一个关键方面是:没有共享的状态。Worker和主要的JavaScript实例只能通过传递消息进行通信。
Web Socket在浏览器和服务器之间使用TCP套接字而不是一个HTTP封套进行数据传送。