Avatar billede blod_1 Nybegynder
01. april 2006 - 17:10 Der er 12 kommentarer og
2 løsninger

Reload 80 sek efter billedet er modificeret.

Jeg mangler noget asp som kan tjekke hvornår et billede er redigeret, og så tage den tid og lægge 80 sek til.

F.eks hvis billedet er redigeret kl 00:00:00 så skal siden reloade 80 sek efter, kl 00:01:20

Billedet bliver redigeret hvert 60 sek, men for at være sikker på at alt er blevet uploadet før reload så vil jeg have at den skal reloade siden 80 sek efter det er oprettet.
Avatar billede mitbrugernavn Praktikant
01. april 2006 - 19:59 #1
du kan f.eks. lægge denne dette java script på din opdateringsside:

<script language="JavaScript"><!--

function myReload(){
    document.location.href = self.location+"?reload=true";
}
if (location.search.indexOf('reload=true') == -1) {
    setTimeout("myReload()",80000);
}

// -->
</script>
Avatar billede blod_1 Nybegynder
01. april 2006 - 22:16 #2
Ja, men det er jo ikke i forhold til filen, det er bare i forhold til hvornår man åbnede siden.

Formålet med det jeg vil have er at hvis billedet nu opdaterer f.eks 40 sek efter at man er gået ind på siden, så skal man ikke vente de 80 sek, så skal man jo kun vente 40 + 20 sek = 60 sek før at den skal reloade, og derved få sidste nye billede frem.
Avatar billede mitbrugernavn Praktikant
02. april 2006 - 09:06 #3
hentes billederne direkte fra mappe eller via database ???
Avatar billede mitbrugernavn Praktikant
02. april 2006 - 12:51 #4
prøv dette

opret filen test_1.asp

<IFRAME
                        name=celle1 src="test_2.asp"
allowTransparency="true" 
                        frameBorder=0 width=250 height="300"
                        scrolling="no"> </IFRAME>
<IFRAME
                        name=celle2 src="test.asp"
allowTransparency="true" 
                        frameBorder=0 width=0 height="0"
                        scrolling="no"> </IFRAME>

opret filen test_2.asp

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<% Response.CacheControl = "no-cache" %>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>
</head>

<body>
<%
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set Root = fso.getfolder("c:\inetpub\wwwroot\billeder") 'her hentes en mappe

Set Files = Root.Files


For Each File In Files
Set f1 = fso.GetFile("c:\inetpub\wwwroot\billeder\" & File.Name)  'her hentes et enkelt billed
LastModified = f1.DateLastModified

Next
session("LastModified") = LastModified
response.write  session("LastModified")
%>
<img src="dit billed" width="300" height="225" />

</body>
</html>

opret filen test.asp 'denne henter hvornår billedet har været ændret hvert 15 sekund er det ændre så indlæses test_2 igen og session("LastModified") får en ny værdi

<body onload="setTimeout('location.reload(true)',15000);">

<%

Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set Root = fso.getfolder("c:\inetpub\wwwroot\billeder") 'her hentes en mappe

Set Files = Root.Files


For Each File In Files
Set f1 = fso.GetFile("c:\inetpub\wwwroot\billeder\" & File.Name)  'her hentes et enkelt billed
LastModified2 = f1.DateLastModified

Next

CurTime = FormatDateTime(Now,0)

NewTime = DateAdd("s",10,CurTime)
if LastModified2 <> session("LastModified") then

%>
  <script>
    parent.celle1.location = "test_2.asp";
parent.celle1.document.location.reload();

  </script>

<%
end if

%>
Avatar billede blod_1 Nybegynder
02. april 2006 - 16:00 #5
Billedet ligger i samme mappe som default.asp (siden som skal reloade med billedet på)
Avatar billede mitbrugernavn Praktikant
02. april 2006 - 16:10 #6
mit skøn er at det vil give store problemer for dig, da den så skal ind og reloade siden konstant - har du testet mit eks.
Avatar billede blod_1 Nybegynder
02. april 2006 - 21:22 #7
Hvorfor skulle den da reloade konstant? Den skal reloade 1 gang hvert 80. sek, intet andet.

Jeg har ikke prøvet dit eksempel, da det ser ud til at der skal bruges iframes, og flere filer, jeg skal bruge noget som kun bliver afviklet i en fil.
Ved ikke om du er klar over hvad det er jeg ønsker? Har jeg ikke forklaret det rigtigt?

Den skal bare tage tiden efter hvornår filen er redigeret, og så få siden til at reloade 80 sek efter den tid.
Avatar billede mitbrugernavn Praktikant
02. april 2006 - 21:40 #8
men så skal du vel bare kigge lidt nærmere på det og evt. lægge det således:::


<%

Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set Root = fso.getfolder("c:\inetpub\wwwroot\billeder") 'her hentes en mappe

Set Files = Root.Files


For Each File In Files
Set f1 = fso.GetFile("c:\inetpub\wwwroot\billeder\" & File.Name)  'her hentes et enkelt billed
LastModified2 = f1.DateLastModified 'tiden for hvor når det er ændret

Next
nytid = 80000
%>

så reloader den efter 80 sekunder
<body onload="setTimeout('location.reload(true)',<%=nytid%>);">


men ;-))) 
"hvis billedet nu opdaterer f.eks 40 sek efter at man er gået ind på siden, så skal man ikke vente de 80 sek, så skal man jo kun vente 40 + 20 sek = 60 sek før at den skal reloade, og derved få sidste nye billede frem."
dette var det du spurgte om og det kræver at den tjekker LastModified2 konstant
Avatar billede blod_1 Nybegynder
02. april 2006 - 21:47 #9
så kunne du jo nøjes med at skrive 80 direkte i head, men det er jo ikke det jeg vil!

