• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Include durch JavaScript

Status
Für weitere Antworten geschlossen.

fiedel

Mitglied
Jeder, der schonmal auf einen nicht-PHP-fähigen Server gearbeitet hat, stand sicherlich irgendwann vor der Frage, ob sowas ähnliches wie <?php include("datei"); ?> auch durch JavaScript möglich wäre!
Vor einigen Tagen wurde ich fündig! Dies ist das Script:

Code:
<html>
<head>
<script language='JavaScript'>
<!--
function include(lyr,url)
{
if (document.all)
{
// IE version
try {
var xml = new ActiveXObject("Microsoft.XMLHTTP");
// some versions of IE4 and some IE5.0) might be using MSXML2.XMLHTTP.4.0
xml.Open( "GET", url, false );
xml.Send()
document.getElementById(lyr).innerHTML=xml.responseText;
}
catch (e) {
var xml = new ActiveXObject("MSXML2.XMLHTTP.4.0");
xml.Open( "GET", url, false );
xml.Send()
document.getElementById(lyr).innerHTML=xml.responseText;
}
}
else
{
// Mozilla/Netscrap 6+ version
var xml=new XMLHttpRequest();
xml.open("GET",url,false);
xml.send(null);
document.getElementById(lyr).innerHTML=xml.responseText;
}
}
//-->
</script>
</head>

<body onLoad="include('somediv','http://somepath/somefile.html')">

<div id="somediv"><!--Hier wird die HTML-Datei includet--></div>

</body>
</html>
...wie man sieht, wird die Datei gleich beim Laden der Seite includet! (ich weiß, der !doctype fehlt ;-) )
Anders als bei PHP, ist das Includen jedoch auch über einen Link möglich:

Code:
<a href="#" onClick="include('somediv','http://somepath/somefile.html');return false">
load alternate page
</a>
...und zu guter letzt kann mans auch noch so einbinden:

Code:
<script language='JavaScript'>
document.write('<div id="somediv">&nbsp;</div>');
include('somediv','http://somepath/somefile.html');
</script>
natürlich fehlt da noch die "<noscript>Anweisung", da nicht jeder unbedingt JavaScript aktiviert hat!

Nun meine Frage: Was haltet ihr generell von diesem Script? Was könnte Probleme darstellen? Was ist besser als bei serverseitigen Scripten? ...usw....ihr wisst schon! :-D
 
Nette Idee, aber nicht einsatzbar. Wenn JS deaktiviert ist, ist die Site unbenutzbar.
Und jemand, der eine anständige Website haben will, wird IMHO auch einen Wespace mit PHP nutzen/zahlen, denn sonst ist das Ganze eigentlich eher Spielerei.

Nicht, dass ich Deine Mühen runterspielen wollte, Dein Einsatz gefällt mir, aber ich würde es niemals einsetzen wollen. Mit PHP macht man letztendlich doch viel mehr, als nur zu includen. Zumal include keine Sache ist, die an PHP gebunden ist, auch mit SSI, ASP, CGI o.ä. funktioniert das.

Grüße,
-Efchen
 
Der einzige Vorteil ist, wenn ich es richtig verstanden habe, dass wirklich nur in den entsprechenden div-Container eine Seite neu geladen wird und der Rest permanent zu sehen ist -- so etwas wie Frames, nur geringfügig besser (teilweise aber auch schlechter:!:).
Die von Efchen aufgezeigten Nachteile überwiegen allerdings deutlich.
Man könnte das höchstens in Kombination mit PHP statt als Ersatz verwenden, wobei PHP nur zum Einsatz kommt, wenn JavaScript abgeschaltet ist.
 
Ach ja, und funktionieren wird es auch nur im IE, mitActiveXObject("Microsoft.XMLHTTP"); oder?
Damit ist es dann in jedem Fall durchgefallen.
 
Jeder, der schonmal auf einen nicht-PHP-fähigen Server gearbeitet hat, stand sicherlich irgendwann vor der Frage, ob sowas ähnliches wie <?php include("datei"); ?> auch durch JavaScript möglich wäre!
Dadurch zeigt sich doch, dass es sich nur um einen Workaround handelt. Ein Workaround kann nie ein Ersatz für irgend etwas sein.

Die Nachteile sind an sich genau die selben, wie mit Frames: memowe.de Webauthoring: Frames-Dialektik
 
Okay danke für eure Meinungen! Im Grunde hab ich schon nichts anderes erwartet! ; )
Nette Idee, aber nicht einsatzbar. Wenn JS deaktiviert ist, ist die Site unbenutzbar.
Das stimmt schon, aber man könnte doch bei <noscript> sowas reinschreiben, dass man für den includeten Inhalt Javascript aktivieren sollte!
Auf dieser Seite wird sogar angegeben, dass 0,0% aller User JavaScript deaktiviert haben: WebHits
Kann ich mir zwar nicht vorstellen, aber es wird trotzdem sicherlich die Mehrheit Javascript aktiviert haben!

nur geringfügig besser (teilweise aber auch schlechter:!:).
Was meinst du damit? Also was genau ist schlechter/besser?

Die Nachteile sind an sich genau die selben, wie mit Frames
Das glaub ich nicht! Diese JavaScript-Lösung ähnelt eher den sogenannten iframes und diese haben nicht alle Nachteile der Framesets, welche auch hier genannt werden: memowe.de Webauthoring: Frames-Dialektik (was nicht heißt, dass ich Frames gut finde)




EDIT: Hab das grad gefunden:
[...]ermittelt werden die Zahlen unter den WebHits-Abonnenten, die bei deaktiviertem JavaScript folgenden Hinweis unten links auf der Startseite erhalten: Bitte Cookies u. JavaScript aktivieren
...daher kommen die 0,0%! Ham also nix zu sagen!
 
Zuletzt bearbeitet:
Das Thema wurde mehr als einmal ausdiskutiert. Mit JavaScript müsste man alles, was eine normale Webseite macht erstmal 'nachbauen'. Das ist letztendlich dann nicht einfacher, sonder schwieriger. Genau das trifft auch bei Framesets zu.

Webseiten funktionieren nun mal nicht so. Es sind immer einzelne Seiten, JavaScript soll dabei helfen, die Webseite einfacher bedienbar zu machen und nicht umgekehrt.
 
man könnte doch bei <noscript> sowas reinschreiben, dass man für den includeten Inhalt Javascript aktivieren sollte!
Meinst Du, jemand, der JS absichtlich deaktiviert, aktiviert JS, nur weil das auf irgendeiner Website steht? Derjenige wird dann eher wieder gehen, weil die WS offensichtlich was voraussetzt, was er nicht bieten kann.

Auf dieser Seite wird sogar angegeben, dass 0,0% aller User JavaScript deaktiviert haben:
Traue niemals einer Statisatik, die Du nicht selbst gefälscht hast.
Vermutlich werden die JS-Nutzer auf der Site per JS ermittelt, kein Wunder, dass das dann 100% sind ;-)

es wird trotzdem sicherlich die Mehrheit Javascript aktiviert haben!
Im WWW zählt nicht die Mehrheit, da zählt nur "alle oder gar keiner".
 
Okay, okay! Ich gebe mich geschlagen! ^^
Ich finde diese JavaScript-Lösung auch nicht besonders gut, weil es einfach viel mehr Nachteile gegenüber serverseitigen Programmiersprachen gibt!
Und v.a. für Seiten, die kommerziellen genutzt werden, ist das Script überhaupt nichts, aber ich denke, wenn man nur so zum Spass eine Seite erstellt und der kostenlose Webspace-Anbieter nicht über PHP oder SSI verfügt ist es schon ein enormer Vorteil und eine gute Alternative zu Frames!

Besonders interessant finde ich jedoch, dass es immer geheißen hat, dass sowas auf keinen Fall mit JavaScript möglich wäre!
 
Im WWW zählt nicht die Mehrheit, da zählt nur "alle oder gar keiner".

Das würde ich nicht pauschalisieren. Grundsätzlich gilt auf die Mehrheit zu achten und die Minderheit möglichst nicht auszuschließen, jedoch auf 5% herumzureiten ist meines Erachtens nicht vorteilhaft.

fiedel schrieb:
Besonders interessant finde ich jedoch, dass es immer geheißen hat, dass sowas auf keinen Fall mit JavaScript möglich wäre!

Wann war das? Vor 5 Jahren? Dein Script basiert grundsätzlich nur auf dem XMLHttpObject, sprich du verwendest simples AJAX und dies ist seit der Web2.0 Geschichte wohl mehr als nur bekannt und möglich. ;)
 
Das würde ich nicht pauschalisieren. Grundsätzlich gilt auf die Mehrheit zu achten und die Minderheit möglichst nicht auszuschließen, jedoch auf 5% herumzureiten ist meines Erachtens nicht vorteilhaft.
Es ist ja seit der Einführung von CSS und einer strikten Trennung von Inhalt und Layout kein Problem mehr, 100% zufrieden zu stellen, es gibt ja gar keine Notwendigkeit mehr, nur auf 95% achten zu müssen. Mit validem, sauberen und semantischen HTML erreicht man 100% Nutzbarkeit. Mehr kann man nicht wollen.
Aber noch immer scheint das nicht bis in alle Köpfe reingegangen zu sein, dass es so einfach ist. Noch immer werden Tabellen vergewaltigt und div-Suppe gekocht. Dabei ist HTML so einfach und so logisch und muss sich in (nahezu) keiner Weise um Darstellung oder Inkompatibilitäten kümmern.

Es zu schaffen, dass eine Website für weniger als 100% nutzbar ist, finde ich schwieriger, als eine Website zu erstellen, die für 100% nutzbar ist.
 
