【编辑推荐】

本书围绕目前广泛应用的Web应用程序开发技术,依“基础 → 进阶→拓展”逐层展开。去繁就简地带领读者掌握必要的基础知识之后,循序渐进地引入稍有难度但实用的知识,讨论实际项目开发中的做法,最后带领读者探索技术应用的更多可能性。
本书在内容编排上注重程序设计理念的塑造,从需求分析出发,厘清实现思路,最后再落脚到技术实现,读者不仅能熟悉编程思路,还能灵活地运用所学技术解决实际问题,启发读者在实践过程中的思考与探索。
本书在编写过程中安排了大量实用而有趣的案例,读者可在学习过程中同步上机实践,将知识转化为动手能力。全书程序源代码均通过严格测试,重点、难点部分配有视频讲解,可在线观看,有助于读者灵活机动学习。


【内容简介】

本书全面介绍Web应用程序的开发技术及实践方法。全书共17章,其中第1章简述Web应用程序的工作原理和基础知识,概要介绍全书内容和编排结构,此后章节分为客户端技术篇、服务端技术篇和技术拓展篇。 客户端技术篇包括第2~8章,着重介绍关于HTML、CSS、JavaScript、浏览器对象模型和文档对象模型的相关知识,同时也涉及Bootstrap和Vue.js框架的使用。 服务端技术篇包括第9~13章,主要介绍基于Node.js环境进行Web应用服务端程序开发的方法,也深入讨论了数据库交互、鉴权机制、服务端推送、应用部署等实践中常见的问题。 技术拓展篇包括第14~17章,其中,第14章介绍Vue.js单页面应用开发的方法,第15~17章进一步探索Web应用开发技术的更多应用领域,内容涉及移动端应用、微信小程序、桌面端应用的开发。 本书适合作为高等院校计算机类专业相关课程的教材,也可以作为读者自学Web相关开发技术的参考书。


【目录】

第1章概述1
1.1Web 应用程序工作原理2
1.2客户端技术3
1.3服务端技术4
1.4开发工具4
1.4.1Chrome4
1.4.2Visual Studio Code5
客户端技术篇
第2章HTML基础9
2.1HTML文档的基本结构9
2.2HTML元数据11
2.3HTML常用元素11
2.4字符实体13
2.5相对路径13
2.6综合示例——HTML常用元素14
2.7HTML表单元素16
2.8综合示例——表单元素18
2.9小结20
第3章CSS基础21
3.1CSS基本语法21
3.2引入外部样式表22
3.3CSS选择器22
3.3.1CSS基本选择器23
3.3.2CSS基本选择器的组合27
3.4样式声明优先级28
3.5常用CSS属性29
3.5.1颜色、方位与长度单位29
3.5.2盒模型31
3.5.3元素背景35
3.5.4文字样式36
3.5.5元素的显示模式38
3.5.6弹性框布局40
3.5.7网格布局45
3.5.8元素定位48
3.5.9元素浮动51
3.5.10元素的叠放层次53
3.5.11其他属性53
3.6综合示例55
3.6.1页面版块划分56
3.6.2编写代码56
3.7小结58
第4章CSS进阶59
4.1圆角效果59
4.2阴影效果60
4.3溢出61
4.4CSS自定义属性63
4.5calc()函数64
4.6伪元素64
4.7矢量图标65
4.8过渡与动画67
4.8.1过渡67
4.8.2动画68
4.9变换70
4.9.1旋转70
4.9.2缩放72
4.9.3倾斜73
4.9.4平移73
4.10综合示例——弹出式下拉菜单74
4.11响应式网页设计77
4.11.1一般编码建议79
4.11.2响应式图像80
4.11.3媒体查询83
4.12前端UI框架85
4.12.1Bootstrap 入门85
4.12.2Bootstrap 布局类样式88
4.12.3Bootstrap 基本元素样式89
4.12.4Bootstrap工具类样式90
4.12.5Bootstrap 组件92
4.12.6Bootstrap 图标库94
4.13CSS预处理器95
目录〖3〗第5章JavaScript基础98
5.1数据类型与数据声明100
5.1.1基本数据类型100
5.1.2数据声明101
5.1.3常用引用类型103
5.2基本类型与引用类型105
5.3基本运算与操作108
5.3.1运算符108
5.3.2基本操作113
5.4控制语句123
5.4.1语句块124
5.4.2分支语句125
5.4.3循环语句131
5.4.4异常的抛出与捕获136
5.5函数137
5.5.1函数的基本概念137
5.5.2关于函数的更多细节139
5.5.3闭包函数142
5.5.4lambda表达式143
5.5.5函数的递归调用144
5.5.6全局函数147
5.6对象和类148
5.6.1对象148
5.6.2类153
第6章JavaScript 进阶159
6.1正则表达式159
6.1.1模式符号160
6.1.2匹配标志163
6.1.3应用场景163
6.2程序的异步执行164
6.2.1JavaScript中的异步回调167
6.2.2Promise168
6.2.3async/await172
6.3模块化实践174
6.3.1export/import175
6.3.2命名导出与默认导出176
6.3.3模块的合并与动态加载177
6.4Reflect177
6.5Proxy179
6.6JSON180
第7章浏览器对象模型与文档对象模型182
7.1浏览器对象模型182
7.1.1window183
7.1.2frames184
7.1.3history185
7.1.4location185
7.1.5navigator186
7.1.6screen188
7.1.7localStorage188
7.1.8sessionStorage189
7.1.9cookie189
7.2文档对象模型189
7.2.1获得元素的引用191
7.2.2设置元素样式192
7.2.3创建与移除元素194
7.3事件处理机制197
7.3.1事件分发197
7.3.2事件监听与处理199
7.3.3事件对象200
7.4深入文档对象模型201
7.4.1Node202
7.4.2Document203
7.4.3Element203
7.4.4HTMLElement204
7.4.5NodeList和HTMLCollection205
7.4.6表单元素205
第8章Vue.js 基础207
8.1MVC与MVVM207
8.2Vue.js入门209
8.3模板语法210
8.3.1文本绑定210
8.3.2表单绑定211
8.3.3属性绑定211
8.3.4事件绑定212
8.3.5样式绑定213
8.3.6条件渲染214
8.3.7列表渲染214
8.4计算属性与侦听器215
8.5生命周期钩子217
8.6综合示例218
服务端技术篇
第9章构建服务端程序223
9.1Node.js 基础223
9.1.1搭建开发环境223
9.1.2创建 Node.js项目224
9.1.3调试服务端程序224
9.1.4Node.js 模块226
9.2构建Web服务端程序227
9.3HTTP 报文228
9.3.1HTTP 请求方法229
9.3.2HTTP 回应状态码229
9.3.3ContentType 字段230
9.4Express231
9.4.1创建服务端程序232
9.4.2中间件233
9.4.3托管静态资源236
9.4.4Request 对象236
9.4.5Response 对象239
9.4.6Router 对象241
9.5服务端渲染243
9.6异步通信技术245
9.7文件上传248
9.8综合示例250
9.8.1服务端程序250
9.8.2客户端程序252
9.8.3小结256
第10章数据库交互技术257
10.1创建示例数据库257
10.2数据库交互258
10.3参数化语句259
10.4数据库连接池261
10.5封装数据库操作262
第11章鉴权机制266
11.1HTTP 基本身份认证266
11.2sessioncookie268
11.3Token270
11.4OAuth276
第12章服务端推送技术281
12.1轮询281
12.2长轮询282
12.3SSE283
12.4WebSocket285
12.4.1浏览器端 WebSocket285
12.4.2μWebSockets.js286
12.4.3Expressws288
12.4.4Socket.IO288
第13章Web服务端进阶话题293
13.1跨站脚本攻击293
13.2跨域资源共享294
13.3反向代理296
13.3.1Nginx 基础296
13.3.2Web服务配置297
13.3.3托管静态资源299
13.3.4负载均衡300
13.3.5HTTPS 配置301
13.4Node.js 进程管理302
技术拓展篇
第14章使用Vue.js开发单页面应用307
14.1创建脚手架项目307
14.2Vue.js 单文件组件308
14.3项目构建与部署311
14.4第三方工具312
14.4.1Yarn312
14.4.2Babel312
14.4.3ESLint313
14.4.4Webpack313
14.5组合式 API315
14.6响应性 API318
14.7Vue Router321
14.7.1路由基础321
14.7.2嵌套路由324
14.7.3路由组件传参326
14.7.4从服务端获取数据328
14.7.5编程式导航329
14.8状态管理330
14.8.1引例330
14.8.2Pinia 核心概念333
第15章移动端应用开发336
15.1开发环境搭建337
15.1.1Android App开发环境337
15.1.2iOS App开发环境338
15.2创建与配置Capacitor项目339
15.3使用插件与原生 API 交互341
15.4构建与签名App343
15.4.1使用Android Studio构建与签名Android App344
15.4.2使用Xcode构建与签名 iOS App345
第16章微信小程序开发347
16.1创建微信小程序项目348
16.2微信小程序项目结构349
16.3综合示例 ——个人相册353
16.3.1数据存储模块354
16.3.2相册首页355
16.3.3添加新图片356
16.4发布微信小程序358
第17章桌面端应用开发359
17.1创建Electron项目359
17.1.1创建程序首页360
17.1.2启动主进程360
17.2主进程与渲染进程间通信361
17.2.1ContextBridge361
17.2.2使用IPC通道363
17.3调试Electron项目366
17.4构建Electron项目368
17.5综合示例——计时器368
17.5.1Web程序部分369
17.5.2主进程程序部分371


