当前位置: 首页 > 编程日记 > 正文

《JavaScript编程实战》

《JavaScript编程实战》

基本信息

原书名:JavaScript programming: pushing the limits

作者: (美)Jon Raasch   

译者: 吴海星

丛书名: 图灵程序设计丛书

出版社:人民邮电出版社

ISBN:9787115345486

上架时间:2014-3-5

出版日期:2014 年3月

开本:16开

页码:1

版次:1-1

所属分类:计算机 > 软件与程序设计 > 网络编程 > javascript

 

更多关于》》》《JavaScript编程实战》

 

编辑推荐 

    遵循最佳实践,从头构建实际应用。

  深入解析不可多得的JavaScript高级主题。

  为你构建21世纪的杀手级应用贡献一臂之力

  广:涵盖内容广泛,包括如何构建backbone应用、JavaScript模板的重要性、Node.js和MongoDB、使用WebGL/Three.js库渲染3D图形,以及如何将桌面应用转换为专门的移动端应用,等等。

  深:对一些JavaScript相关的高级主题进行深入解析,这些主题是你在其他JS开发的书中通常难以找到的。

  全:除了详细讲解的内容,每章最后还提供了丰富的补充资源,以供读者学习参考。

 

内容简介

    书籍

    计算机书籍

  《javascript编程实战》深入探讨了如何基于javascript 技术从头开始创建真实的应用,共分为四个部分。第一部分介绍了最佳实践以及库、框架与插件,为构建应用奠定坚实的基础。第二部分讨论了前端的构建,包括backbone.js、javascript 模板,以及表单处理和校验的相关内容。第三部分涉及如何用node.js 编写服务器端javascript。最后一部分挑战程序的功能极限,介绍了如何构建实时应用程序、调整移动领域的web 程序、javascript 图形处理技术等内容。

  《javascript编程实战》适合所有熟悉javascript 并希望提升相关技术水平的开发人员和设计人员学习参考。

 

目录

《javascript编程实战》

第一部分 坚实的基础

第1章 最佳实践  2

1.1  松耦合  2

1.1.1  紧耦合的问题  2

1.1.2  松耦合的优势  3

1.2  javascript mvc和模板  3

1.2.1  mvc  3

1.2.2  模板  5

1.3  开发工具  6

1.3.1  webkit开发人员工具  6

1.3.2  weinre  10

1.3.3  版本控制  12

1.3.4  css预处理  12

1.4  测试  12

1.4.1  使用grunt  13

1.4.2  使用qunit  17

1.5  小结  20

1.6  补充资源  21

第2章 库、框架与插件  22

2.1  选择恰当的javascript库  22

2.1.1  jquery  22

2.1.2  zepto  24

2.1.3  普通的dom  25

2.2  使用框架  27

2.2.1  bootstrap  27

2.2.2  jquery ui  28

2.2.3  移动框架  28

2.3  其他脚本  28

2.3.1  modernizr  28

2.3.2  html5 shiv  29

2.4  html5样板  29

2.5  寻找jquery插件  30

2.5.1  去哪里(以及不要去哪里)找  30

2.5.2  要找什么——一个十项检查列表  30

2.6  小结  32

2.7  补充资源  32

第二部分 构建前端

第3章 backbone.js  36

3.1  初识backbone  36

3.1.1  backbone是什么  36

3.1.2  为什么要用backbone  36

3.1.3  backbone基础  37

3.1.4  什么时候用backbone  37

3.1.5  设置backbone  38

3.2  backbone中的模型  38

3.2.1  创建一个模型  39

3.2.2  创建计算属性  39

3.2.3  设置默认值  39

3.2.4  使用初始化函数  40

3.2.5  使用backbone事件  40

3.2.6  模型的校验  41

3.3  使用backbone中的集合  42

3.3.1  创建集合  42

3.3.2  创建集合事件  43

3.4  理解backbone视图  43

3.4.1  创建视图  44

3.4.2  使用渲染函数  44

3.4.3  使用backbone中的视图元素  46

3.4.4  使用嵌套视图  49

3.5  数据的保存及获取  55

3.5.1  与服务器上的模型同步  55

3.5.2  在backbone中使用localstorage api  58

3.5.3  把集合保存在服务器上  59

3.5.4  使用backbone.sync  65

3.6  使用路由控制器  66

3.6.1  路由如何使用  66

3.6.2  设置路由控制器  67

3.6.3  pushstate与hashchange  69

3.7  再谈事件  70

3.7.1  事件解绑定  71

3.7.2  手动触发事件  71

3.7.3  绑定“this”  71

3.7.4  all事件  72

3.8  操作集合  73

3.8.1  取出集合中的条目  73

3.8.2  集合排序  74

3.9  小结  76

3.10  补充资源  77

第4章 使用javascript模板  78

4.1  认识模板  78

4.1.1  为什么使用模板  78

4.1.2  了解不同的模板库  79

4.1.3  做出正确的选择  80

4.2  使用underscore模板  81

4.2.1  underscore模板基础知识  81

4.2.2  重温模板的最佳实践  83

4.2.3  在模板中使用javascript  85

4.3  在backbone中使用模板  88

4.3.1  不用模板设置模型和视图  88

4.3.2  用模板渲染视图  89

4.4  小结  92

4.5  补充资源  92

第5章 创建表单  93

5.1  理解渐进式增强  93

5.1.1  渐进式增强方式  93

5.1.2  为什么要渐进式增强  94

5.1.3  决定支持哪个环境  94

5.2  让html5替你工作  95

5.2.1  html5的输入控件类型  95

5.2.2  交互特性  102

5.3  给老浏览器用polyfill  104

5.3.1  寻找第三方polyfill  105

5.3.2  编写自己的polyfill  105

5.4  连接rest api  112

5.4.1  提交表单  113

5.4.2  构建通用函数  114

5.5  backbone中的表单  115

5.5.1  设置表单模型  115

5.5.2  设置表单视图  116

5.5.3  将表单域保存到模型中  117

5.5.4  添加校验  118

5.5.5  清理模板  123

5.5.6  必填项  124

5.5.7  提交表单  126

5.5.8  合并代码  128

5.6  小结  132

5.7  补充资源  132

第三部分 编写服务器端javascript

第6章 node.js简介  136

6.1  为什么是node  136

6.1.1  在实时程序中使用node  136

6.1.2  node的工作机制  137

6.2  安装node  138

6.2.1  在mac/linux上安装  138

6.2.2  在windows上安装  139

6.2.3  检查安装情况  140

6.3  node入门  140

6.3.1  创建服务器  140

6.3.2  添加内容  141

6.3.3  打包  141

6.3.4  运行脚本  142

6.3.5  简化脚本  143

6.3.6  使用node repl  143

6.4  node模块  145

6.4.1  引入模块  145

6.4.2  外部模块和npm  146

6.4.3  寻找模块  147

6.5  node 模式  148

6.5.1  模块和全局变量  148

6.5.2  异步模式  152

6.5.3  事件  154

6.5.4  子进程  155

6.6  小结  158

6.7  补充资源  158

第7章 express框架  160

7.1  express入门  160

7.1.1  安装express  160

7.1.2  创建express程序  160

7.2  设置路由  161

7.2.1  已有路由  162

7.2.2  创建新的路由  163

7.2.3  post、put和delete  163

7.3  渲染视图  164

7.3.1  启用underscore模板  164

7.3.2  创建视图  166

7.4  处理表单数据  172

7.4.1  创建post路由  172

7.4.2  将反馈发给模板  173

7.5  发封邮件  178

7.5.1  连到smtp服务器上  178

7.5.2  构建email消息  179

7.5.3  发送邮件  179

7.5.4  在结束之前  180

7.6  小结  182

7.7  补充资源  182

第8章 mongodb  184

8.1  nosql数据库有什么好处  184

8.1.1  扩展能力  184

8.1.2  简单性  184

8.2  mongodb入门  185

8.2.1  安装mongodb  185

8.2.2  运行mongodb  186

8.2.3  安装mongodb模块  187

8.2.4  创建数据库  187

8.3  mongodb中的crud  188

8.3.1  创建集合  188

8.3.2  读取数据  190

8.3.3  更新数据  194

8.3.4  删除数据  196

8.4  mongoose  197

8.4.1  mongoose入门  197

8.4.2  创建模型  198

8.4.3  读取数据  200

8.5  数据库上的其他选择  204

8.6  小结  204

8.7  补充资源  204

第四部分 挑战极限

第9章 用websockets构建实时程序  208

9.1  websockets的工作机制  208

9.1.1  轮询的问题  208

9.1.2  websockets方案  209

9.2  socket.io入门  210

9.2.1  服务器上的socket.io  210

9.2.2  客户端的socket.io  211

9.3  构建实时的聊天室  212

9.3.1  创建聊天室视图  212

9.3.2  将消息提交给服务器  214

9.3.3  在服务器端处理消息  215

9.3.4  在客户端显示新消息  216

9.3.5  添加backbone.js结构  217

9.3.6  添加用户  223

9.3.7  添加时间戳  225

9.3.8  保存到mongodb中  227

9.3.9  合并代码  229

9.4  小结  233

9.5  补充资源  234

第10章 进入移动领域  235

10.1  搭建移动app  235

10.1.1  检测移动终端  235

10.1.2  设置移动端网站的样式  237

10.1.3  移动端框架  238

10.2  集成触屏  238

10.2.1  基本触摸事件  239

10.2.2  复杂的触摸手势  239

10.3  geolocation  248

10.3.1  找到用户的位置  248

10.3.2  连接google地图  249

10.3.3  追踪geolocation的变化  251

10.4  电话号码和短信  251

10.4.1  静态的电话号码和sms链接  251

10.4.2  用javascript拨打电话和发送短信  252

10.5  phonegap  252

10.5.1  phonegap的优与劣  253

10.5.2  phonegap入门  254

10.5.3  连接相机  254

10.5.4  连接通讯录  254

10.5.5  其他api  255

10.6  小结  255

10.7  补充资源  255

第11章 javascript图形  257

11.1  画布基础  257

11.1.1  画出基本的形状  258

11.1.2  让画布动起来  260

11.1.3  画布中的鼠标事件  261

11.2  svg基础  261

11.2.1  让svg动起来  262

11.2.2  svg鼠标事件  262

11.2.3  编码svg  263

11.3  rapha?l.js  263

11.3.1  作画路径  264

11.3.2  画曲线  265

11.3.3  样式  266

11.3.4  动画  268

11.3.5  鼠标事件  269

11.4  用grapha?l做图表  270

11.4.1  饼图  270

11.4.2  柱状图  271

11.4.3  折线图  273

11.5  带webgl的3d画布  276

11.5.1  three.js简介  276

11.5.2  创建图像纹理  280

11.5.3  3d动画  281

11.5.4  添加鼠标事件  282

11.5.5  使用备选的2d画布  283

11.6  css中的3d变换  284

11.7  小结  286

11.8  补充资源  286

第12章 推出你的程序  288

12.1  性能检查表  288

12.1.1  重点在哪  288

12.1.2  资源管理  290

12.1.3  动画优化  291

12.1.4  少做为妙  295

12.1.5  规避回流  295

12.2  部署  296

12.2.1  把静态资源部署在cdn上  296

12.2.2  把node服务部署在ec2上  297

12.3  推出  297

12.4  补充资源  297

附录a  用less做css预处理  299

a.1  less简介  299

a.1.1  预处理的好处  299

a.1.2  安装less编译器  300

a.1.3  在服务器上编译  300

a.2  less的基础知识  300

a.2.1  变量  300

a.2.2  操作符  301

a.2.3  嵌套  302

a.3  函数和mixin  304

a.3.1  函数  304

a.3.2  mixin  305

a.4  文件结构  306

a.4.1  使用import  306

a.4.2  文件结构示例  306

a.4.3  定制结构  307

a.5  小结  307

a.6  补充资源  307

 

本图书信息来源:互动出版

 

相关文章:

再识C中的结构体

在前面认识C中的结构体中我介绍了结构体的基础知识&#xff0c;下面通过这段代码来回顾一下&#xff1a; 1 #include<stdio.h>2 #define LEN 203 4 struct Student{ //定义结构体5 char name[LEN];6 char address[LEN];7 int age;8 };9 10 int m…

《妙解Hibernate 3.X》读书笔记一-Hibernate概述及环境搭建

很早就想开始Hibernate的系统学习&#xff0c;但是一是工作原因&#xff0c;二是苦于找不到合适的书籍。Hibernate更新较快&#xff0c;一些被称为经典的书籍&#xff0c;如<深入浅出Hibernate>、《Hibernate实战》等都过于年老&#xff0c;介绍的为Hibernate2.1&#xf…

ssm框架实现学生成绩管理系统

学习ssm框架&#xff0c;写的一个小项目&#xff0c;参考 实现的功能有&#xff1a;学生信息增删改查&#xff0c;成绩信息查询&#xff0c;修改&#xff0c;求平均值&#xff0c; 附上链接&#xff0c;欢迎下载 git clone https://gitee.com/LOL_toulan/SpringBootProject.gi…

如何查找特定目录下最大的文件及文件夹

如何查看特定目录下大小在前10位的文件 find 目录 -ls |sort -nrk7 |head 参数说明如下&#xff1a; -ls True; list current file in ls -dils format on standard output. 没加-ls之前&#xff0c;输出的只是文件名&#xff0c;类似于 /u01/app/oracle/oradata/test/…

LightOJ 1364 Expected Cards(概率+DP)

