JS调试必备的5个debug技巧


Posted in Javascript onMarch 07, 2014

1. debugger;

我以前也说过,你可以在JavaScript代码中加入一句debugger;来手工造成一个断点效果。
需要带有条件的断点吗?你只需要用if语句包围它:

if (somethingHappens) {
  debugger;
}

但要记住在程序发布前删掉它们。

2. 设置在DOM node发生变化时触发断点

有时候你会发现DOM不受你的控制,自己会发生一些奇怪的变化,让你很难找出问题的根源。

谷歌浏览器的开发工具里有一个超级好用的功能,专门可以对付这种情况,叫做“Break on…”,你在DOM节点上右键,就能看到这个菜单项。

断点的触发条件可以设置成这个节点被删除、节点的属性有任何变化,或它的某个子节点有变化发生。

JS调试必备的5个debug技巧

3. Ajax 断点

XHR断点,或Ajax断点,就像它们的名字一样,可以让我们设置一个断点,在特点的Ajax调用发生时触发它们。

当你在调试Web应用的网络传输时,这一招非常的有效。

JS调试必备的5个debug技巧

4. 移动设备模拟环境

谷歌浏览器里有一些非常有趣的模拟移动设备的工具,帮助我们调试程序在移动设备里的运行情况。

找到它的方法是:按F12,调出开发者工具,然后按ESC键(当前tab不能是Console),你就会看到第二层调试窗口出现,里面的Emulation标签页里有各种模拟设备可选。

当然,这不会就变成了真正的iPhone,只是模拟了iPhone的尺寸,触摸事件和浏览器User Agent值。

JS调试必备的5个debug技巧

5. 使用Audits改进你的网站

YSlow是一个非常棒的工具。谷歌浏览器的开发者工具里也有一个非常类似的工具,叫Audits

它可快速的审计你的网站,给你提出非常实际有效的优化你的网站的建议和方法。

JS调试必备的5个debug技巧

还有其它的吗?

没有这些工具,我不知道将如何开发。我还会写更多的关于这方面的技巧——一旦我有所发现,请关注我的最新文章。

Javascript 相关文章推荐
Prototype Date对象 学习
Jul 12 Javascript
选择器中含有空格在使用示例及注意事项
Jul 31 Javascript
iframe的onreadystatechange事件在firefox下的使用
Apr 16 Javascript
javascript进行数组追加方法小结
Jun 16 Javascript
javascript 兼容各个浏览器的事件
Feb 04 Javascript
详解javascript实现瀑布流列式布局
Jan 29 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
Oct 26 Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
Jul 12 Javascript
vue-router实现组件间的跳转(参数传递)
Nov 07 Javascript
vue 项目中使用Loading组件的示例代码
Aug 31 Javascript
Layui数据表格 前后端json数据接收的方法
Sep 19 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
May 10 Javascript
javascript中style.left和offsetLeft的用法说明
Mar 07 #Javascript
js读取被点击次数的简单实例(从数据库中读取)
Mar 07 #Javascript
js函数名与form表单元素同名冲突的问题
Mar 07 #Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 #Javascript
jquery中常用的函数和属性详细解析
Mar 07 #Javascript
jquery 操作两个select实现值之间的互相传递
Mar 07 #Javascript
JS判断文本框内容改变事件的简单实例
Mar 07 #Javascript
You might like
用 php 编写的日历
2006/10/09 PHP
图书管理程序(三)
2006/10/09 PHP
在普通HTTP上安全地传输密码
2007/07/21 PHP
Admin generator, filters and I18n
2011/10/06 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
理理Vue细节(推荐)
2019/04/16 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
Python httplib,smtplib使用方法
2008/09/06 Python
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
Python三级菜单的实例
2017/09/13 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
django解决订单并发问题【推荐】
2019/07/31 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
python学习笔记之多进程
2020/08/06 Python
Python接口自动化测试的实现
2020/08/28 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
西安当代医院管理研究院笔试题
2015/12/11 面试题
主管职责范文
2013/11/09 职场文书
质量工程师岗位职责
2013/11/16 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
一级电子管军用接收机测评
2022/04/05 无线电
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android