2016-06-07 8 views
1

Ich dachte, einen Meta-Tag verwenden wie:Seite nicht erfrischend nach der Verwendung von Back Button

<meta http-equiv="Pragma" CONTENT="no-cache"> 

würde meine Seite aktualisiert nach http://www.4guysfromrolla.com/webtech/111500-1.shtml

jedoch automatisch meiner Seite nicht erfrischend!

Was ich tue ist dynamisch laden Checkboxen auf dem Bildschirm aus einer Datenbanktabelle, die eine aktive Spalte hat, ob es zunächst überprüft haben, und weiterhin ein onclick Event-Handler, die Aktion Client-Seite (zeigt in einem anderen div-Tag nur die aktive). Wenn ich auf eine Senden - Schaltfläche klicke, wird die Aktion auf eine andere (klassische) ASP - Seite geleitet und die Änderungen (aktiver Zustand) Server - Seite gespeichert. Wenn ich jedoch in meinem Browser auf die Zurück - Schaltfläche klicke, muss der Server - Code aufgerufen werden checkboxes hat den richtigen Status, aber meine Clientseite, die aufgerufen wird, wenn ich das Kontrollkästchen umschalte, ist nicht der gleiche Wert wie ich es lieber den Wert, wenn die Seite zuerst geladen wurde, dachte ich, die Seite automatisch zu aktualisieren, war der Weg zu gehen kein Cache Ich denke, das ist nicht IE freundlich oder ich mache etwas falsch.

Bitte fragen Sie nicht nach der URL, da es eine interne Website ist. Wie viel Code benötige ich für dich?

Der Screenshot unten hat einen nicht schwebenden und schwebenden Zustand, der als ein Bild verbunden ist, nachdem ich auf die Zurück-Schaltfläche geklickt habe. Um die Situation zu erklären, zeigt das obere Bild nur einen aktiven Empfänger. Das untere Bild zeigt 2. Der Prozess ist: Ich wähle einen anderen Empfänger nach zunächst nur einer. Ich klicke auf eine Senden-Schaltfläche. Es speichert den zweiten Empfänger in der Datenbank. Ich klicke auf die Zurück-Schaltfläche in meinem Browser. Die Liste der aktiven Empfänger zeigt immer noch nur einen Benutzer an. Wenn ich in den Bearbeitungsmodus gehe (Maus über mein grünes Etikett), werden 2 Empfänger angezeigt.

Wie kann das sein? Sowohl aktiv nur (nicht-Hover) und vollständige Liste sind Server-Seite geladen!

enter image description here

+1

Versuchen Sie, diese es für mich in einer ähnlichen Situation gearbeitet –

+0

Versuchte es immer noch nicht nur aktualisieren, wenn ich physisch das Refresh klicken funktioniert es richtig – Glen

+0

try Körper machen mit nichts in den Zitaten –

Antwort

0

las ich durch viele Beiträge hier auf Stack-Überlauf auf dem ähnlichen Thema, das über Erfassen der Zurück-Taste sprach, habe ich nicht besonders möchte es auch auf diesen Code für einen ersten Timer machen kompliziert es sah jedoch kompliziert aus, dann wurde ich an die Tatsache erinnert, dass @DaveNorm das Aufrufen von document.refresh() erwähnte, also entschied ich mich, meine eigene clientseitige Funktion aufzurufen, die tatsächlich den aktiven Status im onload-Ereignis aktualisiert und es funktionierte, also werde ich damit gehen.

+0

Während 'document.refresh();' möglicherweise in älteren IE-Browsern funktioniert, werden Sie Probleme haben, weiter zu gehen. Ich habe erklärt, warum [hier] (http://stackoverflow.com/questions/37669796/site-not-refreshing-) Nach-Verwenden-Zurück-Knopf/37675183 # comment62828408_37669796). – Lankymart

0

Diese Zeile wird Ihre Seite nicht automatisch aktualisieren. Sie verhindert lediglich, dass der Internet Browser den Inhalt zwischenspeichert, was dazu führen sollte, dass er die neueste Version der Seite vom Webserver anfordert.

Persönlich bin ich kein Fan der Verwendung von clientseitige Tags, um Caching zu behandeln, lieber die Header-Server-Seite mit einer Funktion wie folgt festlegen, die ich am Anfang der ASP-Seite aufrufen kann.

<% 
Sub no_cache() 
    Dim Str: Str = "private, no-cache, must-revalidate" 
    Response.ExpiresAbsolute = DateAdd("yyyy", -5, Date()) 
    Response.AddHeader "pragma", "no-cache" 
    Response.AddHeader "cache-control", Str 
End Sub 
%> 

Dann kann ich es nenne von einem #include mit einer Zeile in einem beliebigen Seite will ich nicht durch den Internet-Browser im Cache gespeichert werden.

<% 
Call no_cache() 
%> 

  • How to reload a page using Javascript? - Das mit der Client-Seite refresh helfen soll, im Idealfall mögen Sie window.location.reload(true); eine Kraft eine Aktualisierung verwenden, ohne die Client-seitigen Cache zu verwenden.