我一直使用printf调试程序,一般来说都是比较顺利,但有时候,你会发现需要更好的方法。下面几个JavaScript技巧相信你一定会觉得十分有用:

  1. debugger;

  我以前也说过,你可以在JavaScript代码中加入一句debugger;来手工造成一个断点效果。

  需要带有条件的断点吗?你只需要用if语句包围它:

  if (somethingHappens) {

  debugger;

  }

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

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

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

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

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

  3. Ajax 断点

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

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

  4. 移动设备模拟环境

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

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

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

  5. 使用Audits改进你的网站

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

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

  PS:复制的别人的;

最新文章

  1. MySQL:索引工作原理
  2. Javascript理解this对象
  3. asp.net 一次性提交大量数据,服务器会报错,要在 web.config 中设置一下
  4. 十五天精通WCF——第十一天 如何对wcf进行全程监控
  5. Android CountDownTimer倒计时器的使用
  6. codeforces 288A:Polo the Penguin and Strings
  7. 转mysql存储引擎memory,ndb,innodb之选择
  8. easyui 删除数据表格
  9. 解决:JS如何取得当前正在执行的function的名字
  10. hadoop namenode又一次格式化以后hbase的hmaster进程启动后立即消失
  11. 如何获取Window
  12. 为什么用户主目录下.bash_profile没有自动执行
  13. 3.3.4 PCI设备进行DMA写时发生Cache命中
  14. centos docker 安装
  15. 实训任务03: 使用Eclipse创建MapReduce工程
  16. [luogu4018][Roy&October之取石子]
  17. Redis的数据结构之字符串
  18. mysql查看当前执行线程_关闭当前的某些线程 show processlist_kill
  19. spring--多人开发,模块化配置
  20. 大数据处理过程核心技术ETL详细介绍

热门文章

  1. jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
  2. LoadRunner培训初级教程
  3. Linq to SQL 的增删改查操作
  4. request_irq() | 注册中断服务函数【转】
  5. Upload Images
  6. MessageClient
  7. 自定义CollectionViewLayout
  8. 【转】工控老鬼】西门子S7200入门&精通【1】S7200硬件大全
  9. OFDM学习之旅
  10. python学习之迭代器与生成器