/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
opdater side/script
Fra : Angband
Vist : 561 gange
200 point
Dato : 26-03-05 14:02

Hej

Jeg sidder og laver en chat... jeg har dog det problem at hvis folk ikke selv opdaterer så kan folk ikke se andre folks side...

jeg kender godt header('Refresh 0'); men da siden hele tiden loader ser det dumt ud..

derfor vil jeg høre om der er en function så man kan "opdaterer" et script uden siden opdaterer...

Det mest geniale ville være at man kunne få et script på alle brugere til at opdaterer når en af brugerne skrev et indlæg..

/angband

 
 
Kommentar
Fra : TeWeE


Dato : 26-03-05 14:37

Hey!

Jeg har selv siddet og rodet med chats, og jeg kan fortælle dig at det er pisse svært at komme på den idé, men hvis du vil have et starter tip så har du et her:
Du laver selve der hvor folk skriver i en frame (evt. iframe), og så bruger du bare dette script i den HEAD sektion:
<META HTTP-EQUIV=Refresh CONTENT="3"> hvor content er antal sekunder før siden skal opdatere igen...

Jeg kan vise dig min chat som jeg har rodet en del med for at få til at fungere så den virker NOGENLUNDE, men så vidt jeg husker, så er det kun ASP (ASPX/.net) som kan opdatere uden at siden skal reloades, da den bare kan hente indholdet fra fx. en access database når det passer den...

Evt. et javascript som gør at når man sender noget, så opdatere den også framen som viser teksten...

Ved ikke om det var det du skulle bruge, men det var det jeg tror du spurgte om :)

- Pelle Ravn

Kommentar
Fra : molokyle


Dato : 26-03-05 16:51

Refreshe en iframe :

Kode
<html>
<head>
<script type="text/javascript">setTimeout("document.location.href=document.location.href",3000);</script>
</head>
<body>
<iframe src="MIN_SIDE.html" WIDTH="50%" HEIGHT="50%" FRAMEBORDER="2"></iframe>
</body>
</html>


..eller siden :

Kode
<html>
<head>
<script type="text/javascript">setTimeout("document.location.href=document.location.href",3000);</script>
</head>
<body>
TEST
</body>
</html>


</MOLOKYLE>

Kommentar
Fra : molokyle


Dato : 26-03-05 16:55

Ps. Hvis du kopierer koden her fra kandu.dk ? ..så vær lige opmærksom på at rette :

document.locatio n.href ....til -> document.location.href

Sitet hér har det med at sætte white-spaces (blanktegn/mellemrum) ind i koden ...og en masse andre underlige ting

</MOLOKYLE>

Kommentar
Fra : Angband


Dato : 26-03-05 17:54

Det er sådan at jeg ikke har ASP på mit webhotel men det har min ven der godt vil hjælpe...

Kan man med include(""); sætte en asp side ind på sit site eller er iframe nødvendig?

/angband

p.s. er generelt imod frames

Kommentar
Fra : molokyle


Dato : 26-03-05 18:33

Jeg er ikke helt med på hvad du ønsker og er ingen ørn til php/asp, så du må nok venter på 'natmaden' træder hjælpende til.

Jeg ved ikke om man kan refreshe alle klienter via PHP, når der foreligger en update af Db'en ?

Jeg vil tro man ikke kommer uden om timing ?

..som du kender : http://www.gidforums.com/t-857.html

</MOLOKYLE>

Kommentar
Fra : molokyle


Dato : 26-03-05 18:35

Du kan godt include en asp/php fil i stedet for en iframe og lægge den timede opdatering via asphjavascript i denne fil ...tror jeg

</MOLOKYLE>

Kommentar
Fra : natmaden


Dato : 27-03-05 17:37

Det kan i php, lade sig gøre at kun opdatere en ramme, hvis der er nyt indhold.
Hvis du har en fil der indeholder selve tjatten feks. 'tjat.txt'. kan det lade sig gøre ved at tjekke filens 'tidsstempel'
altså:

hvis filen er blevet nyere siden sidste tjek,
Så opdater rammen
ellers
Lad være

Molo -> din første kode med IFRAME...
ville '<script type="text/javascript">setTimeout("document.location.href=document.locatio n.href",3000);</script>'
ikke være bedre plaseret i 'MIN_SIDE.html'

Nå!! nu kalder Kylling og sild !!



