Top Banner
Chrome DevTools
48
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Chorme devtools

Chrome DevTools

Page 2: Chorme devtools

Console API

Page 3: Chorme devtools

Before we start..

Page 4: Chorme devtools

Console API

Do not useconsole.log

ONLY!

Page 5: Chorme devtools

console.time()console.time("Array initialize"); var array= new Array(100000); for (var i = array.length - 1; i >= 0; i--) { array[i] = new Object(); };console.timeEnd("Array initialize");

Try it !

Page 6: Chorme devtools

console.time()

console.time( "Array initialize" );

Page 7: Chorme devtools

console.timeStamp()

Marking the Timelinefunction AddResult(name, result) { console.timeStamp("Adding result"); //do something….}

Page 8: Chorme devtools
Page 9: Chorme devtools

console.count()function login(user) {

console.count("Login called for user " + user); }

users = ['Irish', 'Bakaus', 'Kinlan' ]; users.forEach(function(element, index, array) {

login(element); }); login(users[0]);

Try it !

Page 10: Chorme devtools

console.group()var user = "jsmith", authenticated = false;

console.group("Authentication phase"); console.log("Authenticating user '%s'", user); // authentication code here... if (!authenticated) {

console.log("User '%s' not authenticated.", user) }

console.groupEnd();

Try it !

Page 11: Chorme devtools

It’s

Easy !!

Page 12: Chorme devtools

function Person(firstName, lastName, age) { this.firstName = firstName;

this.lastName = lastName; this.age = age;

}

var family = {}; family.mother = new Person("Susan", "Doyle", 32); family.father = new Person("John", "Doyle", 33); family.daughter = new Person("Lily", "Doyle", 5); family.son = new Person("Mike", "Doyle", 8);

console.table(family, ["firstName", "lastName", "age"]);

Page 13: Chorme devtools

console.table()

Page 14: Chorme devtools

還有些很好用的…

console.assert(expression, object)

console.dir(object)

console.dirxml(object)

console.trace()

Page 15: Chorme devtools

Command Line API

Page 16: Chorme devtools

Selecting Elements

$_ : the most recently evaluated expression

$0 - $4 : last five DOM elements

$('#id') : document.querySelector().

$$('img') : document.querySelectorAll()

$x('html/body/p') : Xpath

Page 17: Chorme devtools

$_ :

…………………

Demo : google.com

Page 18: Chorme devtools

inspect() //display the element

function sum(x, y) { return x + y;}monitor(sum); unmonitor(sum);

monitor

inpsect

Try it !

Page 19: Chorme devtools

monitor event

Page 20: Chorme devtools

monitor event

monitorEvents(object[,events])

monitorEvents(window, ["resize", "scroll"]);

unmonitorEvents(window);

Page 21: Chorme devtools

Element

Page 22: Chorme devtools

Tips

Hide element : [H]

Element pseudo states: (:active, :hover, :focus, :visited)

Styles : color palette

Page 23: Chorme devtools

Dom Breakpoints

http://ppt.cc/mjm3j

Page 24: Chorme devtools

Porperties

Page 25: Chorme devtools

Workspace

Page 26: Chorme devtools
Page 27: Chorme devtools

Tips

Replace Sublime Text

Source Map

Page 28: Chorme devtools

Source

Page 29: Chorme devtools
Page 30: Chorme devtools

Debugging JavaScript

Page 31: Chorme devtools

Event Listeners SetInterval SetTimeout XMLHttpRequest Promises RequestAnimationFrame MutationObservers

Page 32: Chorme devtools

Asynchronous JS callbacks

Full stack trace

Page 33: Chorme devtools

Breakpoints

A breakpoint is an intentional stopping or pausing place in a script

Page 34: Chorme devtools

Breakpoints http://todomvc.com/examples/angularjs/

Page 35: Chorme devtools

Demo 1

Page 36: Chorme devtools
Page 37: Chorme devtools

Demo 2

Watch Expressions

debugger

console.trace()

Page 38: Chorme devtools

Demo 3MutationObserver

Page 39: Chorme devtools

Network

Page 40: Chorme devtools

Resource Timing API

window.performance.timing

[firebug]

參考資料 : http://ppt.cc/HHeT3

Page 41: Chorme devtools

Resource Timing API

window.performance.getEntries()

//return an array of “resource timing objects”

Page 42: Chorme devtools
Page 43: Chorme devtools

HAR

http://ericduran.github.io/chromeHAR/

Page 44: Chorme devtools

Tips

Resource previews

Sorting and filtering

Websocket frames

Page 45: Chorme devtools

Websocket Frames

https://www.websocket.org/

Page 46: Chorme devtools
Page 47: Chorme devtools

Request Sent / Sending Waiting (TTFB) Content Download / Downloading

Page 48: Chorme devtools

Thank you