Avatar billede moroax Nybegynder
05. september 2001 - 01:51 Der er 12 kommentarer og
3 løsninger

Tøm cache ?!!..

Jeg har bygget et efterhånden halvstort administrations modul til tilpasning af kunders hjemme side(r)

og der er 2 ting som er røv-irreterende,
den ene er at administrations-delen SKAL bruge ie5.5 for at kunne gemme i databasen og fører værdier over via sessions,
- Hvordan kan man finde ud af hvad det er som ie5.0 IKKE kan håndtere - og så få de fejl rettet,
(og ie5.5 + ie5.0 på samme maskine ? - Naaaa....)

Den anden ting er at flere kunder(som bruger ie5.5)
oplever at når de sidder og retter på sider, og opdatere (gemmes i access db) så når de kommer tilbage til siden som der ser ud, er det STADIG det gamle indhold som er fremme, når de så går ind og retter igen-igen, er det også det gamle indhold der kommer frem,
det mærkelige her er at kigger man i db, er det det nye indhold som ligger gemt

og det er kun en gang i mellem at den viser gammelt indhold på forsiden

Jeg har fgl. liggende på alle asp sider som burde tømme cache og lign.
<%@LANGUAGE = VBScript %>
<%
Option Explicit
Response.Expires = -1000
response.buffer = false
%>
<meta http-equiv=\'pragma\' content=\'nocache\'>
<meta http-equiv=\'case-control\' content=\'no-store\'>

og jeg har prøvet at undgå for mange <% og %>\'er,
dvs. jeg skriver så meget html kode ind som response.write \"html.....\" &_
  \"og mere mere html.....\"
for at undgå den spildtid der opstår når der skal skiftes mellem .asp og <HTML> koder...

HVAD ER DER GALT ?!!...
point gives for svar på metode til fejlfinding af ie5.0 fejl som ikke er fejl på ie5.5 (sikkert asp koderne sessions ell. lign.)

og point til opskriften på den ultimative cache/slet offline indholdet
for jeg bliver sindsyg af den der:
Jeg_Tager_Lige_De_Sider_Som_Ligger_Som_Offline_Indhold_I_Stedet_For_At_Læse_Siden_Forfra_Igen

Grrr....
Avatar billede jkjaers Nybegynder
05. september 2001 - 09:34 #1
Du kunne evt sende en ekstra varierende parameter med over når du kalder siden.

Hvis du f.eks sender datoen med i urlen, vil der aldrig ligge en lignende side i cashen

&etellerandet=<% =now %>
Avatar billede kichian Nybegynder
05. september 2001 - 09:51 #2
Jeg kan ikke forstå at du ikke kan få ie5.0 til at virke med sessions, medmindre at cookies er slået fra i de(n) installationer du har testet.

Avatar billede kichian Nybegynder
05. september 2001 - 10:01 #3
Og

<meta http-equiv=\'pragma\' content=\'nocache\'>
<meta http-equiv=\'case-control\' content=\'no-store\'>

skal nok være:
<meta http-equiv=\'Pragma\' content=\'no-cache\'>
<meta http-equiv=\'Cache-Control\' content=\'no-store\'>
Avatar billede tdaugaard Nybegynder
05. september 2001 - 10:01 #4
moroax:> \"dvs. jeg skriver så meget html kode ind som response.write\" .. det gør ingen forskel om du bruger <% %> 10 eller 100 gange ...
Avatar billede moroax Nybegynder
05. september 2001 - 10:17 #5
jkjaers >>
det var self. en mulighed...

kichian >>
jeg ANER ikke om det ER sessions den går død i,
men et eller andet virker i hvertfald ikke, så jeg er MEGET åben for forslag...
og jeg prøver at rette META\'erne til

tdaugaard >> der var bare en der fortalte mig at hvergang \"den\" skal åbne og lukke asp compileren bruger den tid - ikke meget, men den bruger tid

Alle >> Burde noget af det her ikke tømme hvad der er at tømme ??..
Option Explicit
Response.Expires = -1000
response.buffer = false

???...

og det STORE minus er stadig at det ikke virker optimalt i ie5.0
har ingen af jer haft problemer med ie5.0 vs ie5.5 ??..

* MoRoax...

Avatar billede jkjaers Nybegynder
05. september 2001 - 10:20 #6
Det er simpelt og primitivt, men det virker og det er vel det primære
Avatar billede tdaugaard Nybegynder
05. september 2001 - 10:23 #7
moroax:> Option Explicit gør at alle variabler SKAL erklæres med Dim, intet andet.

Response.Buffer = False gør at det du outputter via ASP bliver vist imens scriptet udføres, og ikke først når det er færdigt.

Response.Expires .. -1 er ligeså godt som -1000 ...  eller 0 ..
Avatar billede moroax Nybegynder
05. september 2001 - 10:46 #8
jkjaers >> Yep
tdaugaard >> så \"svar\" dog mand ,-)
- eller er du færdig med at hente point hjem ??..


Og det er stadig et problem med ie5.0
er der et eller andet asp, html, css som ie5.0 er overfølsom over for ??..

* MoRoax...
Avatar billede kichian Nybegynder
05. september 2001 - 11:03 #9
Hvordan overfører du data i administrationsdelen? ie5.5 er mere avanceret mht. XML end 5.0 og supporterer CSS bedre.
Så du må have lavet noget meget \"fancy\" siden 5.0 ikke virker efter hensigten.
Avatar billede moroax Nybegynder
05. september 2001 - 11:26 #10
kichian >>
her er siderne til opdatering af menuerne:
---------------------------------- Side med formen: ----------------------------------------
<html>
    <head>
        <meta http-equiv=\"pragma\" content=\"nocache\">
        <title>Rediger</title>
        <link rel=\"Stylesheet\" href=\"rediger.css\">
        <SCRIPT LANGUAGE=\"VBScript\">
            Sub Start_onClick
                Dim TheForm
                Set TheForm = Document.thisForm
                If IsNumeric(TheForm.VisNr.Value) Then
                    TheForm.Submit
                Else
                    MsgBox \"Vær venlig kun at indtaste tal\" & vbCrLf & \" i nummerfeltet !.\"
                End If
            End Sub
        </SCRIPT>
    </head>
<%
fkst = now
MENU    = Request.Querystring(\"menu\")
ID        = Request.Querystring(\"id\")
dkTEKST    = Request.Querystring(\"dktekst\")
ukTEKST    = Request.Querystring(\"uktekst\")
deTEKST    = Request.Querystring(\"detekst\")
LINK    = Request.Querystring(\"link\")
VISNR    = Request.Querystring(\"visnr\")
    if VISNR = \"\" then VISNR = \"10\"
AID     = Request(\"AID\")
BID     = Request(\"BID\")
SPROG    = Session(\"SPROG\")

    if SPROG = \"dk\" then loadIT = \"dkTekst\"
    if SPROG = \"uk\" then loadIT = \"ukTekst\"
    if SPROG = \"de\" then loadIT = \"deTekst\"
%>

<body onLoad=\"document.thisForm.<%= loadIT %>.Focus()\">
<br><br><br>
<table Width=\"80%\" align=center>

<form method=\"POST\" name=\"thisForm\" action=\"OpdaterMenu.asp?menu=<%= MENU %>&AID=<%= AID %>&BID=<%= BID %>\">
    <table border=\"0\" width=\"60%\" align=\"center\">
<%
if Session(\"DANSK\") = \"JA\" then
    Response.write \"<tr><td>\"
        if SPROG = \"dk\" then
            Response.write \"<strong> DK-TEKST </strong>\"
        else
            Response.write \"Dk-tekst\"
        end if %>
    </td><td><input type=\"text\" class=\"flt\" name=\"dkTekst\" size=\"20\" Value=\"<%= dkTEKST %>\"></td></tr>
<%
end if

if Session(\"ENGELSK\") = \"JA\" then
    Response.write \"<tr><td>\"
        if SPROG = \"uk\" then
            Response.write \"<strong> UK-TEKST </strong>\"
        else
            Response.write \"Uk-tekst\"
        end if %>
    </td><td><input type=\"text\" class=\"flt\" name=\"ukTekst\" size=\"20\" Value=\"<%= ukTEKST %>\"></td></tr>
<%
end if

if Session(\"TYSK\") = \"JA\" then
    Response.write \"<tr><td>\"
        if SPROG = \"de\" then
            Response.write \"<strong> DE-TEKST </strong>\"
        else
            Response.write \"De-tekst\"
        end if %>
    </td><td><input type=\"text\" class=\"flt\" name=\"deTekst\" size=\"20\" Value=\"<%= deTEKST %>\"></td></tr>
<%
end if %>
    <tr>
        <td width=\"40%\" align=\"right\">Nr. i Menuen (Tal)</td>
        <td width=\"60%\"><input type=\"text\" class=\"flt\" name=\"VisNr\" size=\"3\" Value=\"<%= VISNR %>\"></td>
    </tr>
<% if MENU = \"A\" then %>
    <tr>
        <td align=\"center\">Link <input type=\"radio\" name=\"link\" value=\"1\" <% if LINK = 1 then %>Checked<% else %> <% end if%>></td>
        <td bgcolor=\"#019318\" align=\"center\"><Font color=\"#AAFFAA\"> -eller kategori </font><input type=\"radio\" name=\"link\" value=\"0\" <% if LINK = 0 then %>Checked<% else %> <% end if%>></td>
    </tr>
<% End If %>
    <tr><td>&nbsp;</td></tr>
    <tr>
        <td width=\"100%\" colspan=\"2\" align=\"center\">
            <input class=\"knap\" type=\"button\" value=\"Opdater\" onClick=\"Start_onClick()\">&nbsp;&nbsp;
            <input class=\"knap\" type=\"button\" value=\"Tilbage\" onClick=\"history.go(\'-1\')\"></td>
        </tr>
    </table>
<input type=\"Hidden\" Value=\"<%= ID %>\" Name=\"MenuID\">
</form>
</table>
</body>
</html>
---------------------------------------- Form side slut -----------------------------------



---------------------------------------- Opdaterings filen ---------------------------------

<%@ LANGUAGE=\"VBSCRIPT\" %>
<%
fkst = now
MENU        = Request(\"menu\")
dkTEKST        = Request(\"dkTekst\")
ukTEKST        = Request(\"ukTekst\")
deTEKST        = Request(\"deTekst\")
VISNR        = Request(\"VisNr\")
MenuID        = Request(\"MenuID\")
AID            = Session(\"sideID\")
BID            = Session(\"sideID\")
SPROG        = Session(\"SPROG\")
\'Response.write \"<Font color=\'#0000AA\'>aID:  \" & AID & \"</Font><br>\"
    if dkTEKST = \"\" then
        dkTEKST = \"\"
        dkAKTIV    = \"0\"
    else
        dkAKTIV = \"1\"
    end if
    if ukTEKST = \"\" then
        ukTEKST = \"\"
        ukAKTIV = \"0\"
    else
        ukAKTIV = \"1\"
    end if
    if deTEKST = \"\" then
        deTEKST = \"\"
        deAKTIV = \"0\"
    else
        deAKTIV = \"1\"
    end if

if MENU = \"A\" then
    SQL = \"INSERT INTO xMenu (xMenuID, dkTekst, ukTekst, deTekst, dkAktiv, ukAktiv, deAktiv, VisNr, aLink) VALUES (\'X10\', \'\" & dkTEKST & \"\', \'\" & ukTEKST & \"\', \'\" & deTEKST & \"\', \" & dkAKTIV & \", \" & ukAKTIV & \", \" & deAKTIV & \", \" & VISNR & \", \" & Request(\"link\") & \")\"
    URL = \"RetMenu.asp?menu=A\"
end if
if MENU = \"B\" then
    URL = \"RetMenu.asp?menu=B&AID=\" & AID
    SQL = \"INSERT INTO xMenu (xMenuID, dkTekst, ukTekst, deTekst, dkAktiv, ukAktiv, deAktiv, VisNr) VALUES (\'\" & AID & \"\', \'\" & dkTEKST & \"\', \'\" & ukTEKST & \"\', \'\" & deTEKST & \"\', \" & dkAKTIV & \", \" & ukAKTIV & \", \" & deAKTIV & \", \" & VISNR & \")\"
end if
if MENU = \"C\" then
    URL = \"RetMenu.asp?menu=C&BID=\" & BID
    SQL = \"INSERT INTO xMenu (xMenuID, dkTekst, ukTekst, deTekst, dkAktiv, ukAktiv, deAktiv, VisNr) VALUES (\'\" & BID & \"\', \'\" & dkTEKST & \"\', \'\" & ukTEKST & \"\', \'\" & deTEKST & \"\', \" & dkAKTIV & \", \" & ukAKTIV & \", \" & deAKTIV & \", \" & VISNR & \")\"
end if

Set oConn = Server.CreateObject(\"ADODB.Connection\")
    oConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"../\" & Session(\"dbSTI\"))
    \'Response.write \"<Font color=\'#0000AA\'> SQL: \" & SQL & \"<br> MENU: \" & MENU & \"<br> AID: \" & AID & \"<br> BID: \" & BID & \"</Font><br>\"
    oConn.Execute( SQL )
    oConn.Close
set oConn = nothing

if MENU = \"A\" then
    go2            = \"menu=retA\"
end if
if MENU = \"B\" then
    go2            = \"menu=retB&AID=\" & AID
end if
if MENU = \"C\" then
    go2            = \"menu=retC&BID=\" & BID
end if
%>
<html>
<head>
<meta http-equiv=\"pragma\" content=\"nocache\">
    <script>
        setTimeout(\"parent.menu.location=\'../menu.asp\';\", 100);
    </script>
    <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"2; URL=../delud.asp?<%= go2 %>;\">
</head>

<body bgcolor=\"#FFFFFF\" text=\"black\" link=\"#004159\" alink=\"#004159\" vlink=\"#004159\">
<br>
<TABLE WIDTH=400 HEIGHT=450 BORDER=0 ALIGN=\"CENTER\" CELLPADDING=0 CELLSPACING=0 RULES=\"NONE\" FRAME=\"VOID\">
    <TR>
      <TD WIDTH=100% HEIGHT=15 ALIGN=\"CENTER\" VALIGN=\"TOP\">
            <br><CENTER><Font color=\'#222277\' Face=\'Arial\'><br><br><br>
                    <b>Øjeblik<br>
                  <br>
                  Opdaterer info !</b>
          </CENTER></font>
      </TD>
    </TR>
</TABLE>
</BODY>
</HTML>

------------------------------------------- opdat side slut ------------------------------


Kig på det og se om du kan se hvor den fejler,
alle sider er af samme opbygning....

* MoRoax...

Avatar billede moroax Nybegynder
05. september 2001 - 22:49 #11
Kichian >> ??..
Avatar billede kichian Nybegynder
06. september 2001 - 10:12 #12
Jeg kan ikke lige se hvad der ikke funker, og jeg har ikke ie5.0 længere.
Prøv at lave en side med en formular, der bliver submittet som du har vist. Siden der behandler formularen skal bare vise de data som er indtastet i formularen (for each x in Request.Form). Hvis data er overført som forventet, så er det ikke klient-koden som fejler.
Avatar billede moroax Nybegynder
06. september 2001 - 22:55 #13
tdaugaard >>>
er du \"her\" endnu ??..

Avatar billede moroax Nybegynder
14. september 2001 - 03:18 #14
Ja jeg fik jo ikke svar på spm om ie5.0

og der kommer åbenbart ikke svar fra tdaugaard
Sååå, Jeg lukker,
Avatar billede phansen Nybegynder
14. oktober 2001 - 21:03 #15
Jo, for det første hedder meta tag\'en pragma = no-cache (med et minus imellem \'no\' og \'cache\').

For det andet, er der en bug i Internet Explorer (en? haha kom igen), som har at gøre med hvornår den cacher siden (vistnok når halvdelen af dens 64kB buffer er fyldt).

Men som de gamle grækere sagde, lav en sekundær \'head\' sektion aller sidst i dit dokument og smid endnu en meta: pragma=no-cache tag derned, så burde det stoppe IE.
Eksempel:

<html>
<head>
<title>babbelab</title>
</head>
<body>
Howdy dowdy
</body>
<head>
<meta http-equiv=\"pragma\" content=\"no-cache\">
</head>
</html>

Hvis det ikke virker så prøv at refresh\'e én gang til :O)

Desuden kan det være der er en proxy server mellem dig og dine brugere som cacher siderne (evt. en transparent én, så brugerne ikke nødvendigvis ved noget om det)..
Sådan en fætter skal have pragma: no-cache serveret i HTTP headeren (hvilket i øvrigt også burde stoppe IE), mens proxy servere typisk er ligeglade med \'expires\' tag\'en, og højst sandsynligt også er ligeglade med dine meta tags inde i html\'en...
Tilføj en \'Pragma: no-cache\' til HTTP headeren (hvis det er HTTP/1.0, ellers er det vist Cache-Control: no-cache i HTTP/1.1), og det burde få proxy servere (og IE?...) til at holde op med at cache indholdet...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester