jQuery.continuations provides a standarized way of processing Ajax responses via the Continuation object. The idea is that for most cases, your server side code will be generated responses that are similar in structure and you want to build a conventional approach to processing those requests.
jQuery.continuations hooks into jQuery via the
The processing pipeline is orchestrated through continuation policies. jQuery.continuations comes with several policies that are registered by default:
errorPolicy
(Matches when the error collection is not empty)
Publishes 'ContinuationError' topic through amplifyjs
refreshPolicy
(Matches when the refresh property is true)
Simply refreshes the page
navigatePolicy
(Matches when the url property is not empty)
Navigates the window to the specified url
payloadPolicy
(Matches when the following properties exist: payload, topic)
Publishes the specified topic and payload through amplifyjs
Before each request is initiated, a custom header is appended (X-Correlation-Id). This value originates from one of two sources: 1) randomly assigned for a request 2) the id of the form responsible for the request.
Note: It's up to your web framework to handle setting the header into its response.
Assuming that you are sending the header back down through your response, jquery.continuations handles it from there by doing two things:
The AjaxCompleted topic
This topic is published through the jquery.continuations event aggregator facade (we use amplify). The message that is published contains a correlationId property with the appropriate value.
The continuation processing pipeline
Before the continuation is processed, the correlationId property is set.
jQuery.continuations also integrates with jquery.form by providing a correlatedSubmit method to any form ($('#myForm').correlatedSubmit())
An example of how to register a custom policy:
$.continuations.applyPolicy({ custom policy... })