web大前端
对未来很迷茫怎么办
学互联网营销 实现企业跨越式发展 4月快速打破流量端口
1024疯狂程序员节日,节日狂欢,智取豪礼
零基础也能做软件开发工程师 支持你成为受人尊重的IT技术人才 2018...
2022高中生学什么
我们的老师齐集了专家、硕士、博士、高级讲师,他们不但拥有熟练的...
2014年双11成交额571亿背后的秘密? 你知道未来三年电子商务人才...
线上某个页面出问题时,我们需要查看日志,需要看页面表现,需要定位问题在哪里以便及时修复。一般后端会通过打日志的形式来确定 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 好之后,可以直接将修改持久化到本地的文件,再也不用复制粘贴了。
现在这个社会想学电脑的人有很多,因为现在电脑已经和我们的生活息息相关了,也是不可分割的一部分了。是否有很多学生家长就想把孩子送去某一所知名的学校去学电脑呢?那么学电脑到哪里好呢?要说到在哪里学电脑好的话,那要数北大青鸟学校了!
初级程序员程序员软件工程师网络工程师高级网络工程师网络安全与高级应用工程师OSTA软件工程师OSTA网络工程师OSTA Java工程师
2017年1月12日,嘉华教育集团在深圳南山文体中心隆重举办了11周年庆典。出席本次庆典的嘉宾有原外交部副部长胡恩才先生、原深圳大学校长
清晨微风习习,带着初秋的些微凉意。而在东莞市中心的市政广场上,北大青鸟万人晨练签名活动,正火热进行,和以往不同的是,广场上多了一条彩色横幅,“早安青鸟,北大青鸟万人晨练,我们在这里!”这是东莞金码的学员宣言,也是学员们青春正能量的激荡。
北大青鸟东莞金码学校为学生提供住宿条件,干净的楼房,有专人管理打扫,安静环境氛围好,学生可根据意愿选择是否在校住宿。
最近看到很多朋友在前程无忧上抱怨说是工作不好找、企业黄牛、HR不好的帖子。我本身也是个HR,很希望我能给我们公司招到合适的人,因为我不
著名的心理学家马斯洛曾经说过:一个人能够成为什么,他就必须成为什么,他必须忠实于他自己的本性。人需要倾听内在的声音,选择在本质
很多学生求职难,不是因为素质不好、能力不行、经验不够被刷掉,而是因为简历不够闪!找出写简历的突破口、切入点,才能在HR的筛选过程中脱
当你已经面试完了。当你等待公司消息的时候,脑子里不断回放面试的情节,心里估摸着自己的表现如何。但是有什么方法可以在通知出来之前就能
要提高网投简历的成功率,首先要定位好自己,然后定位自己的行业,再定位自己的职位,接下来就是写好自己的简历了:先找一块白板罗列出你所
尽管在过去五年中,社交网络、视频会议和短信带来了巨大的冲击,对于大多数企业通信基础设施而言,电子邮件仍然是杀手级应用。电子邮件
事务是由一组必须要同时完成的或者同时取消的操作组成的,事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的 执...
营销背景以提升娃哈哈品牌公益内涵为长期目标,配合进行阶段性互动活动为娃哈哈系列新品营销助力。营销创意沿袭社区SNS机理,以娃哈哈年度
前期准备先下载和安装JDK.打开网页之后,选择downloads ,然后选择 Java for your computer.如图1.1所示图1.1所示然后点击下载:如图1....
为存储口令和防止GPU破解程序和类似的资源暴露口令,我们建议结合三种主要技术:采用单向算法、加盐、有意利用慢速算法。
中国新歌声总决赛即将在北京国家体育场上演。在东莞,北大青鸟金码学校第一届金盈好声音校园歌手大赛已经如火如荼地举行。如果说,青春是一
21世纪网络信息时代的来临,日新月异的网络信息技术有力的推动着社会生产力的发展,IT应用触及到每一个角落。IT产业作为国家战略性产业,与
东莞打工者的出路在哪里?相信很多打工者都会问,迷茫,不知道怎么改变,是许多人的通病。东莞是有名的世界工厂,许多打工者在工厂流水
4月18日消息,美国专利与商标局(USPTO)周三公布的一份新文件显示,苹果正在申请两项移动设备手势解锁技术新专利。或许在不久的将来,苹果设
昨天,小编收到了一封信,实际上与其说是一封信,倒不如说是一位父亲的心声。这些情真意切的言辞来自于一位青鸟学员的父亲。我们来看看他都
众所周知,近年来互联网发展飞速,互联网IT技术人才也越来越紧缺,在人才的大缺口下,导致IT技术人才在互联网企业非常抢手,加上IT技术的高
刚从北大青鸟毕业就跳槽转行拿高薪,从2013年以来,我就一直在一家工厂做工,很想跳槽转行,不过因为没有技术特长,没办法找到更好的工
作为东莞唯一的一家北大青鸟中心,东莞金码中心一直倍受瞩目,不仅因其背后北大青鸟的知名度和嘉华教育集团的雄厚背景,也因其在IT技术实战
年终岁末,2017新的一年已经来临,对于没技能没学历的你,是否还在思考自己能做什么工作呢?在21世纪,很多高学历人群都面临着就业困难,对
高考在即,对于平常考试成绩不佳的考生来说,越靠近考试,内心的挣扎与焦虑越多。其中在考试后学什么这个问题上,高考生和家长的担心是最大的,因为成绩这个大关已经难以跨越,内心的疑问就演变成了:高考分数低学什么专业?