ICEfaces
  1. ICEfaces
  2. ICE-1872

Ajax Push does not work in Opera after redirect

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.6
    • Fix Version/s: 1.6.1
    • Component/s: Bridge
    • Labels:
      None
    • Environment:
      Opera, Mobile Opera

      Description


      From the forum post:

      I just noticed that the server push doesn't always work with Opera (and mobile) anymore, it's working fine on other browser. I tried the auction monitor and timezone tutorial and they work with Opera, the problem comes when changing view.

      So I used the timezone7 tutorial and added 2 pages that go from one to another with just showing the clock. It's working fine with IE and Firefox, but on Opera the clocks stops ticking when going to the second page.

      Here's a sample WAR to witness the problem

      BTW it was working fine with v1.5.3

        Activity

        Hide
        Mircea Toma added a comment -

        Opera doesn't invoke document.unload listeners when is changing the page or closing the window. The Bridge relies on this behaviour to clear up the marker cookie used to inform the other windows if the persistent connection is started or stopped.

        Show
        Mircea Toma added a comment - Opera doesn't invoke document.unload listeners when is changing the page or closing the window. The Bridge relies on this behaviour to clear up the marker cookie used to inform the other windows if the persistent connection is started or stopped.
        Hide
        Mircea Toma added a comment -

        Well, I actually fixed this issue in commit #14622 (icefaces/bridge/src/application.js) by relying on document.unload to shutdown the Bridge (formerly document.onbeforeunload was used).

        There's one remaining limitation, on document.onbeforeunload the Bridge will send the list of views that need to be disposed (when running in concurrentDOMViews=true) but Opera won't send the message because it doesn't support document.onbeforeunload feature at all. If the user will reload the page repeteadly it will cause rapid memory increase on the server side.

        Show
        Mircea Toma added a comment - Well, I actually fixed this issue in commit #14622 (icefaces/bridge/src/application.js) by relying on document.unload to shutdown the Bridge (formerly document.onbeforeunload was used). There's one remaining limitation, on document.onbeforeunload the Bridge will send the list of views that need to be disposed (when running in concurrentDOMViews=true) but Opera won't send the message because it doesn't support document.onbeforeunload feature at all. If the user will reload the page repeteadly it will cause rapid memory increase on the server side.
        Hide
        Mircea Toma added a comment -

        See described limitation.

        Show
        Mircea Toma added a comment - See described limitation.
        Hide
        Ted Goddard added a comment -

        Re-opening case since it is a blocker for the AjaxWorld demo on mobile opera.

        Show
        Ted Goddard added a comment - Re-opening case since it is a blocker for the AjaxWorld demo on mobile opera.
        Hide
        Ted Goddard added a comment -

        concurrentDOMViews=false does not appear to be a workaround.

        http://component-showcase.icefaces.org

        does not use concurrentDOMViews, yet the progress bar ceases to work when the page is reloaded.

        Show
        Ted Goddard added a comment - concurrentDOMViews=false does not appear to be a workaround. http://component-showcase.icefaces.org does not use concurrentDOMViews, yet the progress bar ceases to work when the page is reloaded.
        Hide
        Ted Goddard added a comment -

        confirmed that Ajax Push does not work after page reload in Mac Opera 9.23.

        Show
        Ted Goddard added a comment - confirmed that Ajax Push does not work after page reload in Mac Opera 9.23.
        Hide
        Mircea Toma added a comment -

        Remove the blocking connection marker on bridge load so that everytime a new window (== bridge instance) is opened the blocking connection will be re-established.

        Show
        Mircea Toma added a comment - Remove the blocking connection marker on bridge load so that everytime a new window (== bridge instance) is opened the blocking connection will be re-established.

          People

          • Assignee:
            Unassigned
            Reporter:
            Ted Goddard
          • Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: