Avatar billede liferocks Nybegynder
08. februar 2006 - 15:42 Der er 21 kommentarer og
1 løsning

Ikke opdater baggrund

Hejsa alle sammen =)

Jeg har et lille problem med min chat..

Den opdatere sådan rimligt tit..

Men nu er det sådan at den baggrund jeg har liggende tager ca. 7 sek at loade.. og den når næsten aldrig at få den loade =(

Så jeg vil høre om der eventuel findes et script der kun opdater noget, og la der andet være.. eller en anden måde at gøre det på ?

// Tak på forhånd =)=D=)=D=)=D=)=D
Avatar billede fennec Nybegynder
08. februar 2006 - 15:51 #1
Lav en skjult Iframe som henter opdateringerne (hvis der er nogen). På den måde opdatere hoved vinduet kun hvis der er opdateringer.

Du kan med fordel udbygge den, så den tilføjer opdateringerne til en <div> i hovedvinduet med innerHTML. Så skal du nemlig ikke reloade hovedvinduet, og dermed heller ikke baggrunden :o)
Avatar billede liferocks Nybegynder
08. februar 2006 - 15:53 #2
Kan du lave et eksempel for mig ? =) Så vil jeg da blive glad :)
Avatar billede fennec Nybegynder
08. februar 2006 - 15:56 #3
<iframe src="getUpdates.asp" width="0" height="0"></iframe>
<div id="messages"></div>

og på getUpdates.asp kalder du funktionen.
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function makeUpdates()
{
  obj = parent.document.getElementById("messages")
  obj.innerHTML = obj.innerHTML + "nye opdateringer<br>nye opdateringer"
}
//-->
</SCRIPT>
Avatar billede fennec Nybegynder
08. februar 2006 - 15:58 #4
makeUpdates() kaldes selvfølgelig kun, hvis der er opdateringer. Så du skal på en eller anden måde tjekke hvilke linjer der er kommet ud på skærmen. Evt ved at gemme et kolonneID, hvis du bruger en database.
Avatar billede liferocks Nybegynder
08. februar 2006 - 16:02 #5
tak for hjælpen =)
Smid et svar =)
Avatar billede fennec Nybegynder
08. februar 2006 - 16:07 #6
Smid en besked herinde, hvis du skal have mere hjælp med dette problem. Så skal jeg nok være der...

.o) <-- One Eyed Jack
Avatar billede liferocks Nybegynder
08. februar 2006 - 16:07 #7
Ja skal jeg nok gøre =)
Avatar billede liferocks Nybegynder
08. februar 2006 - 16:29 #8
Hmm.. hvordan kan jeg hente min id i ud i Javascript.. altså hvordan henter jeg det ud bag .php?id=1 fks.. hvordan kan jeg hente det ud i javascript?
Avatar billede fennec Nybegynder
08. februar 2006 - 16:46 #9
Mine PHP egenskaber er helt væk nu, så du får det som seudo kode.

Jeg ville gøre noget i denne stil:

<body onload="checkAndLoad()">

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function makeUpdates(fText)
{
  obj = parent.document.getElementById("messages")
  obj.innerHTML = obj.innerHTML + fText
}

function makeUpdates(fText)
{
<?
if(isNaN($_GET["lastID"]))
  $lastID = 0;
else
  $lastID = $_GET["lastID"];

mySql("select * from dinTabel where id>$lastID order by id");
If(erNogenRækker)
{
  while(flereRækker)
  {
    $linjer += row["tekst"] + "<br>";
    $lastID = row["id"] ;
  }
 
  echo "makeUpdates('$linjer')";
}
?>
 
  window.setTimeout("location.href = 'denneSide.php?id=<? echo $lastID; ?>'",5000)
}

//-->
</SCRIPT>

Jeg kan godt få skrevet den rigtige kode, men så skal jeg have fundet mine gamle PHP koder frem.
Avatar billede fennec Nybegynder
08. februar 2006 - 16:46 #10
Der var lige en fejl:

<body onload="checkAndLoad()">

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function makeUpdates(fText)
{
  obj = parent.document.getElementById("messages")
  obj.innerHTML = obj.innerHTML + fText
}

