Linux.com

Feature: Web Development

Debug your Web code with Firebug

By Mayank Sharma on March 08, 2007 (8:00:00 AM)

Share    Print    Comments   

Developing Web sites isn't as straightforward a task as it used to be at the turn of the century. With an influx of new tools, technologies, and development methodologies, a Web page is no longer a string of plain ol' HTML, but instead a complex mix of stylesheets, markup languages, and scripts. Debugging this complicated blend is no easy task. Firebug is an open source add-on to the Firefox Web browser that lets you edit and debug everything from simple CSS and JavaScript templates to complex AJAX applications.

You can find several applications that assist Web developers in creating and debugging projects. Dr. Tarique Sani, CTO of SANIsoft and co-author of Professional PHP 4 Programming, cites the DOM Inspector, Venkman JavaScript Debugger, LiveHTTPHeaders, and some tools of the Web Developer toolbar. "Before Firebug we had to make do with this mishmash of tools," Sani says. "Firebug makes life much simpler by giving all the required tools in one easy-to-use interface."

Once you download the Firebug extension, Firefox will automatically install it. To activate it, click on its icon in the right corner of the Firefox status bar. Once activated, Firebug can be used to analyze every Web page you visit, but this behavior is customizable.

If you have multiple tabs open on your browser, Firebug will invoke a separate session for each tab. This means you can edit multiple Web pages with Firebug in the same Web browser. By default, clicking on the Firebug icon will bring up the Firebug console in a small panel at the bottom of the page. If you have a big monitor, you can also open Firebug in a separate window.

Easy to navigate code and hack CSS

Firebug has a simple tabbed layout that shows different components and characteristics of a page, such as HTML, CSS, JavaScript, DOM, and network activity.

Firebug presents code in a tree view. If you are looking for a particular element in the code, use the search bar that highlights results in the code as you type. Once you've selected an element in the code, Firebug will show you the CSS styles that apply to it in particular and the styles that have been borrowed from the body. You can disable any style characteristic with a single click, and the page will be automatically updated. The Layout tab helps you position elements, visually guiding you with rulers and guidelines.

Firebug also gets you the value of a CSS property in a snap. Move the mouse over HTML color tags to get a patch showing the color, or move over an image link to preview the image with its dimensions.

The arrow keys will help you cycle between all possible CSS properties for a particular element, which is useful if you are new to CSS. Firebug also has a list of standard CSS keywords that autocomplete to help you insert elements as you type.

Firebug
Click to enlarge
If you run a blog but don't dabble in HTML or CSS every day, customizing a theme for your pages can be daunting. With Firebug, just load the default theme, click the Inspect button, and move your mouse over the page. Firebug will automatically jump to the HTML code that generates the section of the page the cursor is over. In the code, depending on what type of element you point to, its border, margin, and padding are all highlighted on the page. For example, as shown in the figure, when I move the mouse over the recent entries list item (<li id="recent-entries">), Firebug highlights the part of the page that this piece of HTML controls. In the style panel, on the right, Firebug also displays the CSS style that applies to the list item.

Inspect and debug invisible AJAX traffic

Apart from being a handy visual reference to editing CSS, Firebug is also capable of working on complex Web pages that employ AJAX. The XMLHttpRequest (XHR) object is an important part of AJAX applications like Gmail. It's used to fetch data from the Web server to update the page. If the "Show XMLHttpRequests" option is enabled, the Console tab shows every XHR request, which can be expanded to reveal header information along with the response received from the server.

There's also the Net tab, which gives a real-time view of the file being loaded in the page, be it HTML, CSS, JavaScript, Flash, or images. This is also a nice place to check and optimize the time it takes to load a page, since you can preview the elements being requested along with their size and the sequence in which they are loaded.

Firebug also includes a JavaScript profiler that gives detailed reports on every function. It can be toggled manually or from the JavaScript by marking a function for auto-profiling. It keeps track of when a function was called and what parameters were passed to it.

Firebug allows you to set break points to pause JavaScript execution on any line. You can set break points indiscriminately, by clicking on a particular line, or set conditional break points that pause execution only if certain conditions are true. You can then step forward line by line to analyze how the state of the program changes in real time.

If you want to test a function, just paste it in the command line. Firebug can also take a segment of code and crunch it together in one line, which can help people create bookmarklets.

Conclusion

Firebug can benefit both professional and occasional Web developers. Its biggest advantage is the fact that almost everything in Firebug is a hyperlink. For example, anywhere you see a function, such as in the Profiler, you can click on it to go to its place in the source code, or click on an HTML element to see its style.

Firebug is popular with professional Web developers, many of whom have been using it since its early beta days. Although Firebug's design is intuitive, a little documentation that shows where everything is and what a particular button does can go a long way with non-professional, hobbyist Web developers.

Share    Print    Comments   

Comments

on Debug your Web code with Firebug

Note: Comments are owned by the poster. We are not responsible for their content.

Firebug

Posted by: Galik on March 09, 2007 02:16 AM
Firebug Rocks pebbles and sand. It really is that good!

#

Links

Posted by: Anonymous Coward on March 09, 2007 01:04 AM
These are some websites that I find useful when doing web-development.

W3C Markup Validator;
* <a href="http://validator.w3.org/" title="w3.org">http://validator.w3.org/</a w3.org>

W3C CSS Validator;
* <a href="http://jigsaw.w3.org/css-validator/" title="w3.org">http://jigsaw.w3.org/css-validator/</a w3.org>

HTML/XHTML reference;
* <a href="http://www.w3schools.com/tags/default.asp" title="w3schools.com">http://www.w3schools.com/tags/default.asp</a w3schools.com>

CSS reference;
* <a href="http://www.w3schools.com/css/css_reference.asp" title="w3schools.com">http://www.w3schools.com/css/css_reference.asp</a w3schools.com>

#

TamperData

Posted by: Anonymous Coward on March 09, 2007 01:36 AM
This combined w/ TamperData and the Web Developer toolbar make up probably the best web programming tools around.

#

Debug your Web code with Firebug

Posted by: Anonymous [ip: 88.232.163.140] on December 14, 2007 03:52 PM
<a href="http://r10noktanet-seoyarismasi.blogspot.com" title="www.r10.net küresel ısınmaya hayır seo yarışması">www.r10.net küresel ısınmaya hayır seo yarışması</a>

#

Debug your Web code with Firebug

Posted by: Anonymous [ip: 62.226.196.34] on March 09, 2008 09:56 PM
i learn to debug my site <a href="http://mobbing-gegner.de">mobbing gegner</a>

thx for sharing your kowhow!

#

This story has been archived. Comments can no longer be posted.



 
Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya