Zurück   klamm-Forum > klamm.de > klamm talk > Bug-Report

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13.11.2010, 16:21:10   #1051 (permalink)
Lose 2.0 –
das zweite Zeitalter
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.650
Standard

Zitat:
Zitat von chrissel Beitrag anzeigen
Sollte das über DOM-Methoden gehen, oder wie?
So schreibt es zumindest der XHTML-Standard vor, deswegen is ja document.write() verboten. innerHTML is ja auch nix anderes.

"Richtig" wäre dieses
PHP-Code:
1:
2:
3:
var tag document.createTag("script");
tag.appendAttribut(document.createAttribut("type""text/javascript"));
document.getElementById("before").insertAfter(tag); 
so in der Art. Viele Zeilen Code, um ein Element einzuhängen. Mit jQuery dürfte es etwas einfacher gehen.
NEU OpenIsles - das freie Insel-Aufbauspiel NEU

www.theHacker.ws v3 | WhatPulse-Team
Bezahlte Startseite
- mehr Verdienst als auf klamm - viele Auszahlungen erhalten
theHacker ist offline   Mit Zitat antworten
Alt 13.11.2010, 16:33:04   #1052 (permalink)
Woohooo!
Benutzerbild von chrissel

ID: 211634
Lose-Remote

chrissel eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 4.495
Standard

Zitat:
Zitat von theHacker Beitrag anzeigen
So schreibt es zumindest der XHTML-Standard vor, deswegen is ja document.write() verboten. innerHTML is ja auch nix anderes.
Hmm.. ich weiß gerade nicht wie $(element).html('<script ...>...</script>') arbeitet.. Ich nehme aber mal an, dass jQuery nicht versucht Tags zu erstellen und diese anzuhängen usw usf sondern es mit innerHTML gemacht wird..

Zitat:
Zitat von theHacker Beitrag anzeigen
Mit jQuery dürfte es etwas einfacher gehen.
PHP-Code:
1:
$('#before').after($('<script type="text/javascript" />')); 
So in der Art sollte es sein, also um einiges einfacher, ja .
chrissel ist offline   Mit Zitat antworten
Alt 13.11.2010, 16:36:11   #1053 (permalink)
null != null
Benutzerbild von Sebmaster

ID: 238955
Lose-Remote

Sebmaster eine Nachricht über Skype™ schicken
Reg: 20.05.2006
Beiträge: 3.724
Standard

Wenn du in jQuery nur ein jQuery('<script>') reinschreibst, wandelt jQ das in ein document.createElement um.

Allerdings parst jQuery keine Attribute/verschachtelte Tags. Sobald du ein Attribut hinzufügst, wird mit innerHTML gearbeitet.
Kein Grafiker
Sebmaster ist offline   Mit Zitat antworten
Alt 13.11.2010, 20:46:49   #1054 (permalink)
Erfahrener Benutzer

ID: 296438
Lose-Remote

paddya eine Nachricht über ICQ schicken paddya eine Nachricht über MSN schicken
Reg: 04.09.2007
Beiträge: 529
Standard

Mal zur Anregung ein kleiner Code-Schnipsel von mir. Funktioniert natürlich auch nur ohne document.write().

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
// asynchrone Einbindung von Google Analytics
$(document).ready(
    function() {
        $.
ajax({
            
type'GET',
            
url'http://www.google-analytics.com/ga.js',
            
success:
                function() {
                    var 
pageTracker _gat._getTracker('UA-XXXXXXX-X');
                    
pageTracker._trackPageview();
                },
            
dataType'script',
            
cachetrue

        
});
    }
); 
Eine Alternative wäre, die Werbung, die Script-Tags enthält, in einem iFrame zu laden. Leider macht das die Sache ziemlich unperformant, weil man einen zusätzlichen Request zum Klamm-Server braucht (für jeden Script-Banner), aber es wäre eine Lösung.

Uuuuund zum Schluss die Freak-Lösung: Wer probiert nen iFrame mit Data-URL zu erstellen und guckt, ob das funktioniert?

Edit: Es tut. http://jsbin.com/icidi3/ - muss man nur noch checken, ob die Scripts dann asynchron geladen werden.

Edit2: Siehe neue Revision: funktioniert auch mit document.write(). Ich bin zuversichtlich, dass das die Lösung des Problems ist Krieg ich jetzt ein Eis?
 

Geändert von paddya (13.11.2010 um 21:06:48 Uhr)
paddya ist offline   Mit Zitat antworten
Alt 13.11.2010, 21:04:51   #1055 (permalink)
Lose 2.0 –
das zweite Zeitalter
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.650
Standard