Vor allem haben viele wohl eine andere Vorstellung von "nutzbar".
Auf diesen speziellen Fall mag es wohl nicht zutreffen, was ich jetzt schreibe, aber ich halte die berühmte optische Optimierung für möglichst viele Browser durchaus für sinnvoll, solange dabei nicht die universelle Nutzbarkeit beeinträchtigt wird. Ich kann die Leute verstehen, die 95% ihrer Benutzer nicht nur Informationen sondern auch ein schickes und möglichst nicht auseinander brechendes Design bieten wollen. Dabei muss ja nicht die Nutzbarkeit für die restlichen 5% verloren gehen.
 
Vor allem haben viele wohl eine andere Vorstellung von "nutzbar".
Obwohl die Bedeutung von "Nutzbarkeit" eigentlich klar umrissen ist. Nutzbar heißt lediglich, dass alle Inhalte der Website abgerufen werden können, egal mit welchem Browser, egal mit welchen Einstellungen usw. Das ist die einzige Grundvoraussetzung für das WWW. Diese Nutzbarkeit wird mit gutem HTML erreicht.

ich halte die berühmte optische Optimierung für möglichst viele Browser durchaus für sinnvoll, solange dabei nicht die universelle Nutzbarkeit beeinträchtigt wird.
Ich sehe das nicht anders.

Ich kann die Leute verstehen, die 95% ihrer Benutzer nicht nur Informationen sondern auch ein schickes und möglichst nicht auseinander brechendes Design bieten wollen. Dabei muss ja nicht die Nutzbarkeit für die restlichen 5% verloren gehen.
Richtig. Nutzbarkeit muss bei 100% liegen, und das ist nicht schwer.
Die Quote für das gute Aussehen wird ja auch tatsächlich durch die Zielgruppe bestimmt, durch die verwendeten Browser und vieles mehr. Wenn jemand aber mit Netscape 2 kommt, dann wird die Site einfach sch* aussehen, aber das ist klar, weil der Browser kein CSS kann. Das ist dann der Preis, den der Nutzer dafür zu zahlen hat, dass er einen hoffnungslos veralteten Browser nutzt.
ABER er kann trotzdem auf alle Informationen zugreifen! Dass es nach nichts aussieht, das ist seine eigene Entscheidung.

Man muss das ganz klar voneinander abgrenzen. Die Nutzbarkeit ist weit weniger, als was man normalerweise erreichen will. Aber dir Nutzbarkeit ist halt einfach grundlegend.
 
Gut, dann sind unsere Vorstellungen ja im Grunde identisch. Prinzipiell bist du also auch kein Feind aller möglicher Spielereien wie z.B. Flash, solange eine aus Sicht der Nutzbarkeit gleichwertige Alternative geboten wird, verstehe ich das richtig? :)
 
Gut, dann sind unsere Vorstellungen ja im Grunde identisch. Prinzipiell bist du also auch kein Feind aller möglicher Spielereien wie z.B. Flash, solange eine aus Sicht der Nutzbarkeit gleichwertige Alternative geboten wird, verstehe ich das richtig? :)
Ich werde mich hier nicht als Flash-Fan outen! *empört sei*
Nein, ich bin auch kein Flash-Fan. Ich gehöre eher zu den Leuten, die das WWW nutzen, um Informationen abzurufen, nicht um irgendwelche Klickbunti-Spielereien zu machen. Ich würde nichts vermissen, wenn Flash&Co von heute auf morgen nicht mehr da wären.

Aber im Prinzip hast Du mit Deiner Einschätzung recht, mit Alternativen sehe ich keinen Grund gegen den Einsatz von sowas. Ich erwarte eigentlich bloß 100%ige Nutzbarkeit. Und dazu gehört auch, dass man Scrollbalken nicht deaktiviert und son Zeugs :-)
 
Ich werde mich hier nicht als Flash-Fan outen! *empört sei*
Das habe ich auch überhaupt nicht von dir verlangt. :mrgreen:
Allerdings glaube ich, dass Flash, wenn sinnvoll eingesetzt, eine angenehmere und intuitivere "Bedienung" einer Webseite ermöglichen kann. Beispiele für "sieht toll aus" "erleichtert einiges" und "ist allgemein nutzbar" gleichzeitig sieht man im Web und überhaupt auf dem Computerbildschirm leider sehr selten.

Ich erwarte eigentlich bloß 100%ige Nutzbarkeit. Und dazu gehört auch, dass man Scrollbalken nicht deaktiviert und son Zeugs :-)
Das versteht sich von selbst. ;)
 
Nicht das wir hier aneinander vorbei reden. Den ich sprach nicht von der Nutzbarkeit einer Seite. JavaScript sollte in allen Fällen unaufdringlich geschrieben werden und nicht vorausgesetzt werden müssen, wenn das jedoch mal der Fall sein "muss", ist es auch nicht schlimm, insofern man den Informationsfluss nicht beeinträchtigt.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben