Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    XML da mantenere in cache

    Allora sto facendo un'applicazione in AJAX, questo è una delle funzioni Javascript che modificano la pagina:
    codice:
     function getWelcomeMsg(lang, i) { 
    			var mozillaFlag = false; 
    			var XMLHttpRequestObject = false; 
    				if (window.XMLHttpRequest) { 
    					XMLHttpRequestObject = new XMLHttpRequest(); 
    					XMLHttpRequestObject.overrideMimeType("text/xml"); 
    					mozillaFlag = true; 
    				} else if (window.ActiveXObject) { 
    					XMLHttpRequestObject = new 
    					ActiveXObject("Microsoft.XMLHTTP"); 
    				} 
    				if (XMLHttpRequestObject) { 
    					XMLHttpRequestObject.open("GET", "quest.php", true); 
    					XMLHttpRequestObject.onreadystatechange = function() { 
    						if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
    							var xmlDocument = XMLHttpRequestObject.responseXML; 
    							if(mozillaFlag) { 
    								removeWhitespace(xmlDocument); 
    							} 
    		
    							displayMsg(xmlDocument, lang, i); 
    						} 
    					} 
    		
    					XMLHttpRequestObject.send(null); 
    				} 
    		}
    quest.php è un file PHP con il MIME type forzato a file xml, preleva delle info da un DB e le mostra come XML:
    codice:
    	<date>
                <citta>Faenza </citta>
                <luogo>Piazza Italia</luogo>
                <citta>Pisa</citta>
                <luogo>Corso Garibaldi</luogo>
            </date>
    e il file PHP che crea questo output è una cosa del tipo:
    Codice PHP:
    <?
    header
    ('Content-Type: text/xml');
    echo 
    '<?xml version="1.0" encoding="ISO-8859-1"?>';

    $server "";
    $user "";
    $pass "";
    $db_name "";

        
    $db = @mysql_connect($server$user$pass) or die ("Connessione non effettuata...");
        
    mysql_select_db($db_name$db) or die ("Errore nella selezione...");

        
    $query "SELECT citta, dove FROM events";
        
    $exec mysql_query($query) or die("Errore nella query!");

    echo 
    "<date>";
    while(
    $row mysql_fetch_array($exec)) {
                echo 
    "<citta>".$row['citta']."</citta>";
                echo 
    "<luogo>".$row['dove']."</luogo>";
            }
    echo 
    "</date>";
    ?>
    .

    Inoltre c'è una pagina HTML che scorre tra i risultati del file XML, sfruttando la chiamata asincrona JS.

    Se in questa pagina HTML sto al primo record Faenza, clicco avanti e mi viene mostrato Pisa. E questa cosa è ottima, proprio il funzionamento che volevo Se però mentre sto visualizzando il primo record Faenza, nel DB modifico Pisa in Pisa2, quando clicco avanti nella pagina HTML il prossimo risultato è Pisa2, quindi ad ogni avanzamento il file XML viene ricreato, come posso fare per tenerlo in cache ed usare sempre quello???

    Spero che non andava postato in Javascript

  2. #2

    Re: XML da mantenere in cache

    Originariamente inviato da Metallica
    Spero che non andava postato in Javascript
    E io speriamo che me la cavo


    Ci sono tante soluzioni diverse per il caching. Una semplice semplice può essere quella di generare l'xml e salvarlo su file statico quando modifichi quella parte del DB.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    sennò...
    Visto che così spreco un while e un'interrogazione al DB ogni volta e userò solo uno degli n risultati forniti e prelevati dal DB, converrebbe prelevare ogni volta un solo record del DB e rendere in XML solo quel determinato record. Ma in questo contesto avrebbe ancora senso questo file XML di mezzo piuttosto che non passare direttamente i dati prelevatai in HTML???

  4. #4
    non ci ho capito una sega di quel che hai scritto.

    La soluzione che ti ho proposto l'hai capita, sì?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    Originariamente inviato da skidx
    non ci ho capito una sega di quel che hai scritto.

    La soluzione che ti ho proposto l'hai capita, sì?
    beh si l'ho capita.
    Io intendevo che ogni volta che dovevo mostrare una pagina, al posto di mostrare direttamente le info prese dal DB, tali info le passavo prima in un file XML, poi formattavo adeguatamente l'XML e mostravo l'HTML. Volevo capire se questo passaggio intermedio è di troppo o (portabilità a parte) ha un suo perchè.

  6. #6
    Originariamente inviato da Metallica
    beh si l'ho capita.
    Io intendevo che ogni volta che dovevo mostrare una pagina, al posto di mostrare direttamente le info prese dal DB, tali info le passavo prima in un file XML, poi formattavo adeguatamente l'XML e mostravo l'HTML. Volevo capire se questo passaggio intermedio è di troppo o (portabilità a parte) ha un suo perchè.
    mi stai chiedendo se il file della cache è necessario farlo in XML oppure no?
    Beh, dipende da cosa ne vuoi fare e da come lo vuoi poi processare.
    Puoi anche fare un serialize() del risultato della query e salvare direttamente quello, non è mica obbligatorio usare XML.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    Originariamente inviato da skidx
    mi stai chiedendo se il file della cache è necessario farlo in XML oppure no?
    Beh, dipende da cosa ne vuoi fare e da come lo vuoi poi processare.
    Puoi anche fare un serialize() del risultato della query e salvare direttamente quello, non è mica obbligatorio usare XML.
    No, no solo se era sensato avere un file XML intermedio tra il recupero info nel DB e pagina HTML.

  8. #8
    Originariamente inviato da Metallica
    No, no solo se era sensato avere un file XML intermedio tra il recupero info nel DB e pagina HTML.
    il file intermedio (in qualsivoglia formato, non per forza XML) può essere meglio perché così se decidi di cambiare l'output HTML la cache è comunque indipendente.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    Originariamente inviato da skidx
    il file intermedio (in qualsivoglia formato, non per forza XML) può essere meglio perché così se decidi di cambiare l'output HTML la cache è comunque indipendente.
    perfetto era la conferma che volevo avere

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.