function checkAndLoad()
{
<?
if(isNaN($_GET["lastID"]))
  $lastID = 0;
else
  $lastID = $_GET["lastID"];

mySql("select * from dinTabel where id>$lastID order by id");
If(erNogenRækker)
{
  while(flereRækker)
  {
    $linjer += row["tekst"] + "<br>";
    $lastID = row["id"] ;
  }
 
  echo "makeUpdates('$linjer')";
}
?>
 
  window.setTimeout("location.href = 'denneSide.php?id=<? echo $lastID; ?>'",5000)
}

//-->
</SCRIPT>
Avatar billede liferocks Nybegynder
08. februar 2006 - 16:50 #11
Det er jo et et rykkesystem jeg er i gang med... Og der har en tabel med en række til hvert felt...

Men Fennec.. du har ikke mulighed for at hjælpe mig med at lave et rykke system hvor man kan se hianden med mysql?

Du vil blive belønnet med 350 points mere.. og få reklame i min chat ?
Og hvis du har en side.. så vil jeg da gerne lave et events om din side.. altså hvor jeg laver noget tøj, og et rum ? når du kunne tænke dig ?
Avatar billede fennec Nybegynder
08. februar 2006 - 17:05 #12
rykke system?? ikke helt med??
Avatar billede liferocks Nybegynder
08. februar 2006 - 17:09 #13
Altså.. sådan til en chat.. som på Netstationen.. www.n.dk og www.3dchat.dk
Avatar billede fennec Nybegynder
09. februar 2006 - 09:59 #14
Jeg fatter minus af n.dk og jeg kan ikke komme ind på 3dchat.dk. Jeg er ikke så kvik :o)

Mener du at gamle beskeder skal slettes, nå der kommer nye, så der kun vises 20 beskeder af gangen??
Avatar billede liferocks Nybegynder
09. februar 2006 - 15:07 #15
Hmm.. Fennec..

tjek det system jeg har nu..

http://www.powerchat.dk/tester.php?id=8&brugerid=1
Avatar billede liferocks Nybegynder
09. februar 2006 - 15:08 #16
Det vil jeg gerne have lavet ordenligt =)
Avatar billede fennec Nybegynder
09. februar 2006 - 15:25 #17
Hvordan bliver teksterne vist i dette system???
Avatar billede liferocks Nybegynder
09. februar 2006 - 16:04 #18
Hmm.. det er nogen talebobler.. men har fået det til virke som jeg gerne ville have =) Men nu vil jeg gerne have hjælp til hvordan den man bare skal opdater min <div> der har id="tekst" til at bare at opdatere...
Ikke til at lave nyt tekst ... Jeg vil bare gerne have den til at opdater..
Kan du lave et script ?
Avatar billede fennec Nybegynder
09. februar 2006 - 16:17 #19
Jeg ser noget med at du skal have en <div> til hver persons taleboble. De skal så have et unikt id (evt personens DB id).

<div id="tale1"></div>
<div id="tale2"></div>
<div id="tale3"></div>

Du skal så have div id'et med på funktionen, og den skal "overskrive" gamle beskeder:
function makeUpdates(fText, fDivID)
{
  obj = parent.document.getElementById(fDivID)
  obj.innerHTML = fText
}

For hver ny besked i databasen skal du kalde makeUpdates() funktionen med teksten samt brugerid'et:

...
...
mySql("select * from dinTabel where id>$lastID order by id");
If(erNogenRækker)
{
  while(flereRækker)
  {
    $linjer = row["tekst"];
    $lastID = row["id"] ;
    $brugerID = row["brugerID"] ;
    echo "makeUpdates('$linjer','tale$brugerID');";
  }
}
Avatar billede liferocks Nybegynder
09. februar 2006 - 16:32 #20
endnu en tak forhjælpen =)
Avatar billede liferocks Nybegynder
09. februar 2006 - 16:58 #21
Jeg har den er kode jeg skal bruge:

makeUpdates(<?$l = 60; $t = 0; $id = "1_3"; include("ryk2.php");?>, $id)

Men det viker ikke ?
Avatar billede fennec Nybegynder
10. februar 2006 - 08:27 #22
Der er noget helt galt der :o)
For det først får du ikke $id variablen udskrevet. Den skal i <? echo $id?>
Derneæst kan der være mill af fejl i ryk2.php. Den mest oplagte er at du har glemt at smide " omkring den tekst som filen genererer (går da ud fra det skal være tekst). Det samme gælder $id, som også ser ud til at være tekst ($id="1_3";)

Det endelige resultat i HTML skulle gerne være noget i denne stil:
makeUpdates("en tekst", "1_3")
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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