HTML and CSS Reference
In-Depth Information
It is interesting that many developers are quite okay with the use of innerHTML but are
quick to deride the use of JavaScript's eval() statement. In many ways, these are the same
concepts: the former provides direct access to the markup parser and the latter provides
direct access to the JavaScript interpreter. Regardless of the consistency of Web developers'
thinking patterns, the codification of innerHTML is quite a welcome change.
The embrace of common practices by HTML5 isn't limited to innerHTML ; the specification
supports all sorts of features, such as designMode features that allow for browser-based
WYSIWYG editing, commonly used DOM workarounds like insertAdjacentHTML() ,
emerging DOM methods like getElementsByClassName() , more-esoteric DOM
specifications like ranges and selections, and more.
The specification also provides APIs for what it introduces. We explored just such an
API earlier in the chapter when we experimented with canvas scripting. Similarly, elements
like audio and video expose a number of properties such as volume and methods such as
play() .
There is much to be discovered when reading the HTML5 specification closely. Consider,
for example, how browsers handle runaway script code. There really is nothing online that
defines how or when this is done, but the HTML5 specification actually starts to address
such problems (section 6.5.3.4):
User agents may impose resource limitations on scripts, for example, CPU quotas,
memory limits, total execution time limits, or bandwidth limitations. When a
script exceeds a limit, the user agent may either throw a QUOTA_EXCEEDED_
ERR exception, abort the script without an exception, prompt the user, or throttle
script execution.
If you take the time to read the specification, you will find many passages such as this
that offer hope that someday troubling corner cases in Web development will be reduced or
even eliminated. However, you might also get a sense that the aims of the specification are
a bit too grand. You can find bits and pieces of half-baked ideas about undo-redo handling;
subtle hints about important architectural changes, such as the management of history for
supporting Ajax applications; discussion of offline features and storage schemes; and
documentation of a variety of communication schemes, from interframe message posting to
full-blown Web Socket communication. In some cases, these diversion APIs will spawn their
own documents, but in other cases they just clutter the specification. The critics really do
have a point here.
Major HTML5 Themes
As we wind down the chapter, we need to take a look at some of the major themes of HTML5.
These are deep issues that you will encounter over and over again in the Web development
community. These are presented mostly to spur your thinking rather than to offer a definitive
answer, because HTML5 is quite a moving target.
HTML5 Today or Tomorrow?
The simple question that you must have about HTML5 is, can I use it yet? The answer is
yes. You can embrace the future just by adopting the simple <!DOCTYPE html> statement.
Of course, that isn't very interesting, so your question really is, can I use any of the new
Search WWH ::




Custom Search