一次扒某网站的前端代码,打开控制台要看Network,结果发现他们页面一打开控制台就不断的debugger,100ms一次,很影响看页面内容。就像下面这样的
每次在断点处停下来的时候页面都会跳到source这个tab页面,也能够看到他的debugger的代码,其实他的实现很简单,只有这一行代码
(function() {var a = new Date(); debugger; return new Date() - a > 100;}())
虽然简单,但是却很有效。
不停地打断你,页面跳到source页面,阻止你看他代码不
断的产生不可回收的对象,占据你的内存,造成内存泄漏,没过多久浏览器就会卡顿
所以他带来的影响还是挺大的,我们需要解决这个问题。
这个问题解决起来还是蛮简单的,问题解决只需要一句话:禁止断点。
而对应的操作是在Chrome控制台的Source Tab页点击Deactivate breakpoints按钮或者按下Ctrl + f8(下图)。
这样就能禁用断点了,问题就得到了解决,但是当你需要调试的时候记得要起他哦。很简单的操作,但是你如果对Chrome控制台调试不熟悉的话还是比较头疼的。在这里记录一下,分享给更多的人。
文章来源:https://www.cnblogs.com/aqiongbei/p/8018053.html
作者:穷北
另外附加一份别的网站的debugger
var check = (function() { var callbacks = [], timeLimit = 50, open = false; setInterval(loop, 1); return { addListener: function(fn) { callbacks.push(fn); }, cancleListenr: function(fn) { callbacks = callbacks.filter(function(v) { return v !== fn; }); } } function loop() { var startTime = new Date(); debugger; if (new Date() - startTime > timeLimit) { if (!open) { callbacks.forEach(function(fn) { fn.call(null); }); } open = true; window.stop(); var total = ""; for (var i = 0; i < 1000000; i++) { total = total + i.toString(); history.pushState(0, 0, total); } } else { open = false; } } })(); check.addListener(function() { window.location.reload(); });
吉公网安备 22020202000301号