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.