Wondering about a search page!

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
I have noticed that one like mysql.com when you do a search it takes
you to a page that says your search is running then it loads up the
results on another page.  How can I do this.  I figured it would help
for any query that might take more than a couple seconds to have time
to run.

Re: Wondering about a search page!

Extremest wrote:

Quoted text here. Click to load it


Are you talking about multiple windows (frames, Iframes, popupwindows) or  
all in the same window?

If the former, use JavaScript to load an URL in some window. Or if you just  
want to change one window that is different from the one where the click  
happens, simple use the word target="windowname" in your hyperlink where  
windowname is name of the window where you want to new page to be loaded.

If the latter, are we talking about a sign saying 'Just a few secs...' and  
then loads the page in the same window?

I checked www.mysql.com but I didn't see the behaviour you mention, so be  
more precice please. :-)

Erwin Moller

Re: Wondering about a search page!

I'm sorry I mean all on one page.  Here is the forum for mysql that i
am talking about.  If you put something in the search at the top there
it will do what I am talking about.

Re: Wondering about a search page!

Extremest wrote:

Quoted text here. Click to load it


Hmm, I still don't see it happen. :-/
Everything happens at once when I search.

You have a long process and want to say 'stand by please....' to your  
visitor in the meantime. Right?
AFAIK the only way to do this (nicely) via JavaScript, which can be  
At the bottom I propose a way that is less nice to see, but works even if JS  
is disabled.

** If you know your visitor has JS enabled **

1) Before you start the long process, send a partial HTML file to the  
client. call ob_start() before you create output. This starts the buffering  
of the output.
<headerstuff and doctype here>
<body onLoad="showPage();">
<div id="pleasewait" style="display:block">
<h1>Please wait, I am very busy</h1>

<div id="realpage" style="display:none">

2) Call ob_flush(). This will make sure (sort of) that the content created  
so far is send to the visitor.
 --> Start your processing here and produce output as you want to. <--
3) End with:


<script type="text/javascript">
  function showPage(){
    // make pleasewait invisible
    // make realpage visible


Not tested, so forgive typos, but that is the idea.
Only use this solution is you are sure your visitor has JS enabled,  
otherwise they will be stuck with 'pleasewait' untill their power runs out.

** No JS **
A more reliable way, that does not depend on JS being enabled is simple, but  
less elegant because the pleasewait will never disappear. Like this:
1) Call ob_start()
<headerstuff and doctype here>
<h1>Please wait, I am very busy</h1>

2) Call ob_flush()
3) do calcs and produce output.

Erwin Moller

Re: Wondering about a search page!

I did notice that the normal search at mysql does not do it only the
forum search does it for me.

I will see what I can do with what you have givin me though...Thanks a
lot for the help.

Site Timeline