progress 在传送数据的过程中会定期触发,用于返回传送数据的进度信息。在progress事件的处理函数中可以使用该事件的属性计算并显示传送数据的百分比。progress事件的属性如下: ? lengthComputable,布尔值,表明是否可以计算传送数据的长度。如果lengthComputable等于True,则可以计算传送数据的百分比;否则,就不用计算了 ? loaded,已经传送的数据量 ? total,需要传送的总数据量 load abort error loadstart 传送数据成功完成 传送数据被中断 传送过程中出现错误 开始传送数据
4.答 事 件 open message close 具 体 描 述 建立WebSocket连接时触发 当收到消息时触发 当WebSocket连接关闭时触发 onopen onmessage onclose 处 理 函 数
第10章 本地存储
一、选择题
1.C 2.B 3.D 4.A 5.C
二、填空题
1.Cookie;Session 3.window.localStorage 5.storage
2.NoSQL
4.removeItem()
三、问答题
1.答:
Cookie(小甜饼)有时也用其复数形式Cookies,指存储在用户本地上的少量数据,最经典的Cookie应用就是记录登录用户名和密码,这样下次访问时就不需要输入自己的用户名和密码了。
也有一些高级的Cookie应用,例如在网上商城查阅商品时,该商城应用程序就可以记录用户兴趣和浏览记录的Cookies。在下次访问时,网站根据情况对显示的内容进行调整,将用户所感兴趣的内容放在前列。
每个Web站点都可以在用户的机器上存放Cookie,并可以在需要时重新获取Cookie数
据。通常Web站点都有一个Cookie文件。Cookie的工作原理如图10-1所示。
用户每次访问站点A之前都会查找站点A的Cookie文件,如果存在,则从中读取用户名和密码“键-值”对数据。如果找到用户名和密码“键-值”对数据,则将其与访问请求一起发送到站点A。站点A在收到访问请求时如果也收到了用户名和密码“键-值”对数据,则使用用户名和密码数据登录,这样用户就不需要输入用户名和密码了。如果没有收到了用户名和密码“键-值”对数据,则说明该用户之前没有成功登录过,此时站点A返回登录页面给用户。
图10-1 Cookie的工作原理
2.答:
Cookie存在如下缺陷:
? Cookie的数据大小是由限制的,大多数浏览器只支持最大为 4096 字节的 Cookie。有时不能满足需求。
? 客户端可以禁用或清空Cookie,从而影响程序的功能。
? 当多人共用一台计算机时使用Cookie可能会泄露用户隐私,带来安全问题。
3.答:
Session可以保持网站服务器和网站访问者的交流,访问者可以将数据保存在网站服务器中。为了区分不同的访问者,网站服务器为每个网站访问者都分配一个会话编号SID,一个访问者在Session中保存的所有数据都与他的SID相关联。在访问者打开的所有页面中,都可以通过SID设置和获取Session数据,因此通过Session可以实现个页面间的数据共享。例如,用户在任意一个页面登录后,都可以将登录标记和登录用户名保存在Session变量中。这样在其他页面中就可以获知用户已经登录了,从而避免重复登录。Session的工作原理如图10-2所示。
图10-3 Session的工作原理
4.答:
NoSQL是新一代的数据库,NoSQL有non-relational和Not Only SQL的意思,具有非关系型、高效、分布式、开放源代码等特点。对于已经熟悉SQL Server等关系型数据库的读者而言,接受NoSQL数据库还需要有一个过程。Nam为什么要提出NoSQL的概念呢?因为传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型(社交网络)的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题。例如,对数据库高并发读写的需求、对海量数据的高效率存储和访问的需求、对数据库的高可扩展性和高可用性的需求等。所以,关系数据库在很多情况下显得不太合适了。NoSQL 是非关系型数据存储的广义定义,它打破了关系型数据库的垄断局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。NoSQL的概念在 2009年初得到了广泛认同。
第11章 开发支持离线的Web应用程序
一、选择题
1.B 2.C
二、填空题
1.Manifest
2.window.applicationCache.update()
3.Online;offline
三、简答题
1.答
传统Web应用程序只需要部署在Web服务器上即可,应用程序可以是HTML(HTM)文件或ASP、PHP等脚本文件。Web浏览器的主要功能如下:
? 由用户向指定的Web服务器(网站)申请服务。申请服务时需要指定Web服务器的域名或IP地址以及要浏览的HTML(HTM)文件或ASP、PHP等脚本文件。如果使用ASP作为开发语言,则Web服务器只能使用Windows;如果使用PHP作为开发语言,则Web
服务器可以选择使用Windows或Unix、Linux等多种平台。
? 从Web服务器下载申请的HTML(HTM)文件。
? 解析并显示HTML(HTM)文件,用户可以通过Web浏览器申请指定的Web服务器
? Web浏览器和Web服务器使用HTTP协议进行通信。
2.答
离线Web应用程序可以在无法连接Web服务器时运行,它的工作原理如下: ? 当访问一个支持离线Web应用程序网站时,该网站将会告诉浏览器离线Web应用程序所使用的所有文件。
? 浏览器将Web应用程序所使用的所有文件下载到本地。
? 当支持离线Web应用程序的网站不在线时,浏览器就会访问下载到本地文件,从而运行离线Web应用程序。
例如在离线Web应用程序中,用户可以在不连接Web服务器的情况下,编辑一个较长的文章,并将其保存在本地,待下次连接Web服务器时再提交文章。
3.答
开发离线Web应用程序通常需要完成的下面几项工作:
(1)离线资源缓存。首先需要了解Web应用程序离线工作时所需的资源文件。这样就可以在在线状态时,把这些文件缓存到本地。以后,如果浏览器无法连接Web服务器,则可以自动加载这些资源文件,从而实现离线访问应用程序。在HTML5 中,通过 cache manifest 文件指明需要缓存的资源,具体情况将在11.2.2小节中介绍。
(2)检测在线状态。在支持离线的Web应用程序中,浏览器应该知道在线或离线的状态,并做出对应的处理,具体情况将在11.2.4小节中介绍。
(3)本地数据存储。在离线时,Web应用程序需要能够把数据存储到本地,以便以后在线时可以同步到Web服务器上。关于本地数据存储的具体情况已经在第10章中做过介绍,请参照理解。
第12章 获取浏览器的地理位置信息
一、选择题
1.A 2.C
二、填空题
1.navigator.geolocation
2.clearWatch();watchPosition()
三、简答题
1.答
位置信息的通常来源包括: ? GPS(全球定位系统),这种方式可以提供很精确的定位,但需要专门的硬件设备,定位效率也不高。
? IP地址,多用于计算机设备,定位并不准确。
? RFID(Radio Frequency Identification,无线射频标签)。可以通过读卡器的信号、报文到达时间或定位器等等数据确定标签的位置。
?WiFi,无线上网时,可以通过WiFi热点(AP或无线路由器)来定位客户端设备。 ? GSM/CDMA小区标识码,可以根据手机用户的基站数据定位手机设备。 ? 用户输入,除了以上方法外,还可以允许用户自定义位置信息。
2.答
安装下面操作系统的手机设备也支持获取地理位置信息: ? Android 2.0+ ? iPhone 3.0+
? Opera Mobile 10.1+
? Symbian (S60 3rd & 5th generation) ? Blackberry OS 6 ? Maemo
第13章 支持多线程编程的Web Workers
一、选择题
1.A 2.C
二、填空题
1.专用线程(dedicated worker);共享线程(Shared Worker) 2.typeof(Worker) 3.端口(port)
三、简答题
1.答
? 进程通常可用独立运行,而线程则是进程的子集,只能在进程运行的基础上运行。 ? 进程拥有独立的私有内存空间,一个进程不能访问其他进程的内存空间;而一个进程中的线程则可以共享内存空间。
? 进程之间只能通过系统提供的进程间通信的机制进行通信;而线程间的通信则简单得多。