• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Image maps/areas - Unterschiede IE / FF

Danke, daß ich wenigstens mir Dir über die Sache reden kann. Erfrischend und ermutigend in dieser Egomanie-Wüste!
über welche sache. das habe ich nur mal kommentiert, weil es nicht stimmen kann. die browser kommen problemlos mit 200 areas zurecht (behaupte ich jetzt mal, probiert habe ich es nicht)
wobei mich mal interessieren würde, womit ausgerechnet der schlaue deine negative haltung verdient hat? das war doch eigentlich der einzige der sich versucht hat in deine welt einzudenken (jedenfalls am anfang).
das
@hesst
Eine Diskussion über die Qualität eine Dokumentation mit einem Experten ist müßig, wenn dieser - wie Du - seinen eigenen Kenntnisstand beim Leser einer Dok voraussetzt und jeden Müll sowie das Fehlen präziser Informationen und Erläuterungen akteptiert.
ist schon gedruckt, gerahmt und an der wand. seht her, ich wurde von bis zum Experten erklärt(habe ich eigentlich schon erwähnt, das ich nicht mal eine HP habe?).
wobei hier auch noch zu sagen bleibt, dass die dokumentation einer bibliothek eigentlich immer kenntnisse in der zu grunde liegenden sprache vorraussetzt.

Je nach Seite können bis zu 200 Areas drauf sein. 30-80 sind typisch. Wenn daraus Html erzeugt wird inkl. der jeweils nötigen Skalierung, dann wurde sogar in FF oft nur die Seite angezeigt ohne map/areas, wohl weil die noch nicht fertig waren.
kann ich nichts mit anfangen. vielleicht ein synchronisationsproblem.

Ich habe die Reihenfolge dann so umgestellt, daß es klappte. Vor allem in IE ist aber die Zeit schon bei 50 Areas durchaus spürbar. Ich sehe aber leider keine Alternative zur völligen Neuberechnung, weil sich Zoom und, beim Bewegen des Bildes, vor allem die Offsets jeweils ändern.
tja, js ist nur ne scriptsprache.
 
Ich sehe aber leider keine Alternative zur völligen Neuberechnung, weil sich Zoom und, beim Bewegen des Bildes, vor allem die Offsets jeweils ändern.

Daher ist es ein großer Mangel, daß die Browser Areas nicht selbst skalieren.
Das tun sie nicht, das stimmt. Du kannst aber ohne Probleme die jeweilge Eigenschaft coords neu berechnen. Das würde aber besser klappen, wenn du statt mit dynamischen HTML zu hantieren, mit richtigen Objekten arbeiten würdest und dann jeweils nur die nötigen Eigenschaften neu berechnest. Das dürfte deutlich performanter sein und klappt auch im IE
 
wobei mich mal interessieren würde, womit ausgerechnet der schlaue deine negative haltung verdient hat? das war doch eigentlich der einzige der sich versucht hat in deine welt einzudenken (jedenfalls am anfang).
Ich brauch das für mein Ego ;)

Ich hatte in den letzten Tagen, in mehreren Foren vier oder fünf (je nach Sichtweise) solcher Kanditaten, die einfach nicht ihr Problem deutlich machen können und mich dann versuchen dafür verantwortlich zu machen.

Ich bin da völlig altruistisch. Aber letztlich bringt es mir mehr, als den anderen. Aktuell schreibe ich an einem Artikel über OOP in JS, in dem ich die Gedanken die ich mir bei der Auseinandersetzung mit ihm bisher machen musste, sehr gut einfliessen lassen kann.

Mit Joose hatte ich mich vorher nicht auseinander gesetzt und habe jetzt aufgrund dessen, ein ziemlich kompaktes, universelles OO Framework für JS geschrieben. Das soweit ich das sehe, alle Nachteile der anderen (also z.b. Joose oder Mootools) vermeidet und mit dem man schnell prototypische Vererbung umsetzt, was die anderen nicht können.

Also, ich muss sagen, ich profitiere auch von solchen Typen und wenn nicht fachlich, dann an Lebensfreude :grin:
 
womit ausgerechnet der schlaue deine negative haltung verdient hat? das war doch eigentlich der einzige der sich versucht hat in deine welt einzudenken (jedenfalls am anfang).

Also wenn man den Aktionismus von "ein schlauer" mal analysiert, dann kann ich mich an keinen einzigen Fall erinnern, in dem von ihm irgend ein konkreter Vorschlag oder Tip kamen. Das meiste waren wüste persönliche..... Anwürfe. Übrigens auch bei anderen Schreibern.

Auf den ersten Blick ist es ja auch ganz toll, wenn jemand ein Beispiel programmiert, wie oben. Allerdings frage ich mich wirklich, was er mir damit zeigen wollte? Schließlich läuft meine recht komplexe Anwendung ja in FF bestens, nur die Einfügung von Map/Areas mit dem dazu gehörenden Bild funktioniert in IE eben nicht.

Ich hab ja auch kein Problem damit, wenn jemand sein Ego an mir auf diese Weise aufpolieren will, und ich stehe dafür immer gern zu Diensten, jedoch halte ich diese Diskussionen mit ein schlauer schlicht für Zeitverschwendung (auf beiden Seiten). Und Zeit ist das einzige im Leben, das man nicht vermehren kann.

ist schon gedruckt, gerahmt und an der wand. seht her, ich wurde von bis zum Experten erklärt.
Pfadfinder: Jeden Tag eine gute Tat! :)

wobei hier auch noch zu sagen bleibt, dass die dokumentation einer bibliothek eigentlich immer kenntnisse in der zu grunde liegenden sprache vorraussetzt.
Klar, nur eben keinen Experten-Status! Und "innerHtml" betrifft mehr das DOM als die Sprache JS.

Außerdem: Ext JS ist ein kommerzielles Produkt, keine kostenlose Bibliothek! Also gelten andere Maßstäbe.
 
Das tun sie nicht, das stimmt. Du kannst aber ohne Probleme die jeweilge Eigenschaft coords neu berechnen. Das würde aber besser klappen, wenn du statt mit dynamischen HTML zu hantieren, mit richtigen Objekten arbeiten würdest und dann jeweils nur die nötigen Eigenschaften neu berechnest. Das dürfte deutlich performanter sein und klappt auch im IE
Also nachdem Du ausnahmsweise mal konkret etwas zur Sache schreibst, will ich dann doch so höflich sein, und Dir antworten (vielleicht meine Pfadfinder #3 heute? Siehe oben):

Ich weiß ja leider wirklich nicht, was du unter "richtigen Objekten" verstehst, aber genau diese werden von mir (als o-o Veteran, den Anspruch des Experten erhebe ich noch nicht) verwendet, denn sämtliche Areas sind unter Joose "richtige" Daten-Objekte, aus denen jeweils die aktuellen Koordinaten errechnet und dann daraus das benötigte HTML erzeugt wird.

Ich wüßte nicht, wie das anders und schneller gehen sollte, aber ich bin natürlich interessiert und dankbar für jeden konkreten Verbesserungs-Vorschlag. Irgendwann ist es ja immer das erste Mal (siehe oben).

Und das, was du als "nötige Eigenschaften" in Abgrenzung zu anderen Eigenschaften bezeichnest, das sind die Koordinaten. Diese sind denn auch die einzigen Daten, die sich bei jeder Benutzer-Aktion ändern. Alles andere wird nur aus den "richtigen Objekten" ausgelesen, die dafür als Datenhalter dienen. Da ist also keine Verbesserung der Performance möglich. Auch wüßte ich nicht, wie man auf das jeweilige erzeugen der gesamten HTML-die Definition des Areas verzichten könnte. Aber ich lerne immer gern dazu!

Jetzt würde mich also interessieren, was ich Deiner Meinung nachändern sollte, damit dies deutlich performanter wird, wie von Dir versprochen? Wenn Du das möchtest, dann poste ich auch gern die gesamte Area-Klasse, von der es allerdings mehrere Sub-Klassen gibt. Das wäre für Dein o-o Projekt auch sicher eine interessante Informationen, wie ein o-o Veteran mit Joose ein Daten-Modelle definiert.
 
Indem du direkt mit den area-Nodes arbeitest - das sind nämlich schon Objekte:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Fenstertitel</title>
<script type="text/javascript"></script>
</head>
<body>
<img src="1.jpg" width="200" height="200" alt="" usemap="#map">
<map name="map">
	<area shape="poly" coords="48,11,105,248,96,10,75,105,38,34,8,10"
          href="#" onclick="alert(this.coords);" alt="Baden" title="Baden">

</map>
<a onclick="document.getElementsByTagName('area')[0].coords='0,0,10,10,0,10';">change Coord</a>
</body>
</html>
 
Indem du direkt mit den area-Nodes arbeitest - das sind nämlich schon Objekte:
Code:
[/QUOTE]
1) Aha - und wo ist bitte der Unterschied zu dem, was ich mache - siehe mein Erstbeitrag hier. Bin leider zu doof, das zu erkennen.

2) Und wie werden in diesen sogenannten "Objekten" die Koordinaten nach Bedarf verändert?

3) Was bedeutet "direkt" oben (bes. im Gegensatz zu "indirekt", was ich ja dann wohl mache). Verstehe den Unterschied nicht. Pardon, bin halt doof!

[I]Pardon, aber das ist m.E. wieder so ein nichts sagender "Rat", der mehr Verwirrung stiftet als aufklärt.[/I]
 
Zuletzt bearbeitet:
Schließlich läuft meine recht komplexe Anwendung ja in FF bestens, nur die Einfügung von Map/Areas mit dem dazu gehörenden Bild funktioniert in IE eben nicht.
das mag sein, nur behauptest du, dass ext einen fehler hat und es deswegen nicht geht. nur um das gegenteil zu beweisen war das bsp. gut.
wo dein fehler liegt kann hier keiner ahnen, prinzipiell funktioniert es - auch mit ext.
Nur du setzt sachen vorraus, die so einfach nicht gegeben sind. z.b das alle browser gleich reagieren, das selbe zeitverhalten haben und alle funktionen das gleiche machen.
 
das mag sein, nur behauptest du, dass ext einen fehler hat und es deswegen nicht geht. nur um das gegenteil zu beweisen war das bsp. gut.
wo dein fehler liegt kann hier keiner ahnen, prinzipiell funktioniert es - auch mit ext.
Nur du setzt sachen vorraus, die so einfach nicht gegeben sind. z.b das alle browser gleich reagieren, das selbe zeitverhalten haben und alle funktionen das gleiche machen.
Geehrter Experte mit Brief und Siegel hesst,

wäre schön, wenn wir diesen Teilbereich abschließen könnten. Wir haben uns ausgetauscht:

Du: "Doku ist ok, man muß halt alle Zusammenhänge kennen und sich einen Reim aus Fragmenten machen."

Ich: "Doku ist Scheiße, weil sie essentielle Infos nicht enthält. Siehe oben".

We agree to disagredd.

Gruß
 
1) Aha - und wo ist bitte der Unterschied zu dem, was ich mache - siehe mein Erstbeitrag hier. Bin leider zu doof, das zu erkennen.
Weist du was eine node ist? Im DOM?
Du hast anscheinend deine eigenene Objekte (spricht ja auch nichts dagegen), aber wenn sich da irgendetwas ändern (hier die Koordinaten) lässt du per innerHTML die Nodes neu erzeugen - das braucht Zeit.
Wenn du jetzt direkt ins DOM gehst und die Nodes dort änderst ist das schneller, weil keine Nodes gelöscht, kein HTML interpretiert und keine neuen Nodes erstellt werden müssen.

2) Und wie werden in diesen sogenannten "Objekten" die Koordinaten nach Bedarf verändert?
Hast du mein Beispiel überhaupt angesehen? Da wird genau das gemacht.

3) Was bedeutet "direkt" oben (bes. im Gegensatz zu "indirekt", was ich ja dann wohl mache). Verstehe den Unterschied nicht. Pardon, bin halt doof!
s.o.

