Marcel Böttcher: Chat mit Refresh bei Message abschicken bei ALLEN!?!

Hi!

Ich hab einen Chat in ASP programmiert!
Der funktioniert auch (Texte werden in Datenbank gespeichert und bei bestimmter Anzahl einer gelöscht), aber ich hab jetzt das Refreshen mit einem HTML Tag gelöst! Der refresh die Seite alle 3s! Bei einem richtigen Chat (chat.de) refresh er aber immer nur bei einer neuen Message!!

Wie bekomme ich das hin??
Der Chat befindet sich auf: http://www21.brinkster.com/wellekicker/chat.htm

Bitte helft mir!

Außerdem:

Folgender Script in HTML ruft einen Fehler auf:

<script language="javascript" src="graphic_counter.asp">
</script>

In der aufzurufenden ASP Datei soll der Counter um 1en erhöht werden! Klappt aber nicht, weil hier schon ein Fehler passiert!
Kann mir jemand sagen wieso?!?

  1. Hi

    hehe, ein richtiger chat ist auch ein bissel mehr :-))
    Dazu wird serverseitig (und clientseitig natürlich) eine Verbindung aufgebaut und offengelassen. Danach wird immer wenn neue Daten (mehr textzeilen) vorhanden sind, diese "nachgesandt" und der Browser empfängt die auch, da die Verbindung immernoch offen ist (sogenanntes Server Push).

    Das unten aufgeführte ASP Script Funktioniert komischerweuse nur im Netscape, aber wendet diese Technik an
    (hmm, ich frag mich grad ob mein chat, welcher ich als PerlProgramm (nicht cgi) geschrieben habe und nur im netscape getestet habe nicht im IE läuft...)

    Du kannst auch einfach die WriteBoundary weglassen, dann siehts im IE eigentlich gut aus, aber die serverbelastung ist dadurch eh enorm, und mehrere chatter lassen sich dadurch schwer handeln...

    Weiter kann ich dir nicht helfen, da ich mich nicht wirklich gern ASP beschäftige :-)

    ----------------------------------------------------------------
    <% @Language="VBScript" %>
    <%
      Option Explicit
      Dim strBoundary

    ' change the following string to whatever boundary you wish to use
      strBoundary = "ThisRandomString"

    ' turn off buffering
      Response.Buffer = False

    ' set the content type as a multipart document
      Response.ContentType = "text/html"
      Response.ContentType = "multipart/mixed;boundary=" & strBoundary

    ' create a function to output the boundary
      Sub WriteBoundary()
        Response.Write vbCrLf & "--" & strBoundary & vbCrLf
        Response.Write "Content-Type: text/html" & vbCrLf & vbCrLf
      End Sub

    ' this is a very unelegant sleep function just to create a short delay
      Sub Sleep(tmpSeconds)
        Dim dtmOne,dtmTwo
        dtmOne = Now()
        While DateDiff("s",dtmOne,dtmTwo) < tmpSeconds
          dtmTwo = Now()
        Wend
      End Sub
    %>
    <% WriteBoundary %>
    <html><body><p>First Page</p></body></html>
    <%
      Sleep 1
      WriteBoundary
    %>
    <html><body><p>Second Page</p></body></html>
    <%
      Sleep 1
      WriteBoundary
    %>
    <html><body><p>Third Page</p></body></html>
    ----------------------------------------------------------------

    Gruss
    [GoE] Barna
    www.TheGuardians.de