Wondering about a search page!

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Extremest

    Wondering about a search page!

    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.

  • Erwin Moller

    #2
    Re: Wondering about a search page!

    Extremest wrote:
    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.
    i,

    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="windown ame" 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. :-)

    Regards,
    Erwin Moller

    Comment

    • Extremest

      #3
      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.


      Comment

      • Erwin Moller

        #4
        Re: Wondering about a search page!

        Extremest wrote:
        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.
        http://forums.mysql.com/
        Hi,

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

        Anyway,
        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
        disabled.
        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.
        eg:
        <headerstuff and doctype here>
        <body onLoad="showPag e();">
        <div id="pleasewait " style="display: block">
        <h1>Please wait, I am very busy</h1>
        </div>

        <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:

        </div>

        <script type="text/javascript">
        function showPage(){
        // make pleasewait invisible
        document.getEle mentById("pleas ewait").style.d isplay='none';
        // make realpage visible
        document.getEle mentById("pleas ewait").style.d isplay='block';
        }
        </script>

        </body>
        </html>

        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>
        <body>
        <h1>Please wait, I am very busy</h1>

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


        Regards,
        Erwin Moller

        Comment

        • Extremest

          #5
          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.

          Comment

          Working...