Automatisch umleiten je nach Leitungsgeschwindigkeit

habe es mit einem Knopf gemacht aber das ist nich das Gelbe vom Ei.
Es muss automatisch funktionieren und zwar wenn der User auf ein Bild drückt, welches eine Fotogallerie öffnet muss im Hintergrund entschieden werden DSL oder nicht. Also ab 100 auf Seite x und unter 100kb auf Seite Y

Steige durch den Code von Datic nicht so ganz durch. Hast du da vielleicht ein Beispiel zu in Deiner Trickkiste :D
 
Hi,

ich habe das noch einmal etwas genauer ausgeführt:
Code:
var path = "pfad/zum/bild.jpg";

var ct = this.createEmptyMovieClip("ct", 1000);
var img = ct.createEmptyMovieClip("img", 1);

ct._visible = false;
img.loadMovie(path);

var stime = getTimer();
var started = false;

var avg = 0;
var lavg = 0;
var samples = new Array();

var maxdiff = 2;
var maxperc = 20;

ct.onEnterFrame = function() {
	var cur = img.getBytesLoaded();
	var max = img.getBytesTotal();
	if (cur > 10 && max > 10) {
		var perc = cur * 100 / max;
		if (!started) {
			stime = getTimer();
			started = true;
		} else {
			var bps = (cur - 10) / ((getTimer() - stime) / 1000);
			samples.push(bps);
			lavg = avg;
			avg = getAvg(samples);
			var diff = Math.abs(avg - lavg);
			trace("Bytes pro Sekunde: " + int(bps) + ", d: " + diff);
			if (diff <= maxdiff || perc >= maxperc) {
				setBandwidth(int(bps));
				delete this.onEnterFrame;
			}
		}
		if (cur >= max) {
			delete this.onEnterFrame;
		}
	}
}

function getAvg(arr) {
	var sum = 0;
	for (var i=0; i<arr.length; i++) {
		sum += arr[i];
	}
	return sum / arr.length;
}

function setBandwidth(bytes) {
	var kb = bytes / 1024;
	var kbits = int(kb * 8);
	trace("Sie laden mit ca. " + kbits + " Kilobit pro Sekunde");
}

Die ermittelte durchschnittliche Bandbreite wird laufend in einem Array festgehalten. Du kannst folgende Parameter festlegen:

maxdiff: der Unterschied zwischen zwei aufeinanderfolgenden Durchschnittswerten, bei dem die Testmethode abbrechen soll.

maxperc: Wieviel Prozent des Testbildes sollen maximal geladen werden.

Ist eine der beiden Bedingungen erfüllt, so wird die Methode setBandwidth() aufgerufen, die die ungefähre Bandbreite in Kilobit/Sekunde (kbits) angibt, und das Laden wird abgebrochen. Anhand des ermittelten Wertes kannst Du nun zu unterschiedlichen Seiten springen.

Gruß
.
 
aber wo ist da die Weiterleitung. Also einstelen klappt schon aber dann zu x oder y umleiten klappt nicht.
 
Die ist nicht dabei, denn ich weiß ja nicht, bei welchen Bandbreiten Du wie zu welchen Seiten umleiten willst (per getURL, per loadMovie usw.). Die Umleitung setzt Du in die Funktion "setBandwitdh", z.B: so:
Code:
function setBandwidth(bytes) {
	var kb = bytes / 1024;
	var kbits = int(kb * 8);
	if (kbits < 128) {
		getURL("langsam.html", "_self");
	} else {
		getURL("schnell.html", _self");
	}
}

Gruß
.
 

Neue Beiträge

Zurück