@@ -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===
0 commit comments