Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Cache oggetti xml

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514

    Cache oggetti xml

    Ho letto la possibilità di mettere nella cache dei file oggetti per riutilizzarli, ma non m i è chiara una cosa.

    Faccio un'oggetto Xml

    ...lo modifico
    ...lo modifico
    ...lo modifico

    e poi lo metto nel Data Caching

    però se ad ogni pagina modifco sempre l'xml, non ha senso o sbaglio, perchè ricarica nuovamente l'xml di continuo!

    E' giusta la logica ? :master:

  2. #2
    Giusto si e no.
    La cache cmq è un contenitore unico per tutti i tuoi utenti.
    Non mettendo in cache un file xml ogni volta che lo apri (un visitatore lo apre) viene allocata una parte di memoria (stream). In questo modo hai + dispendio di risorse.

    Ovvio però, giusto anche quello che hai detto: "perchè ricarica nuovamente l'xml di continuo". Sta a te decidere in base alle esigenze e al numero di accessi sul sito che strada scegliere


  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514
    Lo sai che non ci ho capito molto.

    Praticamente ho un template Xml e lo devo caricare ad ogni richiesta di una qualsiasi pagina.aspx

    Diciamo che al primo utente lo carica, poi per i successivi utenti che visitano la pagina, viene prelevato dalla cache se questo non ha subito modifiche, senza andarlo a ricaricare con il server.mappath !

    Giusto ? :master:

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514
    Penso di aver capito.

    Un'altra mia logica.........

    Creo un Oggetto Xml ad ogni pagina!
    Lo carico con il Server.MapPath() !
    Lo elaboro!
    Lo mando in output!

    oppure.............

    Creo un Oggetto Xml ad ogni pagina!
    Lo carico con la cache se è gia carica!
    Lo elaboro!
    Lo mando in output!

    ...............quale delle 2 è meglio ? :master:

    Io devo sempre creare un oggetto Xml per il mio documento, mi sembra di poter risparmiare il Server.MapPath grazie alla cache, che forse è + veloce, ma mi conviene ? :master:

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514
    Ho fatto una prova:

    Ho preso la homepage

    Dim Xml As New XmlDOcument

    ho aggiunto questo

    If Cache("CXml") Is Nothing Then

    Dim Prc As String = Server.MapPath("documento.xml")
    Xml.Load(Prc)
    Cache.Insert("CXml",Xml, new System.Web.Caching.CacheDependency(Prc))

    Else

    XML = Cache("CXml")

    End If

    poi continuo ad elaborare l'oggetto Xmldocument Xml aggiungendo dei nodi e lo mando in output!

    Alla prima richiesta ritorna la homepage normale, ma alla seconda richiesta, ritorna si l'xml originale prelevato ma è come se ci aggiungesse due volte l'elaborazione successiva e poi 3-4 ogni volta che faccio il refresh.

    Se modifico Xml non dovrebbe toccare la Cache("CXml") :master:

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514
    Sono disperato ragazzi..........

    Rimetto il codice modificato

    codice:
    Dim OXml As New XmlDocument
    
    If Cache("CXml") Is Nothing Then
    
        Dim Prc As String = Http.Server.MapPath(documento.xml")
        Dim Xml As New XmlDocument
        Xml.Load(Prc)
    
        Cache.Insert("CXml",Xml, new System.Web.Caching.CacheDependency(Prc))
        Xml = Nothing
    
    End If
    
    OXml = Cache("CXML")
    
    
    Importa("Caricato",Request.QueryString("Valore"))

    Ho fatto un semplice file Xml
    <root>
    </root>

    la funzione Importa crea un Nodo e lo passa nell'OXml per poi visualizzarlo a video.

    Io la vedo cosi:
    Creo i due documenti Xml .......ovvero Xml - OXml
    Carico nella cache il documento Xml
    Carico nel documento OXml la cache presa da Xml
    A questo punto io elaboro OXml e la cache resta fuori, ma perchè viene moodificata ?

    Se nella stringa aggiungo
    home.aspx?Valore="PrimoA"
    poi la ricarico
    home.aspx?Valore="SecondoB"

    la funzione Importa mi crea il nodo PrimoA e poi alla successiva pagina uguale di valore differente si rivede ancora il primo valore passato di prima ed in + un'altro nodo giustamente dSecondoB, come mai PrimoA non è sparito ?

    perchè viene modificata la cache("CXml") :master:

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.