Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605

    preloading con php e ajax

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605
    up

  3. #3
    Ti consiglio semplicemente di disattivare il bottone Submit e di cambiare il suo value in Attendere al'invio del form, l'implementazione è banalissima, basta un onSubmit

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605
    sarebbe una buona soluzione però in parte... il loading sarebbe proprio utile.. almeno... l'utente capisce che sta succedendo...
    poi scusa.. per disabilitare un submit ok... ma nel mio caso sono dei link con immagine... potrei fare qualcosa simile...
    grazie
    giuseppe

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.