Erkennen browser aktualisieren

Wie kann ich herausfinden, wenn der Benutzer drückt die Taste F5 zum aktualisieren meiner Seite (so ähnlich wie SO implementiert. Wenn Sie aktualisieren Sie Ihre Seite, die Frage counter wird dabei nicht erhöht). Ich habe viele getestet code-Schnipsel erwähnt in einem Dutzend tutorials, aber keines funktionierte richtig.

Mehr klar, nehme an, dass ich ein leeres web-Formular und möchte erkennen, ob der Benutzer gedrückt hat die F5-Taste im client-Seite (was einer refresh nicht abschicken) oder nicht.

Kann ich die Verwendung von session-Variablen, aber wenn der Benutzer navigiert zu einer anderen Seite von meiner Website, und dann zurück kommt , möchte ich es betrachten, als ein neuer Besuch, nicht aktualisieren. das ist also nicht ein session-scope variable.

Dank.

Update: Die einzige Lösung, die ich finden konnte, war zum Erben von meinen Seiten aus einer Basis-Seite, überschreiben Sie die load-Methode wie folgt:

    public class PageBase : System.Web.UI.Page
{
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        this.Session["LastViewedPage"] = Request.RawUrl;
    }
}  

und in jeder Seite, wenn ich wurde interessiert zu wissen, ob dies eine Aktualisierung:

if (this.Session["LastViewedPage"].ToString() == Request.RawUrl)
{
    //This is a refresh!
}
  • Sie sagen: "ich kann das verwenden von session-Variablen', also warum nicht nur speichern die zuletzt besuchte Seite?
  • Denn ich habe, um es zu speichern in jeder Seite. Eigentlich ist vielleicht nicht eine schlechte Idee, eine Basis-Seite...
InformationsquelleAutor Kamyar | 2011-07-07
Schreibe einen Kommentar