A Single Page Application is a special kind of web application. More traditional web applications involve page changes, where the browser is required to fetch a new page from the server, in order to advance the interaction of the user with the application. But page changes in the browser disrupt the user experience, since there is a perceivable transition from one page (which has to be unloaded) to the next page (which has to be retrieved from the server and displayed from scratch by the browser). This often involves the unnecessary re-transmission and re-display of already existing und unchanged page elements (e.g. a navigation bar, unchanged results from a database query), and suffers from the fact that network latencies cannot be hidden from the user.
Single page applications try to amend for this by requiring no page change of the browser through the whole duration of the application session. All user interaction and changes of the application state are handled in the context of a single Web document. The user experience becomes more continuous and fluid, and network latencies can be hidden more easily. There are various techniques available to allow the browser to stay with a single page, the most prominent currently being Ajax techniques. Another long-available strategy to achieve the same effect are browser plug-in technologies such as Java applets or Flash.
Scratchpad
edit- !! There is now a SPA article in global space !!: http://en.wikipedia.org/wiki/Single_page_application - I wonder why I had to go through all the trouble... (12 March 2010)
- See my edited copy of it in my user space: User:Thron7/Singel_page_application2
- Trimpath has a SPA wiki page, but uses the rather vague term "fits on single page" (what's that supposed to mean?!); it also mentions enhancement by connection to a server.[1]
- TheServerSide features an article "The Single Page Interface Manifesto" [2]
- It references "The Single Page Interface Manifesto" [3]
- and "Improving User Workflows with Single-Page User Interfaces" [4]
Notes
edit- ^ http://code.google.com/p/trimpath/wiki/SinglePageApplications (Accessed 12 May 2008)
- ^ http://www.theserverside.com/news/thread.tss?thread_id=59680 (Accessed 12 March 2010)
- ^ http://itsnat.sourceforge.net/php/spim/spi_manifesto_en.php
- ^ http://www.uxmatters.com/mt/archives/2006/11/improving-user-workflows-with-single-page-user-interfaces.php (Accessed 12 March 2010)
Resources
edit- the trimpath project on Google Code uses the term 'single page application' and also lists some sample applications: http://code.google.com/p/trimpath/wiki/SinglePageApplications
- Z3Lab, a Zope3-based open source project, uses it: http://www.z3lab.org/sections/front-page/design-features/single-page-application
- a blog entry: http://intersezioni.wordpress.com/2005/12/17/single-page-application/
- an entry of a belgian LotusNotes developer: http://blog.lotusnotes.be/domino/archive/2007-05-12-domino-spade-1.html
- a page from Sun's Java BluePrints program: https://blueprints.dev.java.net/petstore/
- Sitepen, one of the companies behind the popular Dojo toolkit: http://www.sitepen.com/blog/2007/05/02/ambassador-publications-announces-dojo-based-app/
- Online version of a book, 'Ajax Design Patterns': http://ajaxpatterns.org/Richer_Plugin#Single_Page_Application_.28SPA.29
- Paper on Southern Cross University, Australia, from Australian WWW Conference: http://ausweb.scu.edu.au/aw07/papers/refereed/rees/paper.html
- ... and Google Scholar throws up another couple of handful academic papers that at least use the term 'single page application': http://scholar.google.com/scholar?q=%22single+page+application%22&hl=en&lr=&btnG=Search