Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-2371

Prevent interaction with page until fully loaded

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.4
    • Fix Version/s: 5.4
    • Component/s: tapestry-core
    • Labels:

      Description

      With the emphasis on JavaScript, there is an issue where a user on a slow connection interacts with the page before the page has fully loaded its JavaScript and run initializations. This can lead to client-side JavaScript exceptions, or server-side failures (when ordinary requests are sent to URLs that expect an Ajax/XHR request).

      The right solution is for Tapestry to provide a "pageloading mask", a div that masks the entire page from user input (and provides a loading image) until page initializations complete.

      The implementaton of this uses a <script> tag, with document.write, to introduce the mask element at the top of the page (so that non-JavaScript-enabled clients will be able to interact with the page to some degree).

      CSS animations are used to fade in the mask after a delay. The presentation of the mask can be modified via CSS overrides. By default, it is black with 50% opacity.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                hlship Howard M. Lewis Ship
                Reporter:
                hlship Howard M. Lewis Ship
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: