Wrox Programmer Forums
BOOK: Professional JavaScript for Web Developers 2nd edition ISBN: 9780470227800
This is the forum to discuss the Wrox book Professional JavaScript for Web Developers, 2nd Edition by Nicholas C Zakas; ISBN: 9780470227800
Welcome to the p2p.wrox.com Forums.

You are currently viewing the BOOK: Professional JavaScript for Web Developers 2nd edition ISBN: 9780470227800 section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
Old September 27th, 2010, 04:23 AM
Registered User
Join Date: Jul 2010
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Default Best Practice Chapter Question

Early on in this chapter it states that you should decouple HTML and JavaScript from one another, and it specifically states this in relation to using innerHtml to insert a chunk of HTML into the page. However later on in the same chapter under the section 'Optimize DOM Interactions' it states you should use innerHtml for DOM manipulation over DOM methods such a createElement and appendChild as it's faster. Doing this however contradicts the previous best practice of decoupling HTML and JavaScript. So which best practice should I stick to?
Old September 28th, 2010, 05:10 PM
nzakas's Avatar
Wrox Author
Join Date: Dec 2004
Posts: 217
Thanks: 0
Thanked 5 Times in 5 Posts

This isn't a contradiction: one is talking about performance, the other is talking about maintainability. You definitely shouldn't embed HTML into your JavaScript code - that's absolutely true. That doesn't mean you can use innerHTML, though, it just means you shouldn't keep your HTML in the JavaScript where you're using innerHTML. So instead of this:

element.innerHTML = "<p>Hello world!</p>";
You would read the HTML string from somewhere else (perhaps via an Ajax call), store it in a variable, and do this:

element.innerHTML = codeToAdd;
Nicholas C. Zakas
Author, Professional JavaScript for Web Developers (ISBN 0764579088)

Similar Threads
Thread Thread Starter Forum Replies Last Post
[Help]Chapter 10 Practice 4 00Raiser BOOK: Beginning Java 2, JDK 5 Edition 2 October 30th, 2010 07:02 AM
Problems to practice with? kotozy Excel VBA 1 December 29th, 2009 12:21 AM
An error for AJAX practice wen BOOK: Beginning Ajax with ASP.NET 0 December 13th, 2006 06:02 PM
practice help with C++ mastrgamr C++ Programming 2 November 2nd, 2006 07:55 AM
Looking for some practice Vano2005 C++ Programming 2 July 7th, 2005 04:30 PM

Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.