【前言】

Web应用开发技术是目前应用最为广泛的计算机技术之一,相较于其他技术,Web应用开发技术涉及的知识点较多,综合性较强,它要求程序员对Web客户端(前端/浏览器端)技术、服务端(后端)技术、计算机网络知识等均有较熟练的掌握,并具备一定技术整合能力。初学者往往集中精力学习了某一部分知识后小有领悟,但应用到项目开发时却一头雾水,不知从何下手。
本书作者长年从事高校计算机专业Web应用开发相关课程的教学,同时也主持和参与了数十项实际项目的研发,深知对于初学者而言的困惑和技术难点,也熟悉目前的主流技术动向和实际项目开发中采用的通行实践方法。
因此,本书无论从全书的整体编排或是具体内容的讲解都力求分为基础、进阶、拓展三个层次展开:基础部分去繁就简,快速带领读者掌握必要的入门知识,领会基本“套路”,让程序先“跑”起来;进阶部分则引入稍有难度但实用的知识,或讨论实际项目开发中的做法;拓展部分则带领读者探索技术应用的更多可能性,启发读者更多的思考,让技术真正“活”起来。
当然,技术只是思想的载体,本书在内容编排上注重程序设计理念的塑造,从需求分析出发,理清实现思路,最后再落脚到技术实现,避免让读者一开始就迷失在技术细节的迷雾中。相信只要思路和方向正确,至于技术细节,在实践过程中读者也自可在本书中或通过其他途径找到答案。
实践是学习程序设计的重要环节,一些初学者只看书不练习,或是只听教师讲,课后不实践,最后脑子懂了,手却不会。因此,本书特意安排大量简单、实用而有趣的例程,读者可在学习过程中同步上机实践,将知识转化为能力。全书例程源码均实测可顺利运行,重点、难点部分配有视频讲解,可在线观看。
本书主要内容如下:
第1章简述Web应用程序的工作原理和基础知识,概要介绍全书内容和编排结构,此后章节分为客户端技术篇、服务端技术篇和技术拓展篇。
客户端技术篇包括第2~8章,其中第2、3、5章介绍HTML、CSS、JavaScript基础知识;第4、6章深入探讨CSS、JavaScript进阶技术;第7章介绍浏览器对象模型和文档对象模型,为开发实战夯实基础;第8章介绍被业界称为前端三大框架之一的Vue.js。
服务端技术篇包括第9~13章,其中第9章基于Node.js环境讲解服务端程序开发的基本原理和方法,第10~13章对实际项目中常涉及的数据库交互、鉴权机制、服务端推送、应用部署等问题进行深入介绍。
技术拓展篇包括第14~17章,其中第14章介绍Vue.js单页面应用开发的方法,第15~17章进一步探索Web应用开发技术的更多应用领域,内容涉及移动端应用、微信小程序、桌面端应用的开发。
资源下载本书例程源代码及相关资源请扫描左侧二维码获取,书中所述“资源包”即指该附件。
本书配套视频请扫描书中对应位置二维码在线观看。
由于作者水平有限,书中难免有疏漏之处,敬请广大读者和同行给予批评指正。

白磊2023年8月


返回顶部