Avatar billede bojohansen Nybegynder
24. november 2003 - 09:04 Der er 10 kommentarer og
1 løsning

undgå Cache helt??

Hej.

Jeg har en side som indeholder et FSO script som lister alle billeder i den mappe jeg angiver.
I bunden er der så en Submit så alle billeder i mappen tilføjes en DB.
Sidens Submit/Form kalder så sig selv igen.
Denne knap skal kun vises hvis Billederne i denne mappe ikke allerede ligger i databasen.
Problemet er bare at når jeg submitter filerne til databasen og siden reloader, så viser den stadigt submit knappen som den ikke skal, trykker jeg så på Opdater/F5 så forsvinder knappen godt nok, men så addes Records igen til DB'en.
Ja jeg ved godt at jeg bare kan lave lidt mere if Then Else, men det er ikke hensigten.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Response.Expires = 0
Response.AddHeader "PRAGMA", "NO-CACHE"
%>

Har jeg i toppen af siden, hvilket jo burde sørge for at siden ikke Caches, er der i fejl i det eller mangler jeg noget ??
Avatar billede steen_hansen Forsker
24. november 2003 - 09:07 #1
Over <html> kan du sætte dette:

<%
Session.LCID = 1030
Response.Buffer = True
Response.Expires = -1000
%>

Mellem <head></head> kan du sætte dette:

<META HTTP-EQUIV="Expires" CONTENT="Fri, Jun 12 1981 08:20:00 GMT">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
Avatar billede steen_hansen Forsker
24. november 2003 - 09:10 #2
Undskyld,

Session.LCID = 1030

angiver dansk tegnsæt, og har intet med no cache at gøre :o)
Avatar billede bojohansen Nybegynder
24. november 2003 - 09:15 #3
Nope, den viser stadigt Submit knappen.
Avatar billede steen_hansen Forsker
24. november 2003 - 09:20 #4
Ok, jeg har misforstået spørgsmålet, det er noget, du skal kunne kode dig ud af. Her står jeg af, men jeg vil følge spændt med
Avatar billede bojohansen Nybegynder
24. november 2003 - 09:24 #5
Response.Redirect("fso.asp?VisMappe=" & VisMappe)'Så den responser lige efter Indsætning

Jeg kan gøre det sådant, men jeg har prøvet alle de metode jeg kender for No Cache, men ingen funger når man har en Form som submitter til sin egen side.

Nogen forslag??
Avatar billede bojohansen Nybegynder
24. november 2003 - 09:25 #6
Nej du har ikke misforstået, det er en No Cache løsning jeg søger som ikke kræver server side script
Avatar billede steen_hansen Forsker
24. november 2003 - 09:30 #7
Ok, men ovenstående META-tags og/eller VB-scripting burde da klare det? Kan du ikke prøve at smide koden?
Avatar billede bojohansen Nybegynder
24. november 2003 - 09:38 #8
Her er koden Response.Redirect lige efter indsætning af records, som så virker godt nok, men jeg syntes bare at det er lidt weird at man ikke kan få det til at virke uden Response.Redirect og kun med No Cache.

Jeg har prøvet med dine foreslag.

Vær lige opmærksom at koden er temmeligt rodet, da det er en beta model.


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Response.Expires = 0
Response.AddHeader "PRAGMA", "NO-CACHE"
%>
<!--#include virtual="/Connections/ConnPic.asp" -->
<%
Dim RsErDerBillederIMappe__MMColParam
RsErDerBillederIMappe__MMColParam = "1"
If (Request.QueryString("VisMappe") <> "") Then
  RsErDerBillederIMappe__MMColParam = Request.QueryString("VisMappe")
End If
%>
<%
Dim RsErDerBillederIMappe
Dim RsErDerBillederIMappe_numRows

Set RsErDerBillederIMappe = Server.CreateObject("ADODB.Recordset")
RsErDerBillederIMappe.ActiveConnection = MM_ConnPic_STRING
RsErDerBillederIMappe.Source = "SELECT * FROM PicTable WHERE PicSerie = '" + Replace(RsErDerBillederIMappe__MMColParam, "'", "''") + "'"
RsErDerBillederIMappe.CursorType = 0
RsErDerBillederIMappe.CursorLocation = 2
RsErDerBillederIMappe.LockType = 1
RsErDerBillederIMappe.Open()

RsErDerBillederIMappe_numRows = 0
%>
<% 
Dim VisMappe
VisMappe = Request.Querystring("VisMappe")



%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style type="text/css">
<!--
.style1 {color: #FF0000}
-->
</style>
</head>

<body>
<form action="fso.asp" method="get" name="VisMappe" id="VisMappe">

<p align="center"><strong>W 750 X H 563 p&aring; Originalen. <span class="style1">IKKE FASTLAGT ENDNU </span></strong></p>
<p align="center"><strong>W 150 X H 113 p&aring; thumbs</strong></p>
<table width="200" border="1" align="center" bordercolor="#333333">
  <tr>
    <td>Vis Mappe Nr:</td>
    <td><input name="VisMappe" type="text" id="VisMappe" size="10"></td>
  </tr>
  <tr>
    <td colspan="2"><div align="center">
        <input name="VisMappeKnap" type="submit" id="VisMappeKnap" value="Vis mappe">
      </div></td>
    </tr>
</table>
</form>
<p>&nbsp;</p>
<p>
  <%
'Planen med dette script er at tilføje alle billede stierne i en mappe til en database.
'dette script tilføjer alle de store billeder, der laves et nyt til Thumbnails senere.
Dim ImageDir, PicSerie, PicSti, PicThumbSti
PicDir = Request.Querystring("VisMappe")
PicSerie = Request.Querystring("PicSerie")

' Mappen med filerne, 1 er sat til Default værdi for dette Script
If Request.QueryString("VisMappe") <> "" Then
    PicDir = PicDir + ("/")
Else
    PicDir = VisMappe + ("/")
End If

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(PicDir))
Set objFiles = objFolder.Files

PicCount = objFiles.Count

Response.Write "Der er <strong>" & PicCount & "</strong> filer i denne mappe :</p>"

For Each Image In objFiles
If Instr(Image.Name,"_ov") Then
    Response.Write Image.Name & ("&nbsp;Thumb")
End If
  'Response.Write Server.MapPath(".") + ("/") + PicDir + image.name  & "<br>"
  'Response.Write
  %>
    <a href="<%= ("/privat/ok/pic/") + PicDir + image.name %>"><%= Server.MapPath(".") + ("/") + PicDir + image.name %></a><br>
  <br>
  <%
Next

If Request.Querystring("Gem") = ("Gem") Then
    Set objFS = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFS.GetFolder(Server.MapPath(PicDir))
    Set objFiles = objFolder.Files
   
    %><!--#include virtual="/Connections/ConnPic.inc" --><%
   
        strSQL1 = "Insert Into PicSerieTable "
       
        strSQL1 = strSQL1 & "(SerieNummer) "
       
        strSQL1 = strSQL1 & "values( "
       
        strSQL1 = strSQL1 & "'" & VisMappe & "')"
       
        Conn.Execute(strSQL1)
   
   
    intImgCount = objFiles.Count
    %>
 
  <%
    For Each Image In objFiles
   
        If Instr(Image.Name,"_ov") Then
        'Ingenting da vi bare adder "_ov" til det store billede navn og sætter ind i "PicThumbSti"
        Else
            'Del Image.Name op så vi kan adde "_ov" inden ".FileExtension"
            PicThumbSti = Image.Name
            PicThumbSti = Split(PicThumbSti, ".", 2, 1) 
            '=PicThumbSti(0) + (".") + PicThumbSti(1)

            strSQL = "Insert Into PicTable ("

                strSQL = strSQL & "PicNavn, "
                strSQL = strSQL & "PicSerie, "
                strSQL = strSQL & "PicSti, "
                strSQL = strSQL & "PicThumbSti) "
               
                strSQL = strSQL & "values( "
               
                strSQL = strSQL & "'" & Image.Name & "', "
                strSQL = strSQL & "'" & VisMappe & "', "
                strSQL = strSQL & "'" & VisMappe & Sti & ("/") & Image.Name & "', "
                strSQL = strSQL & "'" & VisMappe & Sti & ("/") & PicThumbSti(0) & ("_ov") & (".") & PicThumbSti(1) & "')"

                Conn.Execute(strSQL)
            'Conn.Execute("Insert Into PicTable("PicNavn, PicSerie, PicSti, PicThumbSti") Values('" & Image.Name & "'", "'" & PicSerie & "'", "'" & Sti & ("/") & Image.Name & "'", "'" & Sti & ("/") & PicThumbSti(0) & ("_ov") & (".") & PicThumbSti(1) & "'")
        End If
    Next
    Response.Redirect("fso.asp?VisMappe=" & VisMappe)
End If
   

strScriptName = Request.Servervariables("ScriptName")

Set objFS = Nothing
%>
</p>
<form name="form1" method="get" action="">
  <% If RsErDerBillederIMappe.EOF And RsErDerBillederIMappe.BOF Then %>
  <table width="200" border="1" align="center">
    <tr>
      <td><div align="center">
          <input type="submit" name="Submit" value="Læg alle billeder i databasen">
          <input name="Gem" type="hidden" id="Gem" value="Gem">
          <input name="VisMappe" type="hidden" id="VisMappe" value="<% = Request.Querystring("VisMappe") %>">
      </div></td>
    </tr>
  </table>
  <% End If ' end RsErDerBillederIMappe.EOF And RsErDerBillederIMappe.BOF %>
  <% If Not RsErDerBillederIMappe.EOF Or Not RsErDerBillederIMappe.BOF Then %>
  <table width="200" border="1" align="center">
    <tr>
      <td><div align="center">Denne mappe med billeder ligger allerede i databasen </div></td>
    </tr>
  </table>
  <% End If ' end Not RsErDerBillederIMappe.EOF Or NOT RsErDerBillederIMappe.BOF %>

</form>
<p>&nbsp;</p>
</body>
</html>
<%
RsErDerBillederIMappe.Close()
Set RsErDerBillederIMappe = Nothing
%>
Avatar billede steen_hansen Forsker
24. november 2003 - 11:01 #9
Jeg må give op, Bo. Jeg kan ikke gennemskue hele din kode. Håber der er andre, der kan være behjælpelige :o(
Avatar billede bojohansen Nybegynder
24. november 2003 - 14:55 #10
Koden er nu ikke så farlig, det der sker er at siden vises, her indtastes så hvilken mappe man vil se eks. 3, klikker på den første submit knap som så kalder siden selv bare med
?VisMappe=3
på Querystringen

Nu listes alle filer i mappe 3 og man kan nu nederst på siden vælge at gemme alle stierne til alle filerne i en Database, HVIS de ikke allerede er gemt i databasen.
Hvis de allerede er gemt i databasen findes submit knappen(Læg alle billeder i databasen) ikke, men der står i stedet for at filerne er gemt.

Problemet er så at når man går ind på, lad os sige mappe 6 første gang for at gemme filerne i DB'en og klikker "Læg alle billeder i databasen" og Formen kalder sig selv, så henter den ikke siden på nyt, men nærmest bare reloader i Cachen, ligemeget hvad man skriver om Chache i <Head>

Egentligt er det fuldstændigt ligemeget hvad scriptet indeholder, for det er sådant hver gang man har en form som submitter til sin egen side.....den reloader aldrig siden rigtigt, og det er det jeg gerne vil have den til.
Avatar billede bojohansen Nybegynder
21. januar 2004 - 23:14 #11
Lukker
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