Avatar billede supersquirrel Nybegynder
02. juni 2009 - 21:51 Der er 5 kommentarer og
1 løsning

jQuery hjælp

Hejsa,

Jeg har følgene kode (indtil videre), som henter data fra en anden fil.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>msg</title>
       
        <script type="text/javascript">
            $(function() {
                $('<div id="info" />').load('msg.php #msg', function() {
                    $(this).appendTo('#container')});
                   
                    return false;
            });
        </script>   
       
    </head>
    <body>
        <div id="container"></div>
    </body>
</html>

Mit spørgsmål er så, hvordan får jeg scriptet til at opdatere hvert 5. sekund og hvordan loader jeg automatisk scriptet når siden åbnes?
Avatar billede softspot Forsker
02. juni 2009 - 22:06 #1
Du kunne definere funktionen med et navn, som så kaldes med et interval (setInterval). Noget i stil med dette:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>msg</title>
       
        <script type="text/javascript">
            function loadContent() {
                $('<div id="info" />').load('msg.php #msg', function() {
                    $(this).appendTo('#container');
                });
                   
                return false;
            }
            setInterval("loadContent()", 5000);
            $(loadContent);
        </script>   
       
    </head>
    <body>
        <div id="container"></div>
    </body>
</html>
Avatar billede supersquirrel Nybegynder
02. juni 2009 - 22:33 #2
Det virker jo fantastisk, men selvfølgelig førte det til et nyt problem.

Det er meningen at det, når det er færdigt, vil være en gæstebog. Problemet ligenu, er at den bare skriver det msg.php (nu .html), på en ny linje, hver gang den opdaterer. Altså, hvis den har opdateret 3 gange, vil der være:

[teksten i msg.php]
[teksten i msg.php]
[teksten i msg.php]

Har du en idé til hvordan dette kan fixes?
Avatar billede softspot Forsker
02. juni 2009 - 22:39 #3
Umiddelbart ville jeg jo tro du rent faktisk havde brug for dette i stedet:

        <script type="text/javascript">
            function loadContent() {
                $('#container').load('msg.php #msg', function() {
                    setTimeout("loadContent()", 5000);
                });
                   
                return false;
            }
            $(loadContent);
        </script>   

Der bare loader indholder direkte ind i container-elementet og sætter et nyt timeout op, når indholdet er indlæst...
Avatar billede supersquirrel Nybegynder
02. juni 2009 - 23:12 #4
Oooh, ja okay, selvfølgelig - Så har jeg også lært det, tak!

Smid point
Avatar billede softspot Forsker
02. juni 2009 - 23:34 #5
Du kan få et svar, så kan du smide point... ;D

Velbekomme :-)
Avatar billede softspot Forsker
03. juni 2009 - 00:33 #6
Tak for point :-)
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

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