Chrome DevTools功能介绍
1、Elements 元素:检查、调整页面,调试DOM,调试CSS
2、Network 网络: 调试请求,了解页面静态资源分布,网页性能检测
3、Console 控制台:调试JavaScript、查看log日志,交互式代码调试
4、Sources 源代码资源:调试JavaScript页面源代码,断点调试
5、Application 应用: 查看调试客户端存储,Cookie,LocalStorage,SessionStorage
6、Performance 性能:查看页面性能细节,细粒度对网页载入进行性能优化(高阶)
7、Memory 内存 CPU分析,内存堆栈分析器(高阶)
8、Security 安全:页面安全,证书
9、Audits 性能分析,使用Google Lighthouse辅助性能分析,给出优化建议(高阶)
打开Chrome开发者工具方式
1、菜单 -> 更多工具 -> 开发者工具
2、页面右键 -> 检查
3、快捷键
(1)打开最近关闭的状态
Mac: Command + Option + I
Windows: Ctrl + Shift + I
(2)快速进入Elements查看DOM或样式
Mac:Command + Option + C
Windows: Ctrl + Shift + C
(3)快速进入Console查看log运行JavaScript
Mac:Command + Option + J
Windows: Ctrl + Shift + J
(4)切换开发者工具位置
Mac:Command + Option + D
Windows: Ctrl + Shift + D
在Console中访问DOM节点
1、document.querySelectAll
2、使用$0访问选中的元素
3、拷贝 -> JS Path
在DOM中断点调试
1、属性修改时打断点 break on -> attribute modifications
2、节点删除时打断点 break on -> node removal
3、子树修改时打断点 break on -> subtree modifications
CSS调试
1、提升优先级
!important
2、动画效果
animation.css
https://daneden.github.io/animate.css/
Console面板
1、运行JavaScript代码,交互式编程
2、查看程序中打印的Log日志
3、断点调试代码Debugging
// 查看cookie document.cookie // 选择元素 document.querySelectorAll("img") // shift + enter 换行不执行 // 斐波那契 var fibo = function(n){ return n<3 ? 1 : fibo(n-1) + fibo(n-2); }
Console打印Log日志
// 1、信息 ,支持多个参数
console.log("hello", ", ", "world")// hello , world
// 变量替换
var s = "hi";
console.log("%s hello", s);
// hi hello
// 2、警告
console.warn()
// 3、错误
console.error()
// 4、表格形式打印json
console.table({name: "tom"})
// 5、group信息组
console.group("start");
console.log("log");
console.info("info");
console.groupEnd("start");
// 6、自定义样式
console.log("%c这是绿色的日志", "color: green")
document.querySelector("#log").addEventListener("click",()=>{
console.log("log");
})
// 断言
console.assert(1===2)
// 运行时间
console.time()
// do something
console.timeEnd()
// 清屏
console.clear()
调试JavaScrip基本流程
1、console.log() 或者 alert() 运行时调试
2、JavaScript断点调试
3、运行时变量调试,修改源代码临时保存调试
(1)debugger
(2)事件断点
(3)源代码断点
<html>
<body>
<!-- 计算器实例 -->
<input type="text">
<input type="text">
<button>计算</button>
<p></p>
<script>
// 选取button元素
var button = document.querySelector("button");
// 添加按钮点击事件
button.addEventListener("click", () => {
var inputs = document.querySelectorAll("input");
let a = parseInt(inputs[0].value);
let b = parseInt(inputs[1].value);
document.querySelector("p").textContent = a + b;
})
</script>
</body>
</html>
Snippets
// 添加jQuery
let script = document.createElement("script");
script.src="https://code.jquery.com/jquery-3.4.1.js";;
// 防止 CDN 篡改 javascript
script.integrity = "sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=";
// 会发起一个跨域请求(即包含Origin: HTTP头)。
// 但不会发送任何认证信息(即不发送cookie, X.509证书和HTTP基本认证信息)。
// 如果服务器没有给出源站凭证(不设置Access-Control-Allow-Origin: HTTP头),这张图片就会被污染并限制使用。
script.crossOrigin = "anonymous";
document.head.appendChild(script);
Application客户端存储
1、Cookies
// 添加cookie
document.cookie="a=2"
// 获取cookie
document.cookie
https://www.runoob.com/js/js-cookies.html
2、LocalStorage 永久存储
LocalStorage.getItem("key")
LocalStorage.setItem("key", "value")
3、SessionStorage 临时存储
sessionStorage.setItem("key", "value")
sessionStorage.getItem("key")
其他
网页截屏
comamnd + shifit +p
搜索 Capture full size screenshot
移动端开发调试
Sensors
NetWork conditions
</div>