Kommentar
Fra : Angband


Dato : 27-03-05 17:58

natmadden lige en ting... du skriver man kan men hvordan skal jeg konstant chekke på filens tidstempel uden at opdaterer siden ?

håber du har lidt tid inden påske-middagen

/angband

Kommentar
Fra : natmaden


Dato : 27-03-05 18:12

En html har en 'header' som kan beabejdes inden at siden sendes/opdateres.
Det kræver at der kan bruges PHP eller asp.
Måske det kunne laves i javascript, men jeg er nu ikke sikker. og asp kører ikke hos mig.

Kan du bruge PHP på din side.??


Påske-middag,,, næ, det er da 2 gode sild og en del kyllinger på flaske der venter, så jeg svigter ikke,
men jeg kikker da lige forbi i pauserne


Kommentar
Fra : molokyle


Dato : 27-03-05 18:15

natmaden -> Det var tænkt som at lade hovedsiden (top.frames[0] på this.document.location.href) opdatere iframen via timing med php scriptet. Måske jeg skulle have skrevet : MIN_SIDE.php i stedet

Derved burde man opnå at hovedsiden ikke opdateres (..det kan klares i special tilfælde, hvis det ønskes ..evt. via et kald fra iframen, der jo er barn (children) objekt på siden), men kun iframen.

</MOLOKYLE>

Kommentar
Fra : Angband


Dato : 27-03-05 18:18

natmaden>
ja kan godt bruger php på min side...

Men det lyder som om på dig at jeg må tage et header og et fil-handlings tutorial

Kommentar
Fra : molokyle


Dato : 27-03-05 18:23

I pap :

2. filer

hovedside.html

MIN_SIDE.php

..MIN_SIDE indsættes som iframe i hovedside.html

Når kun hovedside.html er statisk, men MIN_SIDE.php refreshes opnås at php koden dynamisk kaldes for at tjekke evt. database opdateringer fra en klient. Dermed for alle andre også glæde af opdateringen uden at hovedside.html opdateres. Det var bare en tænkt 'løsning' fra min side

Jeg er jo som sagt ikke inde i php, men bare alm. nysgerrig

</MOLOKYLE>

Kommentar
Fra : Angband


Dato : 28-03-05 18:36

har lavet følgene kode:
Kode
<HTML>
<head>
<meta name="Generator" content="Stone's WebWriter 4">

<script type="text/javascript">

function laes_og_skriv(){
   document.all.test_frame.src='chatindhold.php';
      window.setTimeout("laes_og_skriv()",2000);
}
</script>
</head>

<BODY onLoad="laes_og_skriv();">

<div align="center">
<h2>Sjatten</h2>
<iframe name="test_frame" id="test_frame" src="chatindhold.php" frameborder="1" scrolling="yes" height="400px" width="80%"></iframe>
<br>
<form target="test_frame" action="chatindhold.php" method="post">
   <strong>Skriv&nbsp;her:&nbsp;</strong><input type="text" size="50" name="indhold">
   <br> &nbsp; <br>
   <input type="hidden" name="sub" value="1">
   <input type="submit" value="Send" name="opret">

</form>
</div><br clear="all">





</body>
</html>


men det er som om at den henter det gamle data ind igen.. Og ikke henter opdaterer

Accepteret svar
Fra : natmaden

Modtaget 200 point
Dato : 28-03-05 19:29

Prøv at tilføje disse ved dine meta.
Kode
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">

Men du vil stadig have en konstant opdatering af rammen.
Jeg har lavet denne. men den virker ikke umiddelbart pga. forkert overførte variabler.
Kode
<?
$tjatfil = "tjat.txt";

if (!file_exists($tjatfil)){
    echo "<h1>Fejl: </h1><b>Filen '$tjatfil' er mangler !</b>";
    }
else {
   $tid_ny = filemtime($tjatfil);
   if ($tid_ny != $tid_gl){
       echo "<META http-equiv=refresh content=4;URL=vis_tjat.php>";
       @readfile($tjatfil);
    $tid_gl = $tid_ny;
      
           }
    }
?>


Noget jeg retter senere i dag/nat.
Mvh. Jørgen

Godkendelse af svar
Fra : Angband


Dato : 12-04-05 17:02

Tak for svaret natmaden.
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177578
Tips : 31968
Nyheder : 719565
Indlæg : 6409072
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste