Hej, jag har sökt här i forumet efter information om agenten Pelle har gjort, hittade en tråd där det pratades om en kommande artikel men den har jag inte hittat så jag antar att den inte heller finns.. Det beror ju lite på hur du har byggt upp detta. Jag har ett sessionsobjekt som håller reda på vilket meddelande som varje användare har läst, och sen ett cache-objekt där alla meddelanden ligger i - som töms per intervall. I och med denna "pekare" i sessionsvariabeln så får man bara ett meddelande i taget och det gamla visas aldrig igen... Sorry för plankningen ;) borde frågat först.. ..hade problem med liknande när IE inte förstod sej på Cache-Control: must-revalidate, i alla fall när det gällde xmlhttp, Jag har nu provat både att sätta "Cache-Control: must-revalidate" och slänga på en "dummy" querystring.. ..men ifall javascriptet buggar så är det ju inte cachningen som det är fel på utan javascriptet... jo det är ju sant men det fungerar ju fint här på pellesoft.. Din checkstatus.aspx fil skall vara tom, bara page-direktivet. Sen i codebehind skriver du inget <script> tagg eller nåt, allt som denna fil returnerar tolkas som javascript ändå. Pelles agent, Problem med browser cachningen
Jag har mer eller mindre kopierat den kod Pelle har här på sidan för agenten och fått det att fungera.
Problemet jag har nu är troligtvis relaterat till den sida som ger ifrån sig statusen (i pelles fall http://www.pellesoft.se/components/agent/checkstatus.aspx)
I mitt fall så visar den korrekt information men jag misstänker att browsern cachar innehållet därför att ett meddelande som jag trycker ut där kommer flera ggr om.. detta sker inte om man manuellt surfar till checkstatus-sidan utan endast när agenten hämtar informationen..
jag har gjort följande för förhindra cachningen men det har inte hjälpt:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Vad kan jag göra för att fixa detta?Sv: Pelles agent, Problem med browser cachningen
Planka, elaking där ;-)Sv:Pelles agent, Problem med browser cachningen
Jag tror inte mitt problem ligger i vad checkstatus sidan ger ifrån sig, har nämnligen testat detta på följande vis:
- Först loggade jag in med min testanvändare.
- Sedan skrev jag ett gästboksinlägg till min riktiga användare.
Surfar jag nu direkt till checkstatus sidan i webläsaren får jag vid första reloaden:
showagent('<b>Agenten meddelar</b>','Crash Test Dummie
har precis loggat in');
och vid andra reloaden:
showagent('<b>Agenten meddelar</b>','Nytt gästboksinlägg!
från Crash Test Dummie');
men om jag istället gör som ovan fast istället för att surfa direkt till checkstatus sidan så går jag till den aspx sida som jag har testimplementerat din agent på så dyker "Crash Test Dummie<br><br>har precis loggat in" meddelandet upp två ggr.. Alltså så fort checkstatus sidan ger ifrån sig något kommer agenten upp, det är ju korrekt, dock är det de första meddelandet som visas de resterande gångerna med.
jag funderade på om det kunde ha något med http-huvudet att göra.. vilken chache control som anigivts.. jag kollade på din och såg att du hade private, har ändrat min från HttpCacheability.NoCache till .Private nu oxå men det hjälpte inte.Sv: Pelles agent, Problem med browser cachningen
Men satte jag Cache-Control: no-cache, must-revalidate
så funkade det hela.
En fullösning är ju också att du smäller till nåt i stil med Math.Random()* i querysträngen till checkstatussidan som agenten frågar efter ifall inget annat hjälper
[*] javascript Math.Random() alltsåSv:Pelles agent, Problem med browser cachningen
har nu även märkt att ajaxrequest javascriptet som används själv gör detta.. lägger på en random querystring.
om jag öppnar javascript-konsolen i firefox när jag har två tabbar uppe, en från min sida och en från pellesoft så spottar den ur sig väldigt lika felmeddelande så fort inte checkstatus-sidan innehåller någon information:
Error: no element found
Source File: http://null:null@www.jimmie.nu/cs/agentCheckStatus.aspx?AjaxRequestUniqueId=114072899820340
Line: 1, Column: 1
Source Code:
^
Error: no element found
Source File: http://null:null@www.pellesoft.se/components/agent/checkstatus.aspx?AjaxRequestUniqueId=114072905470312
Line: 1, Column: 1
Source Code:
^
och här syns ju att javascriptet själv lägger på en random querystring..
..men samma resultat..Sv: Pelles agent, Problem med browser cachningen
Sv:Pelles agent, Problem med browser cachningen
Sv: Pelles agent, Problem med browser cachningen
Du får väl lägga pellesoft-loggan på din site som straff ;-)