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

    Come impedire memorizzazione nella cronologia?

    Esiste un modo per impedire la memorizzazione delle pagine ASP.NET nella cronologia?
    Mi serve fare ciò per il seguente scopo:

    l'utente accede dalla pagina A alla pagina B sulla quale c'è un collegamento per tornare alla pagina precedente che non è detto che sia la pagina A in quanto la pagina B può essere chiamata da altre pagine (C, D, E, F...). Usare "javascript:history.back();" non va bene perché sulla pagina B ci sono tasti che fanno fare postback alla pagina B, quindi "history.back();" riporterebbe sempre alla pagina B.
    Ho provato utilizzando una variabile di sessione per memorizzare la pagina di provenienza, ma non è la soluzione ottimale perché il tasto "Torna indietro" non c'è solo sulla pagina B, ma anche sulle altre, per cui ad esempio se io ho aperto tre pagine in tre finestre diverse del browser (ma con stessa sessione) ed effettuo con le tre finestre quanto segue nell'ordine
    1: A-->B
    2: C-->D
    3: E-->F

    se ora io torno alla prima finestra dove c'è la pagina B e premo su "Torna indietro" finisco alla pagina E e non alla pagina A, perché la variabile di sessione è una sola. Utilizzare tante variabilii di sessione per fare questa cosa non mi pare una cosa ottimale.

    Per cui mi chiedevo se, più semplicemente, è possibile impedire la memorizzazione delle pagine ASP.NET nella cronologia o se c'è un'altra soluzione per ottenere ciò che voglio.
    Qualcuno sa darmi una mano?

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da rescueme
    Usare "javascript:history.back();" non va bene perché sulla pagina B ci sono tasti che fanno fare postback alla pagina B, quindi "history.back();" riporterebbe sempre alla pagina B.
    Contando i postback della pagina nel Page_Load:
    codice:
    ViewState("PB") = 1
    If Page.IsPostBack then
      ViewState("PB") += 1
    End if

    ...tempo fa ho fatto così:
    codice:
        ' Va indietro nella HISTORY Javascript
        Public Function BackTo(ByVal pagina As System.Web.UI.Page, ByVal NumeroPagineIndietro As Integer)
            Dim js As String = "<script language=""javascript"" type=""text/javascript"">window.history.go(" & NumeroPagineIndietro & ");</script>"
            If (Not pagina.IsStartupScriptRegistered("clientscript_historyback")) Then
                pagina.RegisterStartupScript("clientscript_historyback", js)
            End If
        End Function
    passandogli ViewState("PB") come parametro "NumeroPagineIndietro"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    207
    Grazie, la tua soluzione funziona! Ho scoperto anche che utilizzando Ajax ottengo quello che voglio: con Ajax non avvengono postback completi e quindi posso premere quante volte voglio su un pulsante nella pagina, ma "history.back()" mi riporterà alla pagina precedente!

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.