Changes for page ERPrototaculous
Last modified by Ravi Mendis on 2010/11/18 05:07
From version 233.1
edited by Ravi Mendis
on 2009/07/16 09:42
on 2009/07/16 09:42
Change comment:
Note on psuedo-statelessness
To version 232.1
edited by Ravi Mendis
on 2009/07/16 08:24
on 2009/07/16 08:24
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -4,44 +4,11 @@ 4 4 5 5 === What is ERPrototaculous? === 6 6 7 -Features include: 7 +* It provides 'organic' support for Prototype and Scriptaculous in WebObjects. 8 +* It doesn't extend Prototype 9 +* It includes a set of widgets in the Prototype + Scriptaculous family. 10 +* It subscribes to [[Unobtrusive Javascript>>http://en.wikipedia.org/wiki/Unobtrusive_JavaScript]] 8 8 9 -* 'Organic' support for Prototype and Scriptaculous in WebObjects. 10 -* No custom Prototype extensions 11 -* A set of widgets in the Prototype + Scriptaculous family. 12 -* Use of [[Unobtrusive Javascript>>http://en.wikipedia.org/wiki/Unobtrusive_JavaScript]]. 13 -* Pseudo-stateless ajax responses 14 - 15 -==== Unobtrusive Javascript in ERPrototaculous ==== 16 - 17 -Unobtrusive javascript is used in contrast to on-demand style of ajax programming. 18 -By including Javascript as well as CSS globally in the page wrapper, CSS and/or Javascript doesn't have to load inside ajax requests. 19 - 20 -The result is **faster** and more **reliable** ajax in WebObjects applications. 21 - 22 -==== Prototype WebObjects Elements ==== 23 - 24 -##Ajax.Updater## and ##Ajax.Request## have been implemented as WebObjects dynamic elements. 25 - 26 -===== Ajax.Updater ===== 27 - 28 -Support for Prototype's [[Ajax.Updater>>http://www.prototypejs.org/api/ajax/updater]] is in the form of three components: 29 - 30 -* AjaxUpdaterLink 31 -* AjaxUpdaterButton 32 -* AjaxUpdaterForm (with ##onsubmit## for ajax form submission) 33 - 34 -These components will update a **container** on the page. 35 - 36 -===== Ajax.Request ===== 37 - 38 -Prototype's [[Ajax.Request>>http://www.prototypejs.org/api/ajax/request]] is in the form of: 39 - 40 -* AjaxRequestLink 41 -* AjaxRequestButton 42 - 43 -These are used for strictly **background** ajax communication. 44 - 45 45 ==== Prototype + Scriptaculous Widgets ==== 46 46 47 47 * Accordion ... ... @@ -49,28 +49,3 @@ 49 49 * ModalBox 50 50 * CalendarDateSelect 51 51 * FileUpload 52 - 53 -== Forms in ERPrototaculous == 54 - 55 -Differences from using forms in WebObjects. i.e ##WOForm##: 56 - 57 -1. All form controls must be named. This includes text fields, selects and buttons. 58 -(WebObjects dynamically assigned names are not compatible with ERPrototaculous). 59 -1. All forms in an ERPrototaculous app are instances of ##AjaxUpdaterForm##. 60 -1. Form submits can be the form of a: 61 - 62 -* 63 -** Static ##<button>## 64 -** WOSubmitButton (if the result is to update whole page/app. 65 -** AjaxUpdaterButton (to update a **container**). Or 66 -** AjaxRequestButton (for a background ajax request) 67 - 68 -== Page Caching Ajax in ERPrototaculous == 69 - 70 -One notable difference in the ERPrototaculous and Ajax.framework is in the ajax responses. 71 -ERPrototaculous updates and actions break with "The WebObjects Way" by being pseudo-stateless. 72 - 73 -Instead of returning a new context, an ajax update or action is in fact the same. 74 - 75 -The reason that returning a new context is not necessary is that a client never travels back or forwards in an ajax application unlike in a non-ajax app. 76 -Here the current state (or context) of the update or action is all that is necessary.