Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 2.0
    • Fix Version/s: None
    • Component/s: Ajax/JavaScript
    • Labels:
      None
    • Environment:

      Operating System: All
      Platform: All

    • Issuezilla Id:
      638
    • Status Whiteboard:
      Hide

      cat2 frame size_large importance_large draft

      Show
      cat2 frame size_large importance_large draft

      Description

      Many modern Ajax frameworks support back button actions.

      JSF should as well.

      This probably means both browser history manipulation and state restoration.
      Could be pretty hard to do, but really important for being seen as a real Ajax
      solution.

        Issue Links

          Activity

          Hide
          driscoll added a comment -
          Show
          driscoll added a comment - Also, see here for a newly proposed standard by Google: http://googlewebmastercentral.blogspot.com/2009/10/proposal-for-making-ajax-crawlable.html
          Hide
          Ed Burns added a comment -

          Prepare to delete api subcomponent

          Show
          Ed Burns added a comment - Prepare to delete api subcomponent
          Hide
          Ed Burns added a comment -

          unscheduled

          Show
          Ed Burns added a comment - unscheduled
          Hide
          Ed Burns added a comment -

          frame

          Show
          Ed Burns added a comment - frame
          Hide
          Ed Burns added a comment -

          These are targeted at 2.1.

          Show
          Ed Burns added a comment - These are targeted at 2.1.
          Hide
          rogerk added a comment -

          triage

          Show
          rogerk added a comment - triage
          Hide
          Ed Burns added a comment -

          On 5 May 2010, at the JAX conference, this feature was requested, but in a slightly different guise. The
          requestor wanted something like

          <h:backButton ...> with an optional "number of views to go back" attribute.

          Show
          Ed Burns added a comment - On 5 May 2010, at the JAX conference, this feature was requested, but in a slightly different guise. The requestor wanted something like <h:backButton ...> with an optional "number of views to go back" attribute.
          Hide
          Ed Burns added a comment -

          rogerk

          Show
          Ed Burns added a comment - rogerk
          Hide
          rogerk added a comment -

          triage

          Show
          rogerk added a comment - triage
          Hide
          rogerk added a comment -

          triage

          Show
          rogerk added a comment - triage
          Hide
          werpu12 added a comment -

          Ok Ajax back button support is tricky at best. I will investigate the following days into this issue. I know html5 will provide an official api and there are hacks which enable it via hashtags on the url. (the hashtag hacks also enable bookmarking for ajax)

          I personally think in step 1 we should aim for the standardized html5 way of doing things and then aim lower with the hasthags which open another can of worms.

          Show
          werpu12 added a comment - Ok Ajax back button support is tricky at best. I will investigate the following days into this issue. I know html5 will provide an official api and there are hacks which enable it via hashtags on the url. (the hashtag hacks also enable bookmarking for ajax) I personally think in step 1 we should aim for the standardized html5 way of doing things and then aim lower with the hasthags which open another can of worms.
          Hide
          werpu12 added a comment -
          Show
          werpu12 added a comment - https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history is interesting information regarding this.
          Hide
          werpu12 added a comment - - edited

          Ok I was able to enable back button support with some html 5 see following link
          https://gist.github.com/1993051

          A detailed blog will follow. The problem i see is, that there are several approaches.
          a) The simplest is to go for the pure html5 way. Then you have to snapshot the page and restore it upon a proper back button event.

          b) The probably easiest one is, to enable the same by adding a html5 storage simulation and back button simulation to the page (and use hashtash for the back button simulation). This should be doable, or by simply storing the page shots in a javascript map.

          c) The third one would be to enable something else via hashes in the url, that would need some server side patching additionally.

          I will try to prototype approach b) tomorrow.

          Show
          werpu12 added a comment - - edited Ok I was able to enable back button support with some html 5 see following link https://gist.github.com/1993051 A detailed blog will follow. The problem i see is, that there are several approaches. a) The simplest is to go for the pure html5 way. Then you have to snapshot the page and restore it upon a proper back button event. b) The probably easiest one is, to enable the same by adding a html5 storage simulation and back button simulation to the page (and use hashtash for the back button simulation). This should be doable, or by simply storing the page shots in a javascript map. c) The third one would be to enable something else via hashes in the url, that would need some server side patching additionally. I will try to prototype approach b) tomorrow.
          Hide
          werpu12 added a comment -

          https://gist.github.com/2000091 here is the same prototype for html4 browsers.

          The problem i see here with both methods is, they are purely clientside, and rely on the state history to recover the correct state.
          So they

          a) need some kind of notification how deep the state history is to prevent states which result in an error.

          b) it is still unclear on how to deal with embedded scripts in the page and onload handlers which rely on component initialisation.

          We probably have to add a callback event which the component systems can hook in to reintialize their stuff, or we simply execute all embedded scripts even with the danger of getting sideffects.

          Show
          werpu12 added a comment - https://gist.github.com/2000091 here is the same prototype for html4 browsers. The problem i see here with both methods is, they are purely clientside, and rely on the state history to recover the correct state. So they a) need some kind of notification how deep the state history is to prevent states which result in an error. b) it is still unclear on how to deal with embedded scripts in the page and onload handlers which rely on component initialisation. We probably have to add a callback event which the component systems can hook in to reintialize their stuff, or we simply execute all embedded scripts even with the danger of getting sideffects.
          Hide
          Ed Burns added a comment -

          Set priority to baseline ahead of JSF 2.3 triage. Priorities will be assigned accurately after this exercise.

          Show
          Ed Burns added a comment - Set priority to baseline ahead of JSF 2.3 triage. Priorities will be assigned accurately after this exercise.

            People

            • Assignee:
              Unassigned
              Reporter:
              driscoll
            • Votes:
              5 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated: