Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

AJAX basierter Chat läuft nur im Firefox

Frage Entwicklung

Mitglied: Alex4284

Alex4284 (Level 1) - Jetzt verbinden

30.12.2009, aktualisiert 31.12.2009, 3011 Aufrufe, 2 Kommentare

Hallo.

Ich habe es nun endlich geschafft, einen Chat mit Hilfe von AJAX zu Programmieren.
Leider läuft dieser nur im Firefox.

Vielleicht ist ja der ein oder andere JavaScript Experte unter euch, der mir den ein oder
anderen Tipp geben kann, wie ich den Cht auch in anderen Browsern (v.a. IE!) zum
laufen bekomme.

Was haltete ihr generell von meinem Script bezüglich Performance? Ich denke da vor allem
an das Problem, dass immer alle Einträge neu vom Server generiert werden und dann
im Sekundentakt an die User ausgeliefert werden... ...was könnte ich da verbessern?

Freue mich auf eure Antworten!

01.
  
02.
 
03.
<script type="text/javascript"> 
04.
  
05.
	if (window.XMLHttpRequest)  
06.
07.
		xmlObject = new XMLHttpRequest(); // Mozilla, Safari, Opera 
08.
	}  
09.
	else if (window.ActiveXObject)  
10.
11.
		try  
12.
13.
			xmlObject = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5 
14.
		}  
15.
		catch (e)  
16.
17.
			try  
18.
19.
				xmlObject = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6 
20.
			}  
21.
			catch (e)  
22.
23.
				// 
24.
25.
26.
27.
  
28.
  
29.
  
30.
		function loadContent() 
31.
32.
			xmlObject.open('get','getdata.php'); 
33.
			xmlObject.onreadystatechange = genOutput; 
34.
			xmlObject.send(null); 
35.
36.
		 
37.
		function genOutput() 
38.
39.
			if(xmlObject.readyState == 4) 
40.
41.
				if (xmlObject.status == 200)  
42.
43.
					document.getElementById('Content').innerHTML = xmlObject.responseText; 
44.
45.
46.
		}		 
47.
  
48.
		 
49.
		function sendMessage() 
50.
51.
			var username = document.chat.username.value; 
52.
			var message = document.chat.message.value; 
53.
			 
54.
			xmlObject.open('post', 'create_message.php');   
55.
			xmlObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
56.
			xmlObject.onreadystatechange = interpretRequest; 
57.
			xmlObject.send("username="+escape(username)+"&message="+escape(message)); 
58.
  
59.
60.
		 
61.
		 
62.
  
63.
		function interpretRequest()  
64.
65.
				if (xmlObject.status != 200)  
66.
67.
					alert("Fehler bei der Übermittlung"); 
68.
				}  
69.
				loadContent(); 
70.
71.
  
72.
  
73.
	setInterval('loadContent()', 1000) 
74.
  
75.
	</script> 
76.
 
77.
 
Mitglied: Supermax
31.12.2009 um 07:48 Uhr
Statt das AJAX-Rad neu zu erfinden, solltest du vielleicht ein JavaScript-Framework wie jQuery nutzen, das u.a. komfortabel zu nutzende AJAX-Funktionen bereitstellt, ohne daß du dich selbst um Cross-Browser-Kompatibilität kümmern mußt.

Statt immer die kompletten Daten neu zu übertragen, kannst du ja mit dem Request den Timestamp oder irgendeine Form von ID der zuletzt empfangenen Nachricht mit übergeben, sodaß immer nur die neuen Einträge übertragen werden. Statt die innerHTML-Eigenschaft direkt zu setzen, kannst du stattdessen z.B. ein <div> mit dem neuen Inhalt in das Elternobjekt einhängen, wenn du diesen DIVs entsprechende IDs zuweist, kannst du dann auch alte Einträge automatisch entfernen, sodaß der angezeigte Text nicht unendlich wächst, sondern stets z.B: nur die letzten 30 Minuten Konversation angezeigt werden.
Bitte warten ..
Mitglied: Alex4284
31.12.2009 um 10:57 Uhr
Hallo Supermax!

Hab mir Deine Tipps zu Herzen genommen und ein neues Script mit dem FW jQuery erstellt.

Und es funktioniert doch glatt (in allen Browsern ) ... Vielen Dank für die Idee mit jQuery
Jetzt werden auch nicht alle Nachrichten aufgerufen und nachgeladen

Danke nochmals!


Alex
Bitte warten ..
Ähnliche Inhalte
Linux
Läuft eine GTK-PLUS und GNOME -basierte Anwendung auf einen Server?
Frage von FeveniusLinux5 Kommentare

Hallo, ich habe ein umfangreiches Programm mit C# (WPF) geschrieben und würde gerne ebenfalls eine Version anbieten, die auf ...

JavaScript
Javascript und Ajax Problem
gelöst Frage von ProtectedJavaScript4 Kommentare

Hallo, der User colinardo hat mir seinen AJAX Code zur Verfügung gestellt, damit ich per Ajax Kategorien und die ...

Windows 10
Basiert "Edge" auf Netscape
Frage von deinernstjetztWindows 101 Kommentar

Hallo, ich bin dabei eine andere Startseite für Edge zu erstellen. Damit sie allerdings (da sie sehr an das ...

Server-Hardware
Hardware-basierte Fernwartung
gelöst Frage von donnyS73lbServer-Hardware11 Kommentare

Hallo zusammen, ich möchte fragen, ob jemand ebenfalls Erfahrung hat mit hardware-basierter Fernwartung (kvm2lan). Wir interessieren uns für RARITAN ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 17 StundenWindows 102 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 19 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.