Firebug
本文轉載自該處.
1. Firebug 中的Logging
Firebug有5種logging的方法:
1. console.log
2. console.debug
3. console.error()
4. console.info()
5. console.warn() ![]()
console.log('This is log message'); console.debug('This is debug message'); console.error('This is error message'); console.info('This is info message'); console.warn('This is warning message');
2. Firebug 中的Grouping
當輸出信息較多的情況下,可以嘗試用Grouping把信息組合起來輸出
var groupname = 'group1'; console.group("message group : " , groupname); console.log("log message 1 from ", groupname); console.log("log message 2 from ", groupname); console.log("log message 3 from ", groupname); console.groupEnd(); groupname = 'group2'; console.group("message group : " , groupname); console.log("log message 1 from ", groupname); var subgroupname = 'subgroup1'; console.group("message group : " , subgroupname); console.log("log message 1 from ", subgroupname); console.log("log message 2 from ", subgroupname); console.log("log message 3 from ", subgroupname); console.groupEnd(); console.log("log message 3 from ", groupname); console.groupEnd();
3. console.dir 和 console.dirxml
- console.dir: 列舉object所有的屬性和方法
- console.dirxml: 講HTMLElement以xml樹狀圖形式展示
<table id="tbl1" cellpadding="0" cellspacing="0" border="0"> <tr> <td>A</td> <td>B</td> <td>C</td> </tr> </table> <script language="javascript" type="text/javascript"> //Create a class function Car(){ this.Model = "Old Model"; this.getManufactor = new function(){ return "Toyota"; } } //Create a object var objCar = new Car(); //Firebug console.dir(objCar); console.dirxml(document.getElementById('tbl1')); </script>
4. Assertion
function whatIsMyAge(year){ var currYear = 2007; return currYear - year; } var yearOfBirth1 = 1982; var age1 = 25; console.assert(whatIsMyAge(yearOfBirth1) == age1); var yearOfBirth2 = 1982; var age2 = 11; console.assert(whatIsMyAge(yearOfBirth2) == age2); //You should get the error here.
只顯示一個失敗,證明有一個通過.
5. Tracking
console.trace() 可用於追蹤一系列function,清楚反應每個方法的運行軌跡.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Firebug</title> <script language="javascript" type="text/javascript"> function startTrace(str){ return method1(100,200); } function method1(arg1,arg2){ return method2(arg1 + arg2 + 100); } function method2(arg1){ var var1 = arg1 / 100; return method3(var1); } function method3(arg1){ console.trace(); var total = arg1 * 100; return total; } </script> </head> <body> <input type="button" value="Trace" onclick="startTrace('4');"/> </body> </html>
上圖顯示,用戶在X=46,Y=18的地方點擊了按鈕,收到用戶的動作之後,激發了startTrace方法,由於startTrace方法中包含method1(),於是method1()被call,如此類推.
6. Timing
衡量代碼運行時間
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Firebug</title> <script language="javascript" type="text/javascript"> function measuretheTime(){ var timeName = 'measuringTime'; console.time(timeName); for(var i=0;i<1000;i++){ ///do something for(var j=0;j<100;j++){ //do another thing. } } console.timeEnd(timeName); } </script> </head> <body> <input type="button" value="Trace" onclick="measuretheTime();"/> </body> </html>
measuringTime: 1ms
Firebug Tutorials
- Firebug Tutorial – Overview of Firebug
- Console tab
- HTML tab
- Script tab
- Net, CSS and DOM