"please wait" type page without javascript?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Jeremy@thebunnyshed.co.uk

    "please wait" type page without javascript?

    Hi all,

    I have database actions that will potentially take several seconds to
    complete.

    My normal page uses AJAX so keeping the user informed of what is
    happening is not a problem.

    However, the page also has fallback code in case of no Javascript. In
    this case I would like to display temporary "please wait" type page
    whilst the DB search is taking place.

    I originally thought I would serve up the wait page, and then use meta
    refresh to immediately request the page that actually does the search.
    That way the wait page would be displayed as long as the search took
    to complete and markup was returned to the browser.

    However, on reading up about meta refresh, it appears this is now
    depreciated, and is frowned upon anyway as it messes up the Back
    button.

    So, do I?
    1) Do it anyway
    2) Forget the waiting page, and just load the search page direct
    3) Use some other friendlier method to keep the user informed (Not
    that I can think of any)

    Cheers,
    Jeremy
  • petersprc

    #2
    Re: "please wait" type page without javascript?

    Hi,

    You can have a warning for restricted browsers if it's say under 10
    seconds or so:

    <noscript>
    <p style="color: red;">Warning: This operation may take several
    seconds. Please do not
    close your web browser during this operation. Note: Enable
    JavaScript
    to remove this warning.</h1>
    </noscript>

    Regarding the back button, some browsers will skip over the meta
    refresh page when traversing the history so in that case it wouldn't
    be a problem. Even if that doesn't happen, if the refresh interval
    isn't too short, the user will still be able to go back without much
    difficulty.

    On Feb 16, 6:48 pm, Jer...@thebunny shed.co.uk wrote:
    Hi all,
    >
    I have database actions that will potentially take several seconds to
    complete.
    >
    My normal page uses AJAX so keeping the user informed of what is
    happening is not a problem.
    >
    However, the page also has fallback code in case of no Javascript. In
    this case I would like to display temporary "please wait" type page
    whilst the DB search is taking place.
    >
    I originally thought I would serve up the wait page, and then use meta
    refresh to immediately request the page that actually does the search.
    That way the wait page would be displayed as long as the search took
    to complete and markup was returned to the browser.
    >
    However, on reading up about meta refresh, it appears this is now
    depreciated, and is frowned upon anyway as it messes up the Back
    button.
    >
    So, do I?
    1) Do it anyway
    2) Forget the waiting page, and just load the search page direct
    3) Use some other friendlier method to keep the user informed (Not
    that I can think of any)
    >
    Cheers,
    Jeremy

    Comment

    • Michael Fesser

      #3
      Re: &quot;please wait&quot; type page without javascript?

      ..oO(Jeremy@the bunnyshed.co.uk )
      >I have database actions that will potentially take several seconds to
      >complete.
      >
      >My normal page uses AJAX so keeping the user informed of what is
      >happening is not a problem.
      >
      >However, the page also has fallback code in case of no Javascript. In
      >this case I would like to display temporary "please wait" type page
      >whilst the DB search is taking place.
      >
      >I originally thought I would serve up the wait page, and then use meta
      >refresh to immediately request the page that actually does the search.
      >That way the wait page would be displayed as long as the search took
      >to complete and markup was returned to the browser.
      >
      >However, on reading up about meta refresh, it appears this is now
      >depreciated, and is frowned upon anyway as it messes up the Back
      >button.
      It's not deprecated and most likely never will, because it has its valid
      uses. The reason why it's usually frowned upon is that it's abused for
      redirects too often, which is ugly enough on its own (redirects should
      be done with proper HTTP headers), but becomes even worse if it's done
      immediately with no delay. This breaks the back button.

      But it's perfectly fine if used for what it was intended - to _refresh_
      a page after a certain amount of time. This could be a live ticker for
      example, which refreshes every 30s, or also a page reporting the status
      of a currently running server process like in your case. IMHO there's
      nothing wrong with that. Just don't refresh every 2 seconds, there
      should be a bit more time. At least 10s IMHO, which is still good and
      accurate enough for a fallback.

      Micha

      Comment

      • Jeremy@thebunnyshed.co.uk

        #4
        Re: &quot;please wait&quot; type page without javascript?

        But it's perfectly fine if used for what it was intended - to _refresh_
        a page after a certain amount of time. This could be a live ticker for
        example, which refreshes every 30s, or also a page reporting the status
        of a currently running server process like in your case. IMHO there's
        nothing wrong with that. Just don't refresh every 2 seconds, there
        should be a bit more time. At least 10s IMHO, which is still good and
        accurate enough for a fallback.
        I think you misunderstand my intent. The meta refresh would be used to
        open a new page immediately and once only.
        ie:
        .. Display wait page which contains immediate meta refresh
        .. Browser honours meta refresh and requests search results
        .. wait page is still displayed while search in progress, since no
        markup has yet been returned from server.
        .. Search finishes and page is displayed.

        I guess I could stick in a 1 second delay to help preserve the back
        button, but this is getting ugly IMO. It forces a 1 second wait even
        if the search is instantaneous.


        I have been wondering whether it would be possible to scrap the
        seperate wait page, and just have the search page return some "please
        wait" markup immediately, and then have the eventual result markup
        hide the wait markup using CSS? Anyone tried this?

        Comment

        • Betikci Boris

          #5
          Re: &quot;please wait&quot; type page without javascript?

          On Feb 17, 1:48 am, Jer...@thebunny shed.co.uk wrote:
          Hi all,
          >
          I have database actions that will potentially take several seconds to
          complete.
          >
          My normal page uses AJAX so keeping the user informed of what is
          happening is not a problem.
          >
          However, the page also has fallback code in case of no Javascript. In
          this case I would like to display temporary "please wait" type page
          whilst the DB search is taking place.
          >
          I originally thought I would serve up the wait page, and then use meta
          refresh to immediately request the page that actually does the search.
          That way the wait page would be displayed as long as the search took
          to complete and markup was returned to the browser.
          >
          However, on reading up about meta refresh, it appears this is now
          depreciated, and is frowned upon anyway as it messes up the Back
          button.
          >
          So, do I?
          1) Do it anyway
          2) Forget the waiting page, and just load the search page direct
          3) Use some other friendlier method to keep the user informed (Not
          that I can think of any)
          >
          Cheers,
          Jeremy
          If AJAX has an essential function in your code, you should control
          user agent "get_browser(nu ll,true);" if [javascript] =1 i think you
          might reject the client request and demand javascript activation...

          Comment

          • Betikci Boris

            #6
            Re: &quot;please wait&quot; type page without javascript?

            On Feb 17, 1:48 am, Jer...@thebunny shed.co.uk wrote:
            Hi all,
            >
            I have database actions that will potentially take several seconds to
            complete.
            >
            My normal page uses AJAX so keeping the user informed of what is
            happening is not a problem.
            >
            However, the page also has fallback code in case of no Javascript. In
            this case I would like to display temporary "please wait" type page
            whilst the DB search is taking place.
            >
            I originally thought I would serve up the wait page, and then use meta
            refresh to immediately request the page that actually does the search.
            That way the wait page would be displayed as long as the search took
            to complete and markup was returned to the browser.
            >
            However, on reading up about meta refresh, it appears this is now
            depreciated, and is frowned upon anyway as it messes up the Back
            button.
            >
            So, do I?
            1) Do it anyway
            2) Forget the waiting page, and just load the search page direct
            3) Use some other friendlier method to keep the user informed (Not
            that I can think of any)
            >
            Cheers,
            Jeremy
            <meta http-equiv='refresh' content='10' Refreshes the page after 10
            seconds ;)

            <?php
            ..
            ...
            ....
            if(isset($_SESS ION['redirect_time']))
            {
            $_SESSION['redirect_time']=0;
            echo "<meta http-equiv='refresh' content='10'>";
            $_SESSION['redirect_time']++;
            }
            else if($_SESSION['redirect_time']>0)
            {?>window.redir ect("go.html");
            <?php}
            ?>

            Comment

            Working...