Pardon, aber das ist m.E. wieder so ein nichts sagender "Rat", der mehr Verwirrung stiftet als aufklärt.
Ich kann jetzt nicht beurteilen, ob er "nichtssagend" ist oder nicht - ich finde ihn verständlilch. Aber wenn du etwas nicht verstehst musst du ja nur fragen.
Dieser Kommentar ist übrigens auch wieder etwas beleidigend... nur so nebenbei.
 
Also zuerst mal dazu:

Dieser Kommentar ist übrigens auch wieder etwas beleidigend... nur so nebenbei.
Das lag mir fern! Absehen davon, daß ich dazu bei Dir keinerlei Gründe hätte. Bin mir keiner Schuld bewußt - und das war sicher nicht meine Absicht.

Wenn du jetzt direkt ins DOM gehst und die Nodes dort änderst ist das schneller, weil keine Nodes gelöscht, kein HTML interpretiert und keine neuen Nodes erstellt werden müssen.
Danke, das habe ich zwar gesehen aber nicht erkannt. Mein Fokus war auf der Area Deklaration. Mein Fehler!

Ein Beispiel, wie manchmal ein kleiner Kommentar dem Blinden das Sehen lehren könnte.

Guter Vorschlag, wobei ich mal unterstelle, daß das wirklich schneller ist, was ich (noch) nicht weiß.

Ich bedanke mich ausdrücklich! Werde es demnächst versuchen, wenn die akuten Probleme gelöst sind. Und berichten.
 
Das lag mir fern! Absehen davon, daß ich dazu bei Dir keinerlei Gründe hätte. Bin mir keiner Schuld bewußt - und das war sicher nicht meine Absicht.
Schon in Ordnung - der Ton hier ist allgemein etwas rau geworden.

Guter Vorschlag, wobei ich mal unterstelle, daß das wirklich schneller ist, was ich (noch) nicht weiß.
Kleiner Test von mir:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Fenstertitel</title>
<script type="text/javascript">
function createArea(coords){
	document.getElementById("test").innerHTML = '<map>' +
		'<area shape="poly" coords="' + coords + '" href="#" alt="">' +
		'</map>';
}
function changeCoords(coords){
	document.getElementById("area").coords = coords;
}

window.onload = function(){
	var rec = 1000;
	var t = new Date();
	for (var i = 0; i < rec; i++){
		createArea("48,311,105,248,96,210,75,205,38,234,8,310");
	}
	var createTime = (new Date() - t)/rec;
	var t = new Date();
	for (var i = 0; i < rec; i++){
		changeCoords("48,311,105,248,96,210,75,205,38,234,8,310");
	}
	var changeTime = (new Date() - t)/rec;
	
	alert("change per innerHTML: " + createTime + " ms\n" + 
		"change per DOM: " + changeTime + " ms\n");
}

</script>
</head>
<body>
<div id="test"></div>
<map name="map">
	<area id="area" shape="poly" coords="48,311,105,248,96,210,75,205,38,234,8,310"
          href="#" alt="">
</map>
</body>
</html>
- in meinem FF 3.6 ein Unterschied vom 40-fachen.
 
Auf den ersten Blick ist es ja auch ganz toll, wenn jemand ein Beispiel programmiert, wie oben. Allerdings frage ich mich wirklich, was er mir damit zeigen wollte? Schließlich läuft meine recht komplexe Anwendung ja in FF bestens, nur die Einfügung von Map/Areas mit dem dazu gehörenden Bild funktioniert in IE eben nicht.
Genau das wollte ich zeigen, das Beispiel läuft auch im IE
 
Jetzt würde mich also interessieren, was ich Deiner Meinung nachändern sollte, damit dies deutlich performanter wird, wie von Dir versprochen? Wenn Du das möchtest, dann poste ich auch gern die gesamte Area-Klasse, von der es allerdings mehrere Sub-Klassen gibt. Das wäre für Dein o-o Projekt auch sicher eine interessante Informationen, wie ein o-o Veteran mit Joose ein Daten-Modelle definiert.
Das wäre durchaus interessant und ein Quantensprung in diesem Thread.
 
Zurück
Oben