Hejsan, Ok, Cookie eller session är väl att rekommendera, men beskriv situationen lite mer, ska värdet lagras under hela tiden användaren är online eller bara temporärt för några få sidor? Hej igen Jag skulle nog lösa det här på ett litet annorlunda sätt; istället för att ha en sida per fråga så skulle jag nog bara ha en generell sida som sedan laddar frågorna ifrån t.ex. en databas, eller en xml-fil eller något. (Oavsett vad, cachea det, väldigt enkelt fall att cachea..) Sedan skulle sidan bara posta till sig själv. För att hålla reda på svaren så skulle nog det enklaste vara att använda viewstate (viewstate är en möjlighet att lagra information i ett hiddenfält, asp.net serializerar och deserializerar automatiskt, för en begränsad mängd data som är väldigt specifik för ett väl avgränsat kontext, typ "när man svarar på frågorna" är det väldigt lämpligt.) Tackar för förslaget. Jag har tittat lite på Viewstate men funderar lite på vad som blir effektivast ifall denna Tipspromenad blir populär. Den kommer vara gratis att delta i och vinnaren kommer att erhålla en vinst (värde ca 500:-). Det är tänkt att det ska vara en omgång per månad. Sajten snurrar på ett vanligt konto hos Binero med Sql server. Rent teoretiskt blir belastningen lägre av att ha en sida då du endast behöver hålla en kompilerad version i minnet istället för 10 stycken. Sedan försvinner det lite, lite varje gång en sida laddas eftersom att du måste hämta frågorna ifrån cachen. Dock ganska obetydligt i sammanhanget. Om du hade 1 miljon besökare konstant (hur nu det skulle gå till..) så kanske du skulle kunna klämma in en extra besökare genom att dela upp på 10 sidor. Fast då mister du säkert lite prestanda i någon uppslagning för kompilerade versioner av sidorna, så det är skit samma.Rookie frågor om Session
Jag kan för lite om Session.
Fråga: ifall jag skapar en session med föjande kod, och jag är inloggad (ej Anonymous)
, är denna session variabel åtkomlig även om jag loggar in med ett annat konto?
Kod:
string strQuizID = drr["idQuizes"].ToString();
Session.Add("AnswerID", strQuizID);
/Jocke
Sv:Rookie frågor om Session
Säkert en uttjatad fråga, men här kommer den ändå:
Ifall jag vill lagra ett tillfälligt unikt värde för just den inloggade användaren,
var är det bäst? (jag vill inte skriva till databas).
Är det cookie, querystring, eller skapa en unik session ?Sv: Rookie frågor om Session
Sv:Rookie frågor om Session
Knåpar på en tipspromenad, bestående av 10 frågor, med 3 svarsalternativ ( 1 x 2).
Jag har tittat lite på http://www.asp.net/learn/videos/video-04.aspx och där skapar de en array som slutligen sparas ned till databasen.
Min lösning blir 10 sidor (en sida för varje fråga) och databasen uppdateras efter varje sida.
För att minska på databas anrop, vill jag lagra ett unikt id:n mellan sidorna.
Id:et för aktuell omgång är lika för alla inloggade så det kan jag lagra i en session, men ett unikt id för den inloggades svar, var lagrar jag det bäst?
Har tittat lite på funktionen
TextBox t = ((TextBox)(PreviousPage.FindControl("Textbox1")));
för att hämta värde från föregående sida.
Vill hålla detta dolt för användaren.
/JockeSv: Rookie frågor om Session
Alltså: En sida, skapar en array med längden av antal frågor och lägger i viewstate _om_ inte arrayen redan finns där, sparar svaren där, läser frågorna ifrån en databas/xml-fil. På så vis har du skapat dig en lösning som är totalt oberoende på antal frågor i tipspromenaden, och du har ett enkelt sätt att lagra svaren på (du arbetar bara med en array på servern, du kan relativt enkelt skapa en wrapper med lite egenskaper eller annat, enkelt att programmera emot)
När du sedan ska rätta, och behöver överföra vad användaren har svarat till en rättningssida så skulle du t.ex kunna peta ut ett gäng hidden-fält i en loop innehållandes svaren.Sv:Rookie frågor om Session
Anta att Tipspromenaden blir populär och att vi har 500 inloggade samtidigt som kör Tipspromenaden, vad är bäst då?
En sida där allt händer eller fördela på 10 sidor? eller är belastningen på servern densamma?
Jag tror att det är bättre att dela belastningen på 10 sidor...(observera "tror", jag kan för lite om detta)
/JockeSv: Rookie frågor om Session
Alltså: Lite mindre minne går åt om du gör en sida istället för 10. Enda skillnaden.
(Att "dela belastningen" mellan olika sidor ger ingenting, någonsin, däremot, att dela mellan olika _servrar_ kan dock ge prestandavinster, men det är en helt annan sak)