Zitat:
Zitat von theHacker Beitrag anzeigen
Es gibt vielleicht noch ne andere Lösung Ich guck heut Abend mal in meinen Codearchiven
Ah, gefunden:
HTML-Code:
1:
<object data="googleadsense.php?size=728x90" type="text/html">Werbung</object>
Das war damals meine Lösung, um Werbung einzubinden. Ob es einen Unterschied zum iFrame macht, weiß ich nicht. Jedenfalls is <object> mit einem Non-Frameset-Doctype erlaubt.
NEU OpenIsles - das freie Insel-Aufbauspiel NEU

www.theHacker.ws v3 | WhatPulse-Team
Bezahlte Startseite
- mehr Verdienst als auf klamm - viele Auszahlungen erhalten
theHacker ist offline   Mit Zitat antworten
Alt 13.11.2010, 21:13:36   #1056 (permalink)
return void
Benutzerbild von ice-breaker

ID: 93995
Lose-Remote

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.271
Standard

wie wäre es hiermit:

HTML-Code:
1:
2:
3:
4:
5:
6:
7:
8:
<body> <div id="banner1" /> <div id="banner2" /> <script type="text/javascript"> $(window).load(function() { $('#banner1').html('<script .....></script>'); $('#banner2').html('<script .....></script>'); });
da sollte es meines wissens keine Probleme geben.

oder eben per DOM-Ready die JavaScript-Tags async machen, dann blocken die nicht mehr das Laden.
"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

www.internet-dsl-flatrate.de
ice-breaker ist offline   Mit Zitat antworten
Alt 13.11.2010, 21:15:47   #1057 (permalink)
Erfahrener Benutzer

ID: 296438
Lose-Remote

paddya eine Nachricht über ICQ schicken paddya eine Nachricht über MSN schicken
Reg: 04.09.2007
Beiträge: 529
Standard

Zitat:
Zitat von ice-breaker Beitrag anzeigen
wie wäre es hiermit:

[...]

da sollte es meines wissens keine Probleme geben.

oder eben per DOM-Ready die JavaScript-Tags async machen, dann blocken die nicht mehr das Laden.
Problem ist document.write(), was zu extremen Problemen führt, wenn es nach DOM-Ready ausgeführt wird (weil es einfach alles überschreibt...).
 
paddya ist offline   Mit Zitat antworten
Alt 13.11.2010, 21:24:00   #1058 (permalink)
return void
Benutzerbild von ice-breaker

ID: 93995
Lose-Remote

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.271
Standard

Hmm, man könnte die Funktion ja durch eine andere ersetzen.
"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

www.internet-dsl-flatrate.de
ice-breaker ist offline   Mit Zitat antworten
Alt 13.11.2010, 21:34:34   #1059 (permalink)
null != null
Benutzerbild von Sebmaster

ID: 238955
Lose-Remote

Sebmaster eine Nachricht über Skype™ schicken
Reg: 20.05.2006
Beiträge: 3.724
Standard

Zitat:
Zitat von ice-breaker Beitrag anzeigen
Hmm, man könnte die Funktion ja durch eine andere ersetzen.
In der dann was getan wird? HTML parsen und appenden?
Kein Grafiker
Sebmaster ist offline   Mit Zitat antworten
Alt 13.11.2010, 21:37:21   #1060 (permalink)
Erfahrener Benutzer

ID: 296438
Lose-Remote

paddya eine Nachricht über ICQ schicken paddya eine Nachricht über MSN schicken
Reg: 04.09.2007
Beiträge: 529
Standard

Ich bin ja immer noch für die iFrame-Lösung mit Data-URL. Ist relativ einfach umzusetzen, funktioniert in allen Browsern, die das data-Protokoll kennen und für den Rest liefert man einfach den normalen Code aus.
 
paddya ist offline   Mit Zitat antworten
Alt 14.11.2010, 10:03:39   #1061 (permalink)
Administrator
Benutzerbild von klamm

ID: 20876
Lose-Remote

Reg: 20.04.2006
Beiträge: 11.015
Standard

IFrames fallen wie schon gesagt raus, da der AdServer via JS dann nicht mehr auf die Seite an sich Zugriff hat (für contextsensitive Werbung z.B.).

Ob diese <object>-Einbindung dann noch Zurgiff aufs eigentliche Dokument erlaubt müsste man testen. Find ich zumindest sehr interessant, klingt aber nach IFrame.

@Google Asynchron
Ich glaub der Analytics-Server ist der letzte im Netz, der nicht erreichbar oder langsam wäre. Da man das auch direkt vor </body> platzieren kann, gibts da eh keine Warte-Probleme.

Ich bekomme sowas:
Code:
1:
<script type="text/javascript" src="http://media.fastclick.net/w/get.media?sid=50599&amp;m=1&amp;tp=1&amp;d=j&amp;t=n"></script>
Und das wiederum baut nochmal x evaluierende Script-Tags/writes oder erzeugt IFrames, kontaktiert X AdServer oder sonstwas. Je nachdem reicht es also nicht, media.fastclick.net zu checken. Solange alles im selben Dokument geschieht, wird an der Stelle gewartet, wo der "Mutter"-Script-Tag eingebaut ist.

