网络工程
移动王者归来 120天征服年薪20万.
2023男生学什么好
男生学什么技术有钱途? 软件开发师、网络工程师、互联网架构师、WE...
东莞北大青鸟是北大青鸟东莞地区的独家官网,培养了不少IT精英,主...
嘉华职业教育东莞金码校区2014招生简章
广东省教育考试院通报,继2013年成为高考第一大省之后,2014年广东...
北大青鸟金码学校是东莞电脑培训是东莞专业IT培训机构、东莞电脑培...
线上某个页面出问题时,我们需要查看日志,需要看页面表现,需要定位问题在哪里以便及时修复。一般后端会通过打日志的形式来确定 bug 的起源,前端就不一样了,上线前 JS 经过混淆、压缩、合并,代码已经不是原来的样子了,无疑给调试带来了困难。那么如何定位问题呢?本文希望从两方面解释,一方面是如何去复现问题,第二步是根据第一步的信息,如何更快更科学地 debug 。
问题的定位
本地复现、调试、解决、上线
有些问题其实不用在线上调试,如果场景容易满足,case 容易在线下构造,那么直接在本地改就好了,这种方式比较适合简单的问题,无需特定场景和环境,bug 就能修复。
使用 Chrome 浏览器进行 debug
调试页面的问题,使用最多的浏览器就是 Chrome 和 Firefox ,而我习惯于使用 Chrome ,就介绍一下使用 Chrome debug JS 的姿势。
Google 官方给出了 DevTools 的介绍,里面有很多案例介绍及使用方法介绍,以博客的形式给出,很方便。
下面介绍的内容实际上就是从 Set Breakpoints 这个小节学习的。摘录某个调试方法。
设置 DOM 改变时的断点
你代码的某个地方出现了 bug ,它错误地改变、删除或者增加一个 DOM 点。DevTools 提供了一个快速找到 bug 根源的工具:针对 DOM 改变的断点。
DevTools 让你可以在某个节点上打断点,让你不用手动地在代码里四处寻找是哪里导致了 DOM 的变化。无论在哪个节点,或是节点的子节点,当它们背添加、删除、改变时,DevTools 都能让页面暂停,然后把你带到引起 DOM 改变的具体代码行。
添加 DOM 改变的断点 的方式: 右键单击要监控的节点,选择要监控的行为,当节点发生改变时,JS 将停止执行,页面将显示引起监控的 DOM 节点改变的 JS 代码行。另外,从 Call Stack 可以查看引发当前监控 DOM 发生改变的 JS 调用栈。
监控节点断点类型:
以下是各个类型的 DOM 节点改变时的断点详细说明:
Subtree modifications .
当当前选择的节点的子节点被删除、添加、或者内容发生变化时触发。当子节点的属性改变或者当前节点发生改变时不会触发。
Attributes modifications.
当当前节点的属性被添加或者删除,或者当前节点的某个属性的值发生变化时触发。
Node Removal.
当当前节点被删除时触发。
设置 DOM change 相关的断点最大的好处在于,能准确定位到是哪里引起了改变,缺点在于,当出现不对 DOM 产生改变的 bug 时,这种方法就失效了。这种情况,就得确定 bug 的代码范围,再使用断点逐步追踪。
JS 的调试
众所周知,静态文件会存在缓存问题。一个页面的加载,如果包含多个 JS ,如何定位到具体的 JS 以及如何使用修改后的 JS 来查看页面效果就很是问题了。下面介绍的方式可以解决前面的问题,原理都是使用本地的 JS 做代理,来接管线上的 JS ,这样线上的调试就转移到本地了。由于线上的 JS 一般都经过压缩、混淆、合并,故最好本地有合成线上 JS 的子 JS ,下面介绍的方式是直接用本地的 JS 替代线上的 JS ,如果是前面说的那种情况,用合并后的 JS 替换线上 JS 即可。
使用代理软件
macOS 系统下,Web 调试代理软件一般使用 Charles , 使用代理软件的好处是,网络请求的所有资源,请求的细节,都能记录下来,另外它能作为系统代理接管浏览器的网络访问,将这些请求记录下来,是 Web debugging 的利器。
下面要介绍的方式就是 Charles 的代理功能,使用本地的 JS 代理线上的 JS 。
1. 设置 Charles 为系统代理,代理 Chrome 的网络连接。
这个步骤,需要开启 Charles ,并设置 Charles 为系统代理。Firefox 可以直接设置,Chrome 网络设置实际上就是修改的系统的网络设置,步骤为 系统偏好设置 -> 网络 -> 高级 -> 代理 一图胜千言
2.Map Local
使用 Chrome 请求网页, 即可在 Charles 中查看到当前网页所有资源对应的请求,将某个 JS 文件映射到要用作代理的本地 JS 文件,或者粗暴点,直接代理目录,就可以代理文件夹下的所有 JS 了。
这个方式下,当在本地修改 JS 后,能直接在线上环境看到效果,最重要的是,免去了修改 JS 后上线 JS 不生效的问题。归根结底,本地修改,上线再看效果这种原始的方式,本该淘汰。
但此方式有个缺点,需要来回切换,你需要切换到编辑器或者 IDE 改好后再回 Chrome 刷新页面看效果,而且不能实时编辑,下面的使用 Chrome workspace 的方式无疑是效果最好而且最省时省力的。
使用 Chrome workspace
此方式实际上也是使用本地的文件做代理,但区别于其他方式的是,它与 Chrome 无缝集成,是 Chrome DevTools 提供的功能,支持断点,支持将修改持久化到本地。下面介绍配置方式。
1.将本地文件添加到 workspace
开启调试面板,切换至 Sources 选项卡
右击选择 Add Folder to Workspace
选择要代理的本地的文件夹
点击地址栏下方弹出来的窗口,选择 允许 ,Chrome 才能获得访问本地文件的权限
2.Map to File System Resource
选择要代理的文件,Chrome 将自动列出可以映射的文件,此时就建立了远程文件与本地文件的映射。
设置好之后当 debug 好之后,可以直接将修改持久化到本地的文件,再也不用复制粘贴了。
2016年4月1日,北大青鸟东莞金码学校的老师们参加了嘉华教育集团组织的茶溪谷一日游。在风景优美的东部华侨城茶溪谷,老师们不仅进行了团队
北大青鸟东莞金码学校第十届校友会在报告厅顺利举行,本次校友会主题为为职场加点‘料’,出席本次校友会的嘉宾有:安卓主管方老师
北大青鸟东莞金码每年都会举办文化艺术节,以各种活动形式贯穿其中,让学员感受到浓浓的文化艺术氛围,并亲自参与到文化节的活动中来,也是
北大青鸟东莞金码学校不定期组织学员开展精彩的文娱活动,通过K歌比赛、晚会节目表演、艺术节活动,以及平时的文娱表演,让学员可以通过各种活动展现自
北大青鸟东莞金码经常组织各种形式的学术活动,包括辩论赛、编程大赛、PPT比赛、知识竞赛、学术讲座、程序开发比赛等等。让学员通过参与各
很多学生求职难,不是因为素质不好、能力不行、经验不够被刷掉,而是因为简历不够闪!找出写简历的突破口、切入点,才能在HR的筛选过程中脱
1、用很怪异的邮箱名字发送简历例如司机投递简历时名字是没油了或迷路了,年轻人投简历用什么彻夜跳舞、狂欢这类的文字,或者带脏字,等等
一些职业限制因素是我们无法掌控的。新产品发布有可能被经济不景气拖累,你的导师在公司重组中失业,你必须在高层另找个新的获胜者作为导师
大学毕业找工作,你选择了哪个城市作为自己职业生涯的出发点?最近正值毕业求职季,前程无忧论坛(bbs 51job com)用这个话题带网友们回忆了往
最近好多人都在问,面临暑期实习,应该去大公司还是小公司?原以为现在公司名气大平台高,但是入职后发现各种问题,好坏公司如何
有了这些法宝,妈妈以后再也不用担心我加班了~一、产品狗、运营猫的数据处理中心1 infogr am infogr am是一个强大的数据可视化图表创作
预 备测试环境: AMD 毒龙1 4G OC 1 5G、256M DDR333、Windows2000 Server SP4、Sun JDK 1 4 1+Eclipse 2 1+Resin 2 1 8,
1 字符基础1 1 单字节字符集(single-byte character set(SBCS))顾名思义,在这种模式下,所有的字符都只用一个字节表示,常见的如,ASC
众所周知,新站一般排名稳定的时间大概在3个月左右,所以seo教程以新站上线三个月的时间来阐述下外链思想,以及如何发外链来让关键词更早的...
DDoS带来的破坏是巨大的,你无法阻止黑客对你的网站发动DDoS攻击,除非主动断开Internet连接。如果我们无法防止这种攻击,那么,怎样做才能最大限度地保护我们的企业网络呢?
横沥镇北大青鸟:打工多年想学技术学什么有前途?来自东莞横沥镇的孟小冬走进东莞北大青鸟校区,讲起了他在东莞横沥打工的经历,从18岁就来
初中毕业学啥技术好?在东莞,很多工厂的工人们都只有初中学历,但是他们仍然有一颗敢于奋斗的心,他们期望通过自己的努力为自己赢得精彩的
春节过后是招聘旺季,对于东莞北大青鸟毕业学生来说,这样的机遇必须好好把握。
一年一度的灾难片来袭,因为要开学啦!同学们,暑假作业完成没,摸底考试又要来了,是不是感到又彷徨,又紧张?如果说假期是为了放松和调整
时光犹如停留在半年前,我不知道该怎么形容我现在的心情,因为一切都太出乎我的意料了,当初还在犹豫北大青鸟学校学费的时候,还在犹豫北大
女生高考落榜怎么办?在2016年的今天,上大学已经不再是改变命运的唯一方式,读职业培训学校也是一种出路。上职业教育,可以学到一门专业技
众所周知,随着互联网日新月异的发展,随着网络的科技发达,电脑的应用成了我们生活中不可的一件物品了,经常在一些贴吧论坛上看到很多人提出这样的问题,“本人已经成年了,还可以再学习电脑吗?”“电脑学起来难度大吗?”“现在学习会不会太晚了”等一系列的问题,其实,成人学习电脑并不算太晚,关键看你选择什么成人电脑培训班!
1 只在电脑上练习如果面试官要考核你的技术,很有可能会要求你在白板上写代码,而不是电脑上。所以,你就不能只在电脑上练习。电脑上的编译
高考落榜读大专还是学技术好呢?不少人会有这样的疑问。就小编看来,如今大学升学率高达90%,高考落榜的学生,通过一些渠道也有大学上。人
“To be,ornot to be:thatis thequestion”(生存还是毁灭:这是一个问题),这是著名的莎士比亚悲剧《哈姆雷特》中的主人公一句非常经典的独白,也是数百年来经常困扰人们的选择问题。这段哈姆雷特式问题的台词,经常用来形容一个人在犹豫在思考时候的两难情况,用现代人的说法就是“选择困难症”。人们经常纠结于各种选择,生怕选错了,就会陷入“蓝瘦香菇”的困境。