Avatar billede Michael_minni Nybegynder
20. august 2010 - 11:36 Der er 6 kommentarer og
1 løsning

HTML og Ajax - Chat.

Hejsa :)

Jeg sidder her i skolen hvor vi pt. arbejder med System.IO.
Vi koder til hverdag i c# asp.net.

En kammerart og jeg kom til at tænke om ikke det er muligt at lave en chat "i browseren" som via et Ajax script bliver updatet hver andet sekundt.

Altså en text fil der bliver kigget i og refresher hver andet sekundt.

Her er hvad jeg bruger til at læse filen.

<script type="text/javascript">
   
    function Ajax() {
        var xmlHttp;
        try {
            xmlHttp = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
        } catch (e) {
            try {
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
            } catch (e) {
                try {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                    alert("No AJAX!?");
                    return false;
                }
            }
        }
        xmlHttp.onreadystatechange = function() {
            document.getElementById('textIn').innerHTML = xmlHttp.responseText;
            setTimeout('Ajax()', 2000);
        }
        xmlHttp.open("GET", "text.txt", true);
        xmlHttp.send(null);
    }
    window.onload = function() {
        setTimeout('Ajax()', 2000);
    }
</script>

Det virker også ganske udemærket for mig at den læser indholdet i filen og viser i en div kaldet "textIn" ..

Derefter ville jeg forsøge via System IO at rette i filen som scriptet læser fra og derved lave en lille prototype af vores chat.

Her er koden jeg bruger til at ændre i filen via System.IO:

    protected void btnSend_Click(object sender, EventArgs e)
    {
        litIn.Text = this.WriteToFile(Server.MapPath("./text.txt"), text.Text);
    }

    public string WriteToFile(string FilePath, string Tekst)
    {
        try
        {
            StreamWriter sw = new StreamWriter(FilePath);

            sw.Write(Tekst + "\n");
            sw.WriteLine(DateTime.Now + "\n");
            sw.Close();
            return "";
        }
        catch (Exception ex)
        {
            return "Der opstod en fejl: " + ex.Message;
        }
    }

Mit problem heri ligger i at når jeg for det første åbner siden står teksten som scriptet læser og blinker (går ud fra at det skyldes at den loader det igen og igen)..
Samtidig har det en tildens til at crashe browseren.

og mest af alt, når jeg ændre i den fil som scriptet læser af via mit IO stopper den med at vise indholdet.

det er muligvis en lidt kluderet forklaring men jeg søger bare general hjælp og tips :) jeg er ikke så erfaren med det og det er blot leg :)

Mange tak på forhånd
Michael.
Avatar billede kalp Novice
20. august 2010 - 12:23 #1
Prøv den her ASPX side i stedet:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<script type="text/javascript">
    function loadXMLDoc() {
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        }
        else {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("textIn").innerHTML = xmlhttp.responseText;
                setTimeout('loadXMLDoc()', 2000);
            }
        }
        xmlhttp.open("GET", "text.txt", true);
        xmlhttp.send();
    }
    window.onload = function() {
        setTimeout('loadXMLDoc()', 2000);
    }

</script>
<body>
    <form id="form1" runat="server">
    <div id="textIn">
   
    </div>
    </form>
</body>
</html>
Avatar billede madand Nybegynder
20. august 2010 - 15:15 #2
Noget helt andet :)
Hvilken skole går du på? jeg syntes ikke at ku finde nogen som direkte lærer en C# eller har jeg bare ikke kigget nok :)

Sorry bare en sidebemærkning.
Avatar billede kalp Novice
20. august 2010 - 16:42 #3
madand >> nu kan jeg ikke svare for ham.. men Lyngby uddannelses center lærer vidst direkte i C#.

om ikke andet så kan man jo vælge det som valgfag når man når dertil:)
Avatar billede Syska Mester
20. august 2010 - 17:28 #4
#madand
Mange skoler har det som valgfag.

Men jeg tror ikke det direkte fremgår af en fag oversigt.

mvh
Avatar billede Michael_minni Nybegynder
21. august 2010 - 00:46 #5
Er ved at uddanne mig som Web Integrator på Grenaa tekniske skoles satelit afdeling i Århus :)

#Kalp jeg ser lige på det i morgen og tak for svaret :D
Avatar billede Michael_minni Nybegynder
23. august 2010 - 09:18 #6
#Kalp - det virker formedabelt :) jeg takker og bukker mange gange! Hvis du har lyst til at oprette et svar og få points så kigger jeg lige forbi her inde løbende :)
Avatar billede Michael_minni Nybegynder
26. august 2010 - 09:27 #7
lukker og slukker her.
Al tak til Kalp :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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