2018学什么技术有前途和“钱途”? 来fun88网金码学校学IT 择业选...
千万学生无法拒绝的大学,技能与学历双修
初中毕业也能成为高薪技术人才(人物背景要用初高中学生的) 深圳北大...
你有一份8千offer待签收
fun88网职业教育一线品牌,真实企业项目实训
梦想还是要有的,万一实现了呢? 改变命运靠自己,高中毕业一样月薪...
东莞fun88网金码学校,东莞电脑培训,计算机专业技能培训,东莞北大青...
对于年轻一代来说,中国梦,是希望过上更好的生活。要实现每个心中...
线上某个页面出问题时,我们需要查看日志,需要看页面表现,需要定位问题在哪里以便及时修复。一般后端会通过打日志的形式来确定 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 好之后,可以直接将修改持久化到本地的文件,再也不用复制粘贴了。
人们为了改变现状,追求自己的幸福生活,越来越多的人都选择了拼搏。那么在拼搏的路上是否真能实现自己的目标,很关键的一步便在于最初的选择,那你需要有一技之长的技术,那么在这个社会,现在学什么技术工资高,就业不用愁呢?那肯定是 学一门好的电脑专业了,高薪资,好就业,前景广阔,提升空间大。要满足这些条件的技术工作,数IT行业最合了!
许多合作企业会根据用人需求和企业发展情况不定期到fun88网东莞金码学校现场招聘IT专业人才,上千家合作企业遍布全国各地,学员根据自己的
项目实训招募啦~~fun88网东莞金码学校合作企业、学术团队举行项目实训招募活动,让学员有机会根据自己的喜好选择项目实训,参与项目的开发。
fun88网东莞金码组织学员进行各种户外拓展、郊游、烧烤等集体活动,让学员们充分感受集体生活的温暖和团队的力量。
2017年1月12日,嘉华教育集团在深圳南山文体中心隆重举办了11周年庆典。出席本次庆典的嘉宾有原外交部副部长胡恩才先生、原深圳大学校长
根据前程无忧的统计数据,截至2013年5月31日,前程无忧的网上发布职位数中面向应届生人群开放的职位数超过11万个,占招聘职位总数的4 25%,
现在越来越多的企业采取小组面试(Panel Interview)。似乎这种面试的形式逐渐成为一种流行的趋势。不仅是初级员工,包括很多高级人才和职业
面试官类型不同,到底都有哪些种类呢?跟着来看看吧。一、呆板稚嫩型这类面试官一般出现在面试的第一轮,他们由于缺乏面试经验,大多数情况
翻遍诸多面试攻略,一般都有这么一条金科玉律:面试一开始不能询问薪水,作为卖方市场的求职者,每次面试时我们都会谨慎言行。明明是正大光
说到面试,大家最关心的,想必是怎样才能从容应对面试官的提问了。虽然,我们在面试经验分享的文章中常能看到求职者要学会包装自己并向面试
有了这些法宝,妈妈以后再也不用担心我加班了~一、产品狗、运营猫的数据处理中心1 infogr am infogr am是一个强大的数据可视化图表创作
本篇文章将记录如何编写一个最简单的WebPart的最后一部分,即添加WebPart,包括把WebPart添加到网站的WebParts列表中,及把WebPart添加到AS
1 splice(start,[,length,newValue ])对数组中某索引范围进行删除 声明数组对象var myArray = ["a", "b", "c", "d", "e"]; 从数
随着移动互联网技术的不断发展,移动互联网用户发送和上传的数据量达到1 3exabytes,相当于10的18方。BigData大数据是继云计算、物联网之后
现在,在各种营销手段都百家争鸣、百花齐放的时代,电子邮件营销几乎一夜之间便显得逊色了许多。然而,令许多企业和厂商纠结不已的是,电子邮件营销虽然已经“人老珠黄”,
初中生无学历无技能,不进工厂上班还可以做什么呢?这是很多低学历人群想要提升自己,却又找到出路的迷茫问题。难道初中生就只有在工厂干体
2015年是嘉华职业教育集团十周年,为了营造浓厚的校园文化艺术氛围,提供给学生一个展示自我、彰显个性的舞台,带动更多学子走进IT职业领域
6月22日下午,青鸟学社全体成员参与了由学习部举办的第二期学习经验交流会,怀着激动的心情,同学们坐等着交流会的开始!随着激动人心的曲子
01岗位了解所谓的工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员。网络工程师能够从事计算机信息系统的设计、建
春节、元宵节是我国民间最重要的传统节日,是我国人民庆贺丰收、祈福风调雨顺、家人团聚的日子。而猜灯谜、吃汤圆则是元宵佳节必不可少的活
在这个大学生很普遍的时代,文凭的重要性也显而易见的不如过去,因为随着社会对人才需求的转型,很多企业都把技能和经验作为聘用人才的标准
在这个大学生遍地皆是的时代,即便拥有大学文凭,也难以找到如意的工作,要在社会上立足,也是一种挑战。对于高中生来说,没有学历优势,如果还没技能的话,要在社会站稳脚跟,那更是难上加难,那么高中毕业究竟可以做什么呢?
因为各种原因不着急找工作,被媒体解读为慢就业这一现象正在高校毕业生中悄然兴起。据企鹅发布的一份毕业季大数据报告,52%的95后毕业大学
正值阳光三月,春光明媚,对于大部分人来说,2018新的旅程才刚刚开始。回想过去的2017,又累又不赚钱的工作,难以满足当今社会的物质需求,总想找一份赚钱多又有前景的职业,提高自己的生活品质,让家人过上更好的生活。
根据一封发给供应商的信件,微软计划重新命名Nokia Oyj为Microsoft Mobile Oy。新的子公司将成为微软公司的移动设备部门。信中的内