ciao a tutti ragazzi,
ho una pagina che fa molte query e ci mette molto a caricare..
il problema e che ci mette troppo a caricare proprio quando vai a cliccare sul link che va ad aprirla...
con conseguenza che si sta 3-4 secondi sulla pagina con il link che ho cliccato ma che non fa nulla... e l'attesa è noisa... e sopratuttto può spingere l'utente a cliccare più volte sul link.

ho trovato questo script che potrebbe fare proprio al caso mio.. visto che utilizza ajax e già al click mi esce fuori un loading (che magari in fututo potrei modificare con un div e immagine di caricamento...)

lo script è questo :

Codice PHP:
<script type="text/javascript" language="javascript">

    var 
http_request false;

    function 
makeRequest(url,getvar,funzione) {

        
http_request false;
        if (
window.XMLHttpRequest) { // Mozilla, Safari,...
            
http_request = new XMLHttpRequest();
            if (
http_request.overrideMimeType) {
                
//http_request.overrideMimeType('text/xml');
                // See note below about this line
            
}
        } else if (
window.ActiveXObject) { // IE
            
try {
                
http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (
e) {
                try {
                    
http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (
e) {}
            }
        }

        if (!
http_request) {
            
alert('Giving up :( Cannot create an XMLHTTP instance');
            return 
false;
        }
        
http_request.onreadystatechange funzione;
        
http_request.open('POST'urltrue);
    
http_request.setRequestHeader('Content-Type''application/x-www-form-urlencoded');
        
http_request.send(getvar);

    }

    function 
alertContents() {

        if (
http_request.readyState == 4) {
            if (
http_request.status == 200) {
                
//alert(http_request.responseText);
        
document.getElementById("result").innerHTML http_request.responseText;
            } else {
                
alert('There was a problem with the request.');
        
            }
        }else{
        
document.getElementById("result").innerHTML ="loading";
    }

    }
</script>
<a href="javascript:void(null)" onclick="makeRequest('res.php?w=provavvvavvva', null, alertContents)">
       Fai una richiesta...
</a>

<div id="result"></div> 

e la pagina ccon il contenuto è


Codice PHP:

<?
header
("Content-type:text/html;charset=iso-8859-1");
//$secretword = $_REQUEST['w'];
$secretword $_GET['w'];

if (
$secretword <> ""){

echo 
"<table border=\"1\" WIDTH=\"400\">";
echo 
"<tr><th>Riga</th></tr>";
for ( 
$i 1$i <= 10000$i++) 
{
  echo 
"<tr><td>";
 
  echo 
$i;
  echo 
"</td></tr>";
}
echo 
"</table>"
?>


?>

<?
}
//echo "

La parola inserita &eacute; [b]$secretword[/b].</p>";
?>
il problema è che io vorrei quel div che mi da il risultato come contenitore della mia pagina php... ho porvato a fare...

<a href="javascript:void(null)" onclick="makeRequest('miapagina.php', null, alertContents)">
Fai una richiesta...
</a>

e poi nella miapagina.php

<div id="result">
tutto contenuto...

</div>

ma continua a non fungere...
mi date qualche consiglio... magari se c'è un modo un più elegante... è senz'altro ben accetto..
questo script in definitiva server per avere input e output sulla stessa pagina io in realta ne avrei due di pagina...


grazie per i bvostri preziosi consigli una buona notte o buona giornata
Giuseppe