Ved snart ikke hvordan jeg skal forklare det.. Jeg ved det kan lade sig gøre, og at den kun skal tjekke det når man går ind på siden, problemet er bare at jeg ikke ved hvordan det skal gøres.

Det du lige har sendt er jo faktisk 10 linier, hvor den 11. linie sætter tiden hvornår den skal reloade.

"nytid" har ikke noget at gøre med alle de andre linier.
Avatar billede mitbrugernavn Praktikant
02. april 2006 - 21:54 #10
gangske korrekt - træthed

du skal vist bare nøjes med

<body onload="setTimeout('location.reload(true)',80000);">

men du skal have et script der kører konstant for at tjekke om billedet bliver ændret før de 80 sek. - og det script ligge i eks.
Avatar billede blod_1 Nybegynder
02. april 2006 - 21:59 #11
Nej, forestil dig.
Du går ind på siden, billedet er modificeret kl 00:00:00, tiden som du besøgte siden er kl 00:01:00. Derfor skal der så kun være 20 sek til at siden reloader igen. Det behøver den kun tjekke en gang, og det er ved hvert besøg.
Avatar billede webmasterdk Praktikant
02. april 2006 - 22:00 #12
mitbrugernavn > Jeg bruger php og fatter hat af asp, men kan da se at det er helt hen i vejret dit sidste script...
Hvorfor så meget kode, for slet ikke at bruge det?
Avatar billede mitbrugernavn Praktikant
03. april 2006 - 08:45 #13
så er jeg vist lidt mere klar i hovedet ;-))

det må være dette:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">


<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>


<%
nu = now()
Set fso = CreateObject("Scripting.FileSystemObject\")
Set myFile = fso.GetFile( Server.MapPath("tur.jpg") )
LastModified = myFile.DateLastModified 'tiden for hvor når det er ændret

response.write LastModified & " - aflæsning af billedredigering<br>"
response.write nu & " - aflæsning af bruger ankomst<br>"
response.write datediff("s",LastModified,nu) & " - diff<br>"
if datediff("s",LastModified,nu) > 80 then
opdate = 80000
else
opdate = (80 - datediff("s",LastModified,nu)) * 1000
end if
response.write opdate & " - reloader inden for <br>"
%>

<body onload="setTimeout('location.reload(true)',<%=opdate%>);">
<br><img src="TUR.jpg">
</body>
</html>
Avatar billede mitbrugernavn Praktikant
08. april 2006 - 15:19 #14
hvordan gik det ???
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