题目链接&#xff1a;http://lightoj.com/volume_showproblem.php?problem1364 题意&#xff1a;一副牌。依次在桌面上放牌。求放了四种花色的牌为C,D,H,S张时放的牌数的期望。大小王出现时必须将其指定为某种花色。指定时要使最后的期望最小。 思路&#xff1a;DP&#xff0c…

会计科目中英文对照表

现金 Cash in hand 银行存款 Cash in bank 其他货币资金-外埠存款Other monetary assets - cash in other cities 其他货币资金-银行本票 Other monetary assets - cashier‘s check 其他货币资金-银行汇票 Other monetary assets - bank draft 其他货币资金-信用卡 Other…

关于get和post两种提交方式

Get请求&#xff1a; 1.可携带的数据量小 2.只能存放字符串类型的数据&#xff0c;不能存放bean对象 3.安全性差&#xff0c;例如如果在登录上使用get请求&#xff0c;在地址栏中会显 示输入的username和password 4.客户端在接收到get请求后&#xff0c;浏览器会自动的缓存响应…

数据库原理与设计 P75作业 学号2013211466 班级0401302

习题5 2. (1)写出关系模式&#xff1a; 学生:R1 U1{学号,姓名,出生日期,系名,班号,宿舍区}; F1{学号->(姓名,出生日期,系名,班号,宿舍区)&#xff0c;班号->系名&#xff0c;系名->宿舍区}&#xff1b; 班级:R2 U2{班号,专业名,系名,人数,入校年份}; F2{班号->(专业…

Windows DDK介绍,选择和安装

windows的文档工作还是非常不错的&#xff0c;所有的信息都可以从windows DDK主页和DDK自带的帮助文档中获得&#xff0c;本文只是一个总结。 今天开始正式接触DDK&#xff0c;首先来到DDK主页&#xff0c;有如下信息有用&#xff1a; 1. 选择安装什么版本的DDK。目前DDK的推荐…

关于jsp基础知识题目(一)

1.为了标识一个HTML文件&#xff0c;应该使用标记 html 2.form表单中提交数据的目的地址的属性是 action 3.关于post&#xff1a;安全性较好&#xff0c;地址栏看不到提交的数据&#xff0c;超链接标识post提交方式&#xff0c;可以传输大量数据 4.表单的提交方式有 2 种 5…

GO环境变量设置

GOROOT就是go的安装路径在~/.bash_profile中添加下面语句: GOROOT/usr/local/go export GOROOT 当然, 要执行go命令和go工具, 就要配置go的可执行文件的路径:操作如下:在~/.bash_profile中配置如下:export $PATH:$GOROOT/bin如果是windows需要使用;符号分割两个路径, mac和类un…

Camera+销量突破200万 创始人分享成功经验

Camera 突破了200万份销量大关&#xff0c;开发商tap tap tap分享了成功经验。 创始人John Casasanta指出&#xff0c;他们花了6个多月实现销量突破100万大关&#xff0c;而接下来3个月就销售了200万份&#xff0c;照这个趋势下去&#xff0c;300万销售大关也许只需要1个半月。…

计算机组成原理习题(一)

1.计算机系统包括&#xff1a;硬件系统和软件系统 2.计算机的软件系统包括&#xff1a;系统软件和应用软件 3.冯诺依曼计算机的核心思想是&#xff1a;存储程序 4.计算机的五大功能部件&#xff1a;运算器&#xff0c;控制器&#xff0c;存储器&#xff0c;输入设备&#xf…

HTML中常见的各种位置距离以及dom中的坐标讨论

最近在学习JavaScript&#xff0c;特意买了一本犀牛角书来看看&#xff0c;尼玛一千多页&#xff0c;看的我头昏脑涨&#xff0c;翻到DOM这章节&#xff0c;突然记起平常在使用DOM时&#xff0c;碰到了好多的这个dom里面的各种宽度&#xff0c;高度&#xff0c;特意在此写一写&…

快速掌握Python的捷径-Python基础前传(1)

文&#xff1a; jacky(朱元禄) 开文序 最近看新闻&#xff0c;发现高考都考Python了&#xff0c;随着人工智能的火热&#xff0c;学数据科学的人越来越多了&#xff01;但对于数据行业本身来说&#xff0c;现象级的火热&#xff0c;这并不是什么好事。 方丈高楼平地起&#xf…

jsp实现日历

在JSP程序中使用各种脚本元素和标签实现具体的功能 <%--Created by IntelliJ IDEA.User: asusDate: 2020/2/25Time: 21:39To change this template use File | Settings | File Templates. --%> <% page contentType"text/html;charsetUTF-8" language&quo…

小胖妞洗发水广告

觉得自己的博客可能太严肃了&#xff0c;都是技术文章&#xff0c;书评&#xff0c;鸡汤呀&#xff0c;来点稍微轻松点。虽然自己都不敢直视一年前的小胖妞跳的舞蹈&#xff0c;不过现在更胖。 权且娱乐下&#xff0c;也当留个纪念~ http://v.youku.com/v_show/id_228708395.ht…

Yii2.0 RESTful API 之版本控制

Yii2.0 RESTful API 之版本控制 之前我写过两篇关于 Yii2.0 RESTful API 如何搭建&#xff0c;以及 认证 等处理&#xff0c;但是没有涉及到版本管理&#xff0c;今天就来谈谈版本管理如何实现。 索性就从头开始一步一步搭建吧&#xff0c;但是关于一些概念以及使用本篇就不一一…

ssl 和 https

SSL (Secure Socket Layer) 为Netscape所研发&#xff0c;用以保障在Internet上数据传输之安全&#xff0c;利用数据加密(Encryption)技术&#xff0c;可确保数据在网络上之传输过程中不会被截取及窃听。目前一般通用之规格为40 bit之安全标准&#xff0c;美国则已推出128 bit之…

jsp实现日历(二)

<% page contentType"text/html;charsetUTF-8" language"java" %> <% page import"java.util.Calendar" %> <html> <head><title>日历</title><style>table{border: none;}table caption{color: red;…

Java微信公众平台开发(十)--微信自定义菜单的创建实现

转自&#xff1a;http://www.cuiyongzhi.com/post/48.html 自定义菜单这个功能在我们普通的编辑模式下是可以直接在后台编辑的&#xff0c;但是一旦我们进入开发模式之后我们的自定义菜单就需要自己用代码实现&#xff0c;所以对于刚开始接触的人来说可能存在一定的疑惑&#x…

【经典算法】快速排序

与归并排序一样&#xff0c;快速排序使用也使用了分治的思想。下面是对一个典型的子数组A[p,...,r]进行快速排序的三步分治过程&#xff1a; 分解&#xff1a;数组A[p,...,r]被划分成两个&#xff08;可能为空&#xff09;子数组A[P,...,q-1]和A[q1,...,r]&#xff0c;使得A[p,…

.Net 中如何测试静态方法

大部分Mokc框架是不支持mock静态方法的&#xff0c;那我们如何测试静态方法呢&#xff1f; 下面这个类包含了一个静态方法&#xff1a; public class MyHelper {public static string GetHelp(){return "This is help";} } 这个类调用了上面的Helper类中的静态方法 p…

计组--习题--总线

计算机使用总线结构的主要优点是便于实现积木化&#xff0c;缺点是______ A、 地址信息、数据信息和控制信息不能同时出现 B、 地址信息与数据信息不能同时出现 C、 两种信息源的代码在总线中不能同时传送 这里是引用 总线中地址线的作用是_______ A、 只用于选择存储器单元 B…

dispatch_queue_create(com.biostime.xxx, DISPATCH_QUEUE_SERIAL)的陷阱

代码 for(int i 0;i<10;i) { NSLog("i%d",i); dispatch_queue_t mySerialQueue dispatch_queue_create("com.biostime.xxx", DISPATCH_QUEUE_SERIAL); __block int d i; dispatch_async(mySerialQueue, ^{ …

详解Oracle安装与配置.

标签&#xff1a;Oracle 安装 配置 原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://enetq.blog.51cto.com/479739/316532 一.Oracle 简介. Oracle oracle是殷墟&#xff08;Yin Xu&#…

今天起,在广东可以用百度App一键报警!

今天&#xff0c;百度联合广东省公安厅上线了一款智能小程序&#xff1a;只要打开你手机里的百度 App 就能用了 &#xff01;在110实际接警的过程中&#xff0c;经常会遇到电话并不能很好地表达发生事件的地点等信息的情况&#xff0c;会耽误救援时间。因此&#xff0c;“广东1…

Spring 注解

1. Configuration Configuration用于定义配置类&#xff0c;可替换xml配置文件&#xff0c;被注解的类内部包含有一个或多个被Bean注解的方法&#xff0c;这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描&#xff0c;并用…

Junit的安装与使用

一、简介&#xff1a; JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立&#xff0c;逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。Junit测试是程…

安装 ssh 的公开密匙到 iPhone 上

1). 在Mac的终端上产生密匙 ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/xxxx/.ssh/id_rsa): Created directory /home/xxxx/.ssh. Enter passphrase (empty for no passphrase): xxx Enter same passphrase again…