Edit: Gabs nichtmal sowas wie <script defer ...> ?
Ich schätze aber dann haben wir das document.write()-überschreibt-alles-Problem. Für nicht-content-manipulierende Dinge könnte man das aber durchaus nutzen.

Edit2: Idee: Ich könnte am Ende der Seite ein Banner-DIV machen und somit den JS-Tag auch ans Ende der Seite setzen (=keine sichtbare Wartezeit) - und dann per CSS den DIV an die gewünschte Position schieben. Hört sich aber krüpplig an und gibt bestimmt Probleme bei irgendwelchen Flash-Kampagnen so wie ich die kenne.
 
klamm ist offline   Mit Zitat antworten
Alt 14.11.2010, 11:21:05   #1062 (permalink)
Erfahrener Benutzer

ID: 296438
Lose-Remote

paddya eine Nachricht über ICQ schicken paddya eine Nachricht über MSN schicken
Reg: 04.09.2007
Beiträge: 529
Standard

Zitat:
Zitat von klamm Beitrag anzeigen
IFrames fallen wie schon gesagt raus, da der AdServer via JS dann nicht mehr auf die Seite an sich Zugriff hat (für contextsensitive Werbung z.B.).
Wären also zumindest eine Lösung für nicht-kontextsensitive Banner.

Zitat:
Zitat von klamm Beitrag anzeigen
@Google Asynchron
Ich glaub der Analytics-Server ist der letzte im Netz, der nicht erreichbar oder langsam wäre. Da man das auch direkt vor </body> platzieren kann, gibts da eh keine Warte-Probleme.
War nur ein Beispiel von mir, wie man das allgemein machen kann, da in den Postings davor die Möglichkeiten, ein Script asynchron via jQuery zu laden, diskutiert wurden.

Zitat:
Zitat von klamm Beitrag anzeigen
Edit2: Idee: Ich könnte am Ende der Seite ein Banner-DIV machen und somit den JS-Tag auch ans Ende der Seite setzen (=keine sichtbare Wartezeit) - und dann per CSS den DIV an die gewünschte Position schieben. Hört sich aber krüpplig an und gibt bestimmt Probleme bei irgendwelchen Flash-Kampagnen so wie ich die kenne.
Du kannst das DIV auch DOMContentLoaded an die richtige Stelle im DOM-Baum schieben. Ist, glaube ich, die beste Lösung und spart CSS-Gefrickel
 
paddya ist offline   Mit Zitat antworten
Alt 09.12.2010, 13:22:52   #1063 (permalink)
Erfahrener Benutzer
Benutzerbild von Inskin

ID: 34917
Lose-Remote

Inskin eine Nachricht über ICQ schicken
Reg: 21.04.2006
Beiträge: 6.088
Standard

Hallo,

http://mary.klamm.de:8181/lwatch79.html ist nicht mehr erreichbar.
Liegts am Server oder ist das so gewollt?
Inskin ist offline   Mit Zitat antworten
Alt 09.12.2010, 19:40:11   #1064 (permalink)
Lose 2.0 –
das zweite Zeitalter
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.650
Standard

Zitat:
Zitat von Inskin Beitrag anzeigen
Hallo,

http://mary.klamm.de:8181/lwatch79.html ist nicht mehr erreichbar.
Liegts am Server oder ist das so gewollt?
Geht doch.
NEU OpenIsles - das freie Insel-Aufbauspiel NEU

www.theHacker.ws v3 | WhatPulse-Team
Bezahlte Startseite
- mehr Verdienst als auf klamm - viele Auszahlungen erhalten
theHacker ist offline   Mit Zitat antworten
Alt 09.12.2010, 19:44:35   #1065 (permalink)
Erfahrener Benutzer
Benutzerbild von Inskin

ID: 34917
Lose-Remote

Inskin eine Nachricht über ICQ schicken
Reg: 21.04.2006
Beiträge: 6.088
Standard

Was siehst du auf der Seite denn?
Inskin ist offline   Mit Zitat antworten
Antwort

Stichworte
eckis zuhause, server

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Server nach einiger Zeit nach Neustart überlastet Bububoomt Programmierung 10 13.12.2007 18:27:14
Dateien von Server auf Server laden - möglich? was wird benötigt? Slemens Webhosting 7 14.11.2007 15:31:45
[PHP/Server] Script ohne Einschränkungen ausführen um änderungen am Server vorzunehme flaschenkind Programmierung 2 07.01.2007 12:47:28
Server überlastet? cryptonite Bug-Report 4 20.06.2006 09:12:30


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:28:19 Uhr.