By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
432,069 Members | 1,716 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 432,069 IT Pros & Developers. It's quick & easy.

"please wait" type page without javascript?

P: n/a
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
Feb 16 '08 #1
Share this Question
Share on Google+
5 Replies


P: n/a
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...@thebunnyshed.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
Feb 17 '08 #2

P: n/a
..oO(Je****@thebunnyshed.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
Feb 17 '08 #3

P: n/a
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?
Feb 17 '08 #4

P: n/a
On Feb 17, 1:48 am, Jer...@thebunnyshed.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(null,true);" if [javascript] =1 i think you
might reject the client request and demand javascript activation...
Feb 17 '08 #5

P: n/a
On Feb 17, 1:48 am, Jer...@thebunnyshed.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($_SESSION['redirect_time']))
{
$_SESSION['redirect_time']=0;
echo "<meta http-equiv='refresh' content='10'>";
$_SESSION['redirect_time']++;
}
else if($_SESSION['redirect_time']>0)
{?>window.redirect("go.html");
<?php}
?>
Feb 17 '08 #6

This discussion thread is closed

Replies have been disabled for this discussion.