Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > de.comp.lang.javascript > #4800

Re: Gluecksrad

From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups de.comp.lang.javascript
Subject Re: Gluecksrad
Date 2016-11-16 18:29 +0100
Organization PointedEars Software (PES)
Message-ID <10725728.O9o76ZdvQC@PointedEars.de> (permalink)
References <o04r2k$i78$1@news.albasani.net> <o0fcmj$hji$1@news.albasani.net> <3307965.kQq0lBPeGt@PointedEars.de> <o0hf12$p81$1@news.albasani.net> <1a76ea3d-6da6-d368-78b5-3073fe844d07@arnowelzel.de>

Show all headers | View raw


Arno Welzel wrote:

> <https://arnowelzel.de/wp/tools/teamspeak-serverstatus>
> 
> Im Quelltext ab Zeile 146.

| <script type="text/javascript">
| /* <![CDATA[ */

Die zweite Zeile ist für XHTML sinnvoll, und dann auch nur nötig, wenn das 
XHTML-Dokument mit einem XML-Medientyp ausgeliefert wird (was den XML-Parser 
triggert) *und* der Inhalt des Elements Markup-Begrenzer wie “<” enthält; in 
HTML5 ohne XHTML-Syntax (siehe Dein doctype und Dein “html”-Element) ist sie 
unnötiger Unfug.

| function doUpdate() {

Die benutzerdefinierte Funktion sollte in einem eigenen Namespace definiert 
werden, um Namenskollisionen zu vermeiden.  Die einfachste Möglichkeit dafür 
ist die Definition in einer unmittelbar aufgerufenen anonymen Funktion:

  (function () {
    function doUpdate ()
    {
      // …
    }

    …doUpdate…
  }());

| 	try {
| 		req=new XMLHttpRequest();
| 	}
| 	catch(ms) {
| 		try {
| 			req=new ActiveXObject("Msxml2.XMLHTTP");
| 		}
| 		catch(nonms) {
| 			try {
| 				req=new 
ActiveXObject("Microsoft.XMLHTTP");
| 			}
| 			catch (failed) {
| 				req = null;
| 			}
| 		}
| 	}
| 

Es ist nicht sinnvoll, das XHR-Objekt für jeden Request neu zu erstellen;
es wird bei open() automatisch zurückgesetzt.

Deine Benennung der Exception-Variablen ist unüblich.

Auf MSXML2 zu testen ist in dieser massgeschneiderten Funktion unnötig, da 
Du keine der zusätzlichen Features verwendest.

| 	if(req != null) {
| 		req.open("GET", "/tools/tss3/status.php?lang=de", true);
| 		
| 		req.onreadystatechange = function() {
| 			switch(req.readyState) {
| 			case 4:
| 				if(req.status==200)
| 				{
| 					
document.getElementById("stats").innerHTML = req.responseText;
| 				}
| 				setTimeout("doUpdate()", 5000);
| 				break;
| 
| 			default:
| 				return false;
| 				break;     
| 			}
| 		};
| 
| 		req.setRequestHeader("Content-Type","application/x-www-
form-urlencoded");
| 		req.send(null);
| 	}

Die switch-Anweisung ist fehlerträchtig (“switch-case fall-through”) und 
hier unnötig bis falsch.


Es sollte

  var timeout;
  // …
    timeout = window.setTimeout(doUpdate, 5000);

heissen:

<https://developer.mozilla.org/de/docs/Web/API/WindowTimers/setTimeout#Passing_string_literals>
<https://de.wikipedia.org/wiki/Content_Security_Policy#Verbotene_Konstrukte_und_Alternativen>

window.clearTimeout(timeout) sollte dann onunload aufgerufen werden.


Der Aufruf von XHR::setRequestHeader() ist *so* (ungetestet) fehlerträchtig 
und hier unnötig.

| ( function( $ ) {
| 	$(document).ready(function () {
| 		setTimeout("doUpdate()", 5000);
| 	});
| } )( jQuery );

Wenn Du jQuery verwendest (was hier unnötig erscheint), solltest Du auch 
jQuery.ajax() verwenden statt einer eigenen Lösung:

<http://api.jquery.com/jQuery.ajax/>


*Nur* jQuery(document).ready(…) in einer anonymen Funktion aufzurufen ist 
unnötig fehlerträchtig.


Empfohlen wird, statt jQuery(document).ready(function () { … }) einfach 
jQuery(function () { … }) aufzurufen:

<http://api.jquery.com/ready/>

| /* ]]> */

Unfug, siehe oben.

| </script>

Das script-Element sollte sich im head-Element befinden, nicht innerhalb 
eines div-Elements innerhalb eines article-Elements.  Optimal werden 
gemeinsam genutzte Teile per URI referenziert, wobei die referenzierte 
Ressource minimiert ausgeliefert werden kann.  Das async- und das defer-
Attribut können dann benutzt werden, um das Script erst dann zu laden,
wenn es benötigt wird.

-- 
PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | ES Matrix: <http://PointedEars.de/es-matrix>
Please do not cc me. / Bitte keine Kopien per E-Mail.

Back to de.comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-11 17:19 +0100
  Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-11 19:52 +0100
    Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-12 12:24 +0100
      Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-13 20:49 +0100
  Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-14 01:52 +0100
    Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-14 02:25 +0100
      Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-14 10:19 +0100
        Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-14 10:57 +0100
          Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-15 08:38 +0100
        Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-15 00:41 +0100
  Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-15 17:21 +0100
    Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-15 19:27 +0100
      Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-16 12:13 +0100
        Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-16 12:37 +0100
        Re: Gluecksrad "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-11-16 12:58 +0100
        Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-16 16:19 +0100
          Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-16 18:29 +0100
            Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-16 19:13 +0100
              Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-16 19:29 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-17 20:21 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-18 03:09 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-18 17:23 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-18 17:40 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-18 17:56 +0100
                Re: Gluecksrad "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-11-18 18:19 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-18 19:14 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-18 20:06 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-19 10:04 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-18 19:06 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-18 20:16 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-19 10:22 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-18 21:45 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-19 10:38 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-19 10:56 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-19 11:48 +0100
          Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-22 21:19 +0100
            Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-22 22:13 +0100
              Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-23 01:08 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-23 01:21 +0100
                Re: Gluecksrad "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2016-11-23 22:47 +0100
            Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-23 10:06 +0100
              Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-23 10:18 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-23 12:16 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-24 21:28 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-24 22:45 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-25 23:11 +0100
                Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-23 16:41 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-23 21:15 +0100
              Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-23 15:41 +0100
                Re: Gluecksrad "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-11-23 16:21 +0100

csiph-web