But you can process all forms together at the end
and not call ajax on every page.
Does it eliminate conversation transaction management as stated on that website?
Yes, you can process all forms at the end because they are all the same form.
For example, say you have a customer registration form, that traditionally had four pages, each with their own form except the last invoice page.
Page 1 - Customer Information
Page 2 - Address
Page 3 - Payment Details
Page 4 - Invoice / Confirmation
With the traditional method the customer would fill out customer information, and submit form. System would save the customer in session or in DB and return a customer id.
They would then fill out address and submit where the system would take the customer id and save the address relation data.
Then the fill out the payment details where the system makes payment, and stores the payment info to that customer with customer id.
They then get the invoice.
PROBLEMS WITH THIS:
1) DB transaction cannot be held over multiple requests so any break will leave orpaned data in the DB.
2) Response time on multiple posts.
You could use session to save an in memory version of the customer until the end and persist that back to the database at end.
Using the one page approach you have all those forms bundled in one form and hide them until needed. The customer would fill out customer information, then submit which uses client script (no postback) to display the address form, they fill that out and submit (same as previous technique), and so forth until the payment details are filled out. Then that submit actually submits the data. The server would create the customer and associate all customer data in one single transaction which guarantees no orphaned data.
Ajax does not offer that same ability but what it does do is take away the "refresh" and postbacks by only posting the snippets (forms) back and forth.
My only issue with one page design is long forms and loaded content will make the page sizez very large, reducing initial load time. Kinda like a flash site where it takes awhile in the beginning. but instant after that.
The other issue I have is its not a new idea, people have done this for years.