Jag håller på att bygga en webbplats med en kundvagnsfunktion. Informationen i kundvagnen sparar jag i en cookie. Problemet är bara att när kundvagnen har blivit uppdaterad vill jag inte att användaren ska kunna klicka bakåt eftersom då ändras utseendet till den gamla eftersom sidan cachas. Jag lyckades till slut lösa det själv. Med häjlp av nedanstående kod förhindras cachning i Netscape och i Firefox. Tyvärr tror jag inte det fungerar i Mac. Har inget med ditt problem att göra men jag tycker det är ganska jobbigt med sidor som man inte kan gå bakåt på. Använder ofta backspace för att gå tillbaka till föregående sida och blir lika irriterad varje gång jag måste leta upp nån länk som heter föregående, tillbaka eller nåt. Trycker gärna f5 för att ladda om sidan om jag tycker det behövs. Vilken tur då att man kan skriva pellesoft.se - utan www annars hade jag legat risigt till. Ibland är det för utvecklaren viktigt att det verkligen töms ut, kanske för att man faktiskt inte får gå till den sidan utan att göra ett korrekt val. Nu vet jag inte hur det är i detta fallet dock. Eftersom jag har en kundkorg som baseras på en cookie FÅR inte användaren kunna backa och på så sätt ändra utseendet på kundkorgen visuellt. Kundkorgen visas då inte korrekt. Jag antar att det finns tusen olika sätt som är bättre än min lösning, är egentligen inte heller förtjust i att inte kunna backa. Om det är nån som kan tipsa om hur man får stopp på cachningen på Mac är jag tacksam! Man kan även skriva https://icabanken.ica.se för att slippa gå via ica.se för att logga in till banken ;) Back kan ibland vara lite läskigt, särskilt om du plockar bort cachen. Tänk dig att Sida1 gör en HTTP POST till Sida2. Sida2 gör sedan ett SQL Insert anrop mot databasen för att sedan göra en redirect till Sida3 som visar kvitto/kvittens. Om användaren skulle trycka back på Sida3 för att komma till Sida1 (via Sida2) så skulle Sql Insert kunna köras ytterligare en gång och då skulle det bli en ofrivillig dublett. Detta kan förhindras genom att ge formuläret ett unikt id som lagras i databasen när det har används. Vid varje insert kollar man så att bifogat formulär id inte redan förekommer i databasen. Om det gör det så har du en potentiell dubbel postning och kan då peka om till Sida1 eller visa ett felmeddelande.Förhindra cachning
Jag har provat att använda kod som jag hittat här på forumet som ser ut så här:
Response.AddHeader("pragma", "no-cache")
Response.AddHeader("cache-control", "private")
Response.Expires = 0
Response.ExpiresAbsolute = Now()
Response.CacheControl = "no-cache"
Funkar alldeles utmärkt i Explorer men inte i Firefox eller netscape.
Vad är det för fel?Sv: Förhindra cachning
<code>
Public Sub SetCache(ByVal pg As Page)
pg.Response.Buffer = True
pg.Response.ExpiresAbsolute = Now().Subtract(New TimeSpan(360, 0, 0, 0))
pg.Response.Expires = -1
pg.Response.Cache.AppendCacheExtension("max-age=0, no-store, must-revalidate")
pg.Response.AddHeader("Pragma", "no-cache")
End Sub
</code>Sv: Förhindra cachning
(Å andra sidan blir jag också irriterad på sidor där man måste skriva "www." först. t.ex. icabanken.se)Sv:Förhindra cachning
Sv: Förhindra cachning
Sv:Förhindra cachning
Sv:Förhindra cachning