Skip to content

Commit 690f595

Browse files
committed
[CH5] done for chap5
1 parent 71774a2 commit 690f595

4 files changed

Lines changed: 68 additions & 142 deletions

File tree

chapters/chapter-5.md

Lines changed: 24 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
调试(Debug)在[维基百科](https://zh.wikipedia.org/wiki/%E8%B0%83%E8%AF%95)上的定义是:是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。
99

10-
多数时候,我们调试是为了找到代码中的错误,并具体定位到错误的地方。幸运的是,现在的前端框架都比较人性化了,可以和大部分的后台框架一样,提示代码中出错的地方。这时,我们只需要借助于浏览器的调试,找到错误的行数,并查看错误的原因。
10+
多数时候,调试是为了找到代码中的错误,并具体定位到错误的地方。幸运的是,现在的前端框架都比较人性化了,可以和大部分的后台框架一样,提示代码中出错的地方。这时,我们只需要借助于浏览器的调试,找到错误的行数,并查看错误的原因。
1111

1212
有些时候,我们调试是为下一步编程,提供一些理论依据。如在应用运行的时候,我们可以使用浏览器打个断点,并在 Console 中输入代码调试下一步要做的事。最后,再将这些代码复制到 IDE 或者编辑器上即可。
1313

@@ -30,12 +30,12 @@
3030
- 本地开发的时候,URL 的编码都是没有问题的,而在线上则出了问题。经过一系列复现和排察后,才发现问题出在 Nginx 上的转义上。
3131
- 等等
3232

33-
这时,我们就需要使用更好的工具来帮助我们
33+
这时,我们就需要使用更好的工具来帮助开发
3434

3535
基本调试技巧:实时调试
3636
---
3737

38-
开始之前,我们需要打开 Chrome 浏览器的调试窗口。除了点鼠标右键,然后选择“审查元素”之外,我们还可以
38+
开始之前,我们需要打开 Chrome 浏览器的调试窗口。除了点鼠标右键,然后选择“审查元素”之外,还可以
3939

4040
- Windows / Linux 操作系统,使用 Ctrl + Shift + I 快捷键打开开发人员工具
4141
- Mac OS 操作系统,使用 Comand + Option + I 快捷键打开开发人员工具
@@ -99,7 +99,7 @@
9999
- 可以在浏览器上模拟真机的分辨率、User Agent 等等基本的信息
100100
- 提供接口来连接真机,并允许开发者在上面进行调试。
101101

102-
在浏览器上模拟的特点是,你可以一次开发匹配多种分辨率的设备,但是并不能帮助你发现一些真机才存在的 Bug——如 Android 设备的后退键。而真机的缺点则是,你需要一个个设备的进行调试。因此,理想的开发模式是:**先在浏览器进行响应式设计,随后在真机上进行测试**
102+
在浏览器上模拟的特点是,我们可以一次开发匹配多种分辨率的设备,但是并不能发现一些真机才存在的 Bug——如 Android 设备的后退键。而真机的缺点则是,需要一个个设备的进行调试。因此,理想的开发模式是:**先在浏览器进行响应式设计,随后在真机上进行测试**
103103

104104
### 模拟真机:设备模拟器
105105

@@ -137,59 +137,44 @@
137137

138138
随后,我们就可以像在桌面浏览器的调试一样,对代码进行调试。
139139

140-
同理,对于 Safari 浏览器来说也是类似的。除此,Safari 浏览器可以支持更有意思的调试,如果正在开发的应用是混合应用,Safari 也可以对此进行调试。
140+
同理,对于 Safari 浏览器来说也是类似的。除此,Safari 浏览器可以支持更有意思的调试,如果正在开发的应用是混合应用,Safari 也可以对此进行调试。开发混合应用时,我们往往会遇到一些奇怪的 Bug,这时我们就需要它了。
141141

142142
![Safari Simulator](../images/safari-hybird.jpg)
143143

144-
在开发混合应用时,我们往往会遇到一些奇怪的 Bug,这时我们就需要它了。
145-
146-
网络及性能调试
144+
网络调试
147145
---
148146

149-
147+
在前后端 Web 应用开发的初期,前后端进行交互是一种痛苦的事,会遇到各种意味之外的错误。我们需要查看参数传递过程中是否漏传了,是否传入了一些错误的值,是否是跨域问题等等。
150148

151149
### 网络调试
152150

151+
Chrome 里的开发者工具中的 Network 不仅可以查看页面的加速速度,还可以看我们发出的请求的详细信息、返回结果的详细信息,以及我们发送给服务端的数据。如下图所示:
152+
153153
![Debug网络](../images/debug-network.jpg)
154154

155-
```bash
156-
curl -I -s https://www.phodal.com -A google
157-
```
158-
159-
```bash
160-
HTTP/1.1 200 OK
161-
Server: nginx/1.11.5
162-
Content-Type: text/html; charset=utf-8
163-
Connection: keep-alive
164-
Vary: Accept-Encoding
165-
Vary: Accept-Language, Cookie
166-
Content-Language: en
167-
X-UA-Compatible: IE=Edge,chrome=1
168-
Date: Sun, 19 Feb 2017 06:59:49 GMT
169-
X-Page-Speed: Powered By Phodal
170-
Cache-Control: max-age=0, no-cache
171-
```
172-
173-
### Timeline
174-
175-
Timelie, Profiles
176-
177-
使用插件帮助调试
178-
---
155+
在图里,我们可以清晰地看到请求的 URL、返回的状态码,它可以让我们知道发出的请求是对的、返回的状态也是对的。如果我们发出的请求是对的,而返回的内容是错的,那么我们可以相信这是服务端的错误。如果返回的状态码是错的,我们也可以看出到底是服务端的错误,还是客户端的错误。
156+
157+
设计表单时,我们可以看到它发出的参数是否是正确的。
158+
159+
![表单数据](../images/form-data.png)
179160

180-
Postman
161+
这一来一往,我们就知道到底是哪个地方的问题。
162+
163+
### 使用插件
164+
165+
除了上面说到的工具,我们还可以在 Chrome 应用商店里找到更多、更合适的工具。我在我的 GitHub 上维护了,我常用的一些工具:[https://github.com/phodal/toolbox](https://github.com/phodal/toolbox),我整理了平时使用的插件在上面。
166+
167+
让我推荐两个简单的工具,一个是 Postman,用于调试 API 用的:
181168

182169
![Postman](../images/postman.png)
183170

184-
还有一种简单的方式就是使用 Google 的 Page Speed,它会自动地帮我们诊断中需要优化的部分。
171+
还有一个是 Google 的 Page Speed,可以帮助我们优化网络:
185172

186173
![PageSpeed 结果](../images/pagespeed-reseult.png)
187174

188175
小结
189176
---
190177

191-
如在 “Application”菜单栏中,我们可以看到与应用相关的一些缓存和存储信息。Chrome 浏览器里,我们可以看到 Local Storage、Cookies、Session Storage、IndexedDB、Web SQL 等等的用于数据存储的工具。编写单页面应用时,我们都需要在客户端存储一些数据,这时就需要用到这个工具。
192-
193-
除此,还有 Google PWA 应用的一些相关属性,Manifest、Service Workers。
194-
178+
在这一章里介绍了使用 Chrome 浏览器来调试的工具,这些在前端工程师的日常开发中非常有用。
195179

180+
除此,在 Chrome 浏览器里还有一些额外的功能可以使用。如在 “Application”菜单栏中,我们可以看到与应用相关的一些缓存和存储信息。Chrome 浏览器里,我们可以看到 Local Storage、Cookies、Session Storage、IndexedDB、Web SQL 等等的用于数据存储的工具。编写单页面应用时,我们都需要在客户端存储一些数据,这时就需要用到这个工具。除此,还有 Google PWA 应用的一些相关属性,Manifest、Service Workers。

ebook.md

Lines changed: 20 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ Backbone 的神奇之处在于,在可以结合不同的框架在一起使用
391391

392392
调试(Debug)在[维基百科](https://zh.wikipedia.org/wiki/%E8%B0%83%E8%AF%95)上的定义是:是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。
393393

394-
多数时候,我们调试是为了找到代码中的错误,并具体定位到错误的地方。幸运的是,现在的前端框架都比较人性化了,可以和大部分的后台框架一样,提示代码中出错的地方。这时,我们只需要借助于浏览器的调试,找到错误的行数,并查看错误的原因。
394+
多数时候,调试是为了找到代码中的错误,并具体定位到错误的地方。幸运的是,现在的前端框架都比较人性化了,可以和大部分的后台框架一样,提示代码中出错的地方。这时,我们只需要借助于浏览器的调试,找到错误的行数,并查看错误的原因。
395395

396396
有些时候,我们调试是为下一步编程,提供一些理论依据。如在应用运行的时候,我们可以使用浏览器打个断点,并在 Console 中输入代码调试下一步要做的事。最后,再将这些代码复制到 IDE 或者编辑器上即可。
397397

@@ -414,12 +414,12 @@ Backbone 的神奇之处在于,在可以结合不同的框架在一起使用
414414
- 本地开发的时候,URL 的编码都是没有问题的,而在线上则出了问题。经过一系列复现和排察后,才发现问题出在 Nginx 上的转义上。
415415
- 等等
416416

417-
这时,我们就需要使用更好的工具来帮助我们
417+
这时,我们就需要使用更好的工具来帮助开发
418418

419419
基本调试技巧:实时调试
420420
---
421421

422-
开始之前,我们需要打开 Chrome 浏览器的调试窗口。除了点鼠标右键,然后选择“审查元素”之外,我们还可以
422+
开始之前,我们需要打开 Chrome 浏览器的调试窗口。除了点鼠标右键,然后选择“审查元素”之外,还可以
423423

424424
- Windows / Linux 操作系统,使用 Ctrl + Shift + I 快捷键打开开发人员工具
425425
- Mac OS 操作系统,使用 Comand + Option + I 快捷键打开开发人员工具
@@ -483,7 +483,7 @@ Backbone 的神奇之处在于,在可以结合不同的框架在一起使用
483483
- 可以在浏览器上模拟真机的分辨率、User Agent 等等基本的信息
484484
- 提供接口来连接真机,并允许开发者在上面进行调试。
485485

486-
在浏览器上模拟的特点是,你可以一次开发匹配多种分辨率的设备,但是并不能帮助你发现一些真机才存在的 Bug——如 Android 设备的后退键。而真机的缺点则是,你需要一个个设备的进行调试。因此,理想的开发模式是:**先在浏览器进行响应式设计,随后在真机上进行测试**
486+
在浏览器上模拟的特点是,我们可以一次开发匹配多种分辨率的设备,但是并不能发现一些真机才存在的 Bug——如 Android 设备的后退键。而真机的缺点则是,需要一个个设备的进行调试。因此,理想的开发模式是:**先在浏览器进行响应式设计,随后在真机上进行测试**
487487

488488
### 模拟真机:设备模拟器
489489

@@ -521,62 +521,47 @@ Backbone 的神奇之处在于,在可以结合不同的框架在一起使用
521521

522522
随后,我们就可以像在桌面浏览器的调试一样,对代码进行调试。
523523

524-
同理,对于 Safari 浏览器来说也是类似的。除此,Safari 浏览器可以支持更有意思的调试,如果正在开发的应用是混合应用,Safari 也可以对此进行调试。
524+
同理,对于 Safari 浏览器来说也是类似的。除此,Safari 浏览器可以支持更有意思的调试,如果正在开发的应用是混合应用,Safari 也可以对此进行调试。开发混合应用时,我们往往会遇到一些奇怪的 Bug,这时我们就需要它了。
525525

526526
![Safari Simulator](images/safari-hybird.jpg)
527527

528-
在开发混合应用时,我们往往会遇到一些奇怪的 Bug,这时我们就需要它了。
529-
530-
网络及性能调试
528+
网络调试
531529
---
532530

533-
531+
在前后端 Web 应用开发的初期,前后端进行交互是一种痛苦的事,会遇到各种意味之外的错误。我们需要查看参数传递过程中是否漏传了,是否传入了一些错误的值,是否是跨域问题等等。
534532

535533
### 网络调试
536534

535+
Chrome 里的开发者工具中的 Network 不仅可以查看页面的加速速度,还可以看我们发出的请求的详细信息、返回结果的详细信息,以及我们发送给服务端的数据。如下图所示:
536+
537537
![Debug网络](images/debug-network.jpg)
538538

539-
```bash
540-
curl -I -s https://www.phodal.com -A google
541-
```
539+
在图里,我们可以清晰地看到请求的 URL、返回的状态码,它可以让我们知道发出的请求是对的、返回的状态也是对的。如果我们发出的请求是对的,而返回的内容是错的,那么我们可以相信这是服务端的错误。如果返回的状态码是错的,我们也可以看出到底是服务端的错误,还是客户端的错误。
542540

543-
```bash
544-
HTTP/1.1 200 OK
545-
Server: nginx/1.11.5
546-
Content-Type: text/html; charset=utf-8
547-
Connection: keep-alive
548-
Vary: Accept-Encoding
549-
Vary: Accept-Language, Cookie
550-
Content-Language: en
551-
X-UA-Compatible: IE=Edge,chrome=1
552-
Date: Sun, 19 Feb 2017 06:59:49 GMT
553-
X-Page-Speed: Powered By Phodal
554-
Cache-Control: max-age=0, no-cache
555-
```
541+
设计表单时,我们可以看到它发出的参数是否是正确的。
556542

557-
### Timeline
543+
![表单数据](images/form-data.png)
558544

559-
Timelie, Profiles
545+
这一来一往,我们就知道到底是哪个地方的问题。
560546

561-
使用插件帮助调试
562-
---
547+
### 使用插件
548+
549+
除了上面说到的工具,我们还可以在 Chrome 应用商店里找到更多、更合适的工具。我在我的 GitHub 上维护了,我常用的一些工具:[https://github.com/phodal/toolbox](https://github.com/phodal/toolbox),我整理了平时使用的插件在上面。
563550

564-
Postman
551+
让我推荐两个简单的工具,一个是 Postman,用于调试 API 用的:
565552

566553
![Postman](images/postman.png)
567554

568-
还有一种简单的方式就是使用 Google 的 Page Speed,它会自动地帮我们诊断中需要优化的部分。
555+
还有一个是 Google 的 Page Speed,可以帮助我们优化网络:
569556

570557
![PageSpeed 结果](images/pagespeed-reseult.png)
571558

572559
小结
573560
---
574561

575-
如在 “Application”菜单栏中,我们可以看到与应用相关的一些缓存和存储信息。Chrome 浏览器里,我们可以看到 Local Storage、Cookies、Session Storage、IndexedDB、Web SQL 等等的用于数据存储的工具。编写单页面应用时,我们都需要在客户端存储一些数据,这时就需要用到这个工具。
576-
577-
除此,还有 Google PWA 应用的一些相关属性,Manifest、Service Workers。
578-
562+
在这一章里介绍了使用 Chrome 浏览器来调试的工具,这些在前端工程师的日常开发中非常有用。
579563

564+
除此,在 Chrome 浏览器里还有一些额外的功能可以使用。如在 “Application”菜单栏中,我们可以看到与应用相关的一些缓存和存储信息。Chrome 浏览器里,我们可以看到 Local Storage、Cookies、Session Storage、IndexedDB、Web SQL 等等的用于数据存储的工具。编写单页面应用时,我们都需要在客户端存储一些数据,这时就需要用到这个工具。除此,还有 Google PWA 应用的一些相关属性,Manifest、Service Workers。
580565

581566
前端基础知识
582567
===

images/form-data.png

185 KB
Loading

0 commit comments

Comments
 (0)