Foreword
preface
1.the tenets
managing complexity
modular components
achieving modularity
benefits of modularity
ten tenets for large web applications
2.object orientation
the fundamentals of oop
why object orientation?
uml class diagrams
generalization
association
modeling a web page
defining page types
defining module types
writing the code
achieving modularity
object-oriented php
classes and interfaces
inheritance in php
object-oriented javascript
objects
inheritance in javascript
3.large-scale html
modular html
a bad example: using a table and presentation markup
a better example: using css
the best example: semantically meaningful html
benefits of good html
html tags
bad html tags
good html tags
ids, classes, and names
conventions for naming
xhtml
benefits of xhtml
xhtml guidelines
rdfa
rdfa triples
applying rdfa
html 5
4.large-scale css
modular css
including css
applying css
specificity and importance
scoping with css
standard module formats
positioning techniques
css box model
document flow
relative positioning
absolute positioning
floating
layouts and containers
example layouts
example containers
other practices
browser reset css
font normalization
5.large-scale javascript
modular javascript
including javascript
scoping with javascript
working with the dom
common dom methods
popular dom libraries
working with events
event handling normalization
a bad example: global data in event handlers
a good example: object data in event handlers
event-driven applications
working with animation
motion animation
sizing animation
color transition
an example: chained selection lists
6.data management
dynamic modules
data managers
creating data managers
extending data managers
data using sql as a source
an sql example
data using xml as a source
an xml example
data from web services
data in the json format
cookies and forms
managing data in cookies
managing data from forms
7.large-scale php
modular web pages
generating pages in php
working with pages
public interface for the page class
abstract interface for the page class
implementation of the page class
extending the page class
working with modules
public interface for the module class
abstract interface for the module class
implementation of the module class
extending the module class
an example module: slideshow
layouts and containers
special considerations
handling module variations
multiple instances of a module
dynamic javascript and css
implementing nested modules
8.large-scale ajax
in the browser
managing connections
using ajax libraries
on the server
exchange formats
server proxies
modular ajax
mvc and ajax
using ajax with mvc
public interface for the model object
implementation of the model object
public interface for the view object
abstract interface for the view object
view object implementation
public interface for the connect object
abstract interface for the connect object
implementation of the connect object
controllers
an example of ajax with mvc: accordion lists
9.performance
caching opportunities
caching css and javascript
caching modules
caching for pages
caching with ajax
using expires headers
managing javascript
javascript placement
javascript minification
removing duplicates
distribution of assets
content delivery networks
minimizing dns lookups
minimizing http requests
control over site metrics
modular testing
using test data
creating test data
10.application architecture
thinking modularly
organizing components
sitewide architecture
section architecture
architecture for pages
architecture and maintenance
reorganizing module uses
adding module variations
making widespread changes
changes in data sources
exposing modules externally
index