01. august 2006 - 15:25Der er
11 kommentarer og 1 løsning
Metode til at undgå gentagelse af query ved refresh af side
Jeg har en side som starter med at kalde databasen og lave ændringer, og derefter loader den side som brugeren skal se. Er der en måde man kan undgå at brugeren trykker refresh og derved får siden til at gentage kaldet til DB. Jeg har tænkt på at lave et unikt id som systemet checker inden den kalder database og er det allerede brugt vil den ikke gennemføre det. Er der nogen der har en eller anden smart måde at gøre dette eller noget tilsvarende på?
Det er selvf. en mulighed at gøre det på denne måde... Og måske også den mest simple. Problemet er også hvis de går tilbage til siden før og trykker gem igen - så vil det fremgå to gange alligevel. Det der ville være godt var hvis man på en eller anden måde kunne identificere den indtastning de har lavet og så tjekke på den. Jeg tænker noget i retningen af et hidden field med en eller anden form for identifikation. Har I nogen idéer til hvordan man kunne generere dette id. SessionID + et eller andet mere (jeg tæntkte først tid, men den er svær at styre hvis brugerne er længe om at indtaste og ID'et er genereret samtidig med formen)
På indtastningssiden får vi en session til at køre der hedder:
session("randomCode") fx. med indhold "123456789" - tilfældig kode, skal nok smide noget kode der kan generere et tilfældigt tal, det er det nemmeste af det hele :-) session("randomCodeUsed") = "0"
... og så på "Gem informationer" siden skriver vi:
session("randomCode") fx. med indhold "123456789" session("randomCodeUsed") = "1"
Og HVIS randomCodeUsed = "0" skal den gemme informationer og hvis den er "1" skal den ikke kalde databasen, kun gå tilbage, eller noget i den stil - styrer du selvfølgelig helt selv. Men hvis den er "0" skal den slet ikke røre databasen og det gør den heller ikke selvom man trykker tilbage, for der kører vores session("randomCodeUsed") stadig med indholdet "1" :-)
Hvad med at gemme database-udtrækket fra deres 1. besøg i en session eller en cookie?
Hvis folk kommer ind på siden aflæser du først om der er en session/cookie for dem. Hvis der er dette, henter du værdierne fra denne og lader være med at kalde til databasen. Hvis de ikke har en session/cookie trækker du fra databasen, opretter en session/cookie med udtrækket, og viser dem så siden.
Hey... undskyld den lange ventetid. Jeg har prøvet mig lidt frem, men har ikke rigtig fået nogen holdbar løsning. Det bliver lidt for kompliceret så jeg har bare ladet det ligge og håber at de ikke gentager kaldet til serveren ved refresh. Hvis I vil have nogle point så må I smide et svar
Ja... det tror jeg gerne :) Det er også en hård nød at knække... men tak for det du gav - det kan være jeg skal lave løsningen inden for den nærmeste fremtid.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.