Single Page Web Applications
JavaScript end-to-end
Michael S. Mikowski and Josh C. Powell
Foreword by Gregory D. Benson
  • September 2013
  • ISBN 9781617290756
  • 432 pages
  • printed in black & white

Insights from generations of SPA refinement.

From the Foreword by Gregory D. Benson

In Single Page Web Applications you'll learn to build modern browser-based apps that take advantage of stronger client platforms and more predictable bandwidth. You'll learn the SPA design approach, and then start exploring new techniques like structured JavaScript and responsive design. And you'll learn how to capitalize on trends like server-side JavaScript and NoSQL data stores, as well as new frameworks that make JavaScript more manageable and testable as a first-class language.

Table of Contents detailed table of contents




about this book

about the cover illlustration

Part 1 Introducing SPAs

1. Our first single page application

1.1. Definition, a little history, and some focus

1.2. Build our first SPA

1.3. The user benefits of a well-written SPA

1.4. Summary

2. Reintroducing JavaScript

2.1. Variable scope

2.2. Variable hoisting

2.3. Advanced variable hoisting and the execution context object

2.4. The scope chain

2.5. JavaScript objects and the prototype chain

2.6. Functions—a deeper look

2.7. Summary

Part 2 The SPA client

3. Develop the Shell

3.1. Grok the Shell

3.2. Set up the files and namespaces

3.3. Create the feature containers

3.4. Render the feature containers

3.5. Manage the feature containers

3.6. Manage application state

3.7. Summary

4. Add feature modules

4.1. The feature module strategy

4.2. Set up feature module files

4.3. Design method APIs

4.4. Implement the feature API

4.5. Add frequently needed methods

4.6. Summary

5. Build the Model

5.1. Understand the Model

5.2. Set up the Model and other files

5.3. Design the people object

5.4. Build the people object

5.5. Enable sign-in and sign-out in the Shell

5.6. Summary

6. Finish the Model and Data modules

6.1. Design the chat object

6.2. Build the chat object

6.3. Add Avatar support to the Model

6.4. Complete the Chat feature module

6.5. Create the Avatar feature module

6.6. Data binding and jQuery

6.7. Create the Data module

6.8. Summary

Part 3 The SPA server

7. The web server

7.1. The role of the server

7.2. Node.js

7.3. Advanced routing

7.4. Adding authentication and authorization

7.5. Web sockets and Socket.IO

7.6. Summary

8. The server database

8.1. The role of the database

8.2. An introduction to MongoDB

8.3. Use the MongoDB driver

8.4. Validate client data

8.5. Create a separate CRUD module

8.6. Build the Chat module

8.7. Summary

9. Readying our SPA for production

9.1. Optimize our SPA for search engines

9.2. The cloud and third-party services

9.3. Caching and cache busting

9.4. Summary

Appendix A: JavaScript coding standard

Appendix B: Testing an SPA


© 2014 Manning Publications Co.

About the Technology

Web 1.0: Sites request pages from the server one at a time. Each interaction with a page means another round-trip. Slow, awkward, and easy.

Web 2.0: AJAX . Individual elements change without updating the whole page. Great idea, but a lot more work on both the server and the client.

Enter the modern single page web application (SPA). With the near universal availability of capable browsers and powerful hardware, you can push most of the web application to the browser; including HTML rendering, data, and business logic. The only time a client needs to communicate with the server is to authenticate or synchronize data. This means users get a fluid, comfortable experience whether they're surfing at their desk or using a phone app on a sketch 3G connection.

About the book

If your website is a jumpy collection of linked pages, you are behind. Single page web applications are your next step: pushing UI rendering and business logic to the browser and communicating with the server only to synchronize data, they provide a smooth user experience, much like a native application. But, SPAs can be hard to develop, manage, and test.

Single Page Web Applications shows how your team can easily design, test, maintain, and extend sophisticated SPAs using JavaScript end-to-end, without getting locked into a framework. Along the way, you'll develop advanced HTML5, CSS3, and JavaScript skills, and use JavaScript as the language of the web server and the database.

This book assumes basic knowledge of web development. No experience with SPAs is required.

What's inside

  • Design, build, and test a full-stack SPA
  • Best-in-class tools like jQuery, TaffyDB, Node.js, and MongoDB
  • Real-time web with web sockets and Socket.IO
  • Touch controls for tablets and smartphones
  • Common SPA design mistakes

About the reader

This book assumes you know JavaScript and web dev basics. No experience with SPA tools and techniques required.

About the authors

The authors are architects and engineering managers. Michael Mikowski has worked on many commercial SPAs and a platform that processes over 100 billion requests per year. Josh Powell has built some of the most heavily trafficked sites on the web.

combo $44.99 pBook + eBook + liveBook
eBook $35.99 pdf + ePub + kindle + liveBook
Already own this book?
You can add audio for liveBook from your bookshelf!

FREE domestic shipping on three or more pBooks

Thorough, comprehensive, and methodical.

Mark Ryall, ThoughtWorks

Essential reading, even if you’re using a framework.

Ken Rimple, Author of "Spring Roo in Action"

I highly recommend the techniques outlined here.

Jason Kaczor, SharePoint MVP

An excellent guide.

Mike Greenhalgh, NHS Wales