Seite 1 von 1

Teile der Seite dynamisch nachladen (AJAX)

Verfasst: Sa 3. Feb 2007, 19:56
von Docsam
Hallo,

ich möchte gerne ab einer gewissen Navigationsebene Teile der Webseite dynamisch nachladen. Wie dies generell funktioniert hab ich grob begriffen.

Nun geht es darum Contenido das ganze bei zu bringen. Bevor ich das ganze nun zurecht bastele, wollte ich mein Vorgehen hier im Forum sicherheitshalber "absegnen" lassen - vllt gibt es ja noch eine elegantere Möglichkeit.

Also Vorgehen:

1.) Für den "normalen" Seitenbereich alles in Contenido erstellen wie gehabt(Templates etc pp)
2.) in das Template der Seite das AJAX-Script einbauen
3.) Navigation entsprechend anpassen, das bei manchen Seiten eben das AJAX-Script genutzt wird
4.) weiteres Template ohne Navigation für die nachzuladenden AJAX-Seiten erstellen. D

Ich hoffe ich hab mich einigermassen nachvollziehbar ausgedrückt und bin dankbar für Eure Hilfe.

Gruß
Jens

Verfasst: Mo 5. Feb 2007, 23:46
von Docsam
Habs jetzt soweit raus, funktioniert wie ich mir dachte.. also hat sich erledigt :-)

Verfasst: Di 6. Feb 2007, 01:36
von i-fekt
Darfst es ruhig auch posten und anderen helfen. Hier geht es schliesslich darum, dass das System von der gegenseitigen Hilfe lebt. :wink:

Verfasst: Di 6. Feb 2007, 09:25
von Docsam
steht doch oben beschrieben :-)

das ganze funktioniert eher rudimentär noch, das Problem ist, das die Links der nachzuladenden Inhalte irgendwie automatisch angepasst werden müssten, wenn Sie in einem "AJAX-Template" sind.

Ich werde heute nachmittag mal meine bisherigen Schritte dokumentieren und hier veröffentlichen - vllt. kann man da noch was draus machen.

Verfasst: Di 6. Feb 2007, 23:01
von Docsam
so also mein Vorgehen um Daten per XMLHttpRequest aus Contenido asyncron zu holen. Meist als AJAX bezeichnet. Bin aber da auch eher Einsteiger diesbzgl.

1.) ein neues Layout anlegen, welches die AJAX-Inhalte bereitstellt. hier hab ich quasi nur ein Paar Formatierungen & die Container reingeschrieben, mehr nicht.

2.) Template anlegen mit dem "AJAX"-Layout.

3.) einen Artikel zb anlegen, der per AJAX geholt werden soll.

4.) Javascript auf der normalen Contenido Seite integrieren, welches für das Nachladen zuständig ist

einfaches Beispiel:

Code: Alles auswählen

 
function getfromCMS(myUrl,myField)
{
var Field = document.getElementById(myField); // selects the given element

    try {
        if(window.XMLHttpRequest) {
            // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
            xmlhttp = new XMLHttpRequest();
        } else if(window.ActiveXObject) {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 4,5,5.5,6
        }
    } catch(e) {
        return false;
    }

    xmlhttp.open("GET", myUrl, true);
    xmlhttp.onreadystatechange=function() {

        if (xmlhttp.readyState == 4) {
            Field.innerHTML = xmlhttp.responseText; // puts the result into the element
        }
    }
    xmlhttp.send(null);
}
wenn Du nun auf der Seite mittels der Javascript funktion aufrust und die URL cms/front_content.php?idcat=CATNR als URL verwendest und als Field ein zb Div-Tag mit der ID wird der Inhalt des Artikels nachgeladen.

Das ist noch nicht sehr weitgehend, funktioniert aber grundsätzlich.


[/code]

Verfasst: Do 8. Mär 2007, 15:37
von #ayshe
Hallo Jens,

das ist ein interessanter Ansatz. Ein paar Deiner Sätze sind aber wegen ihrer Formulierung etwas schwer zu verstehen. Kannst Du dazu nochmal was sagen:
4.) Javascript auf der normalen Contenido Seite integrieren, welches für das Nachladen zuständig ist
--- Du meinst einen Artikel? Kein Layout? Heißt: Das Script muß direkt im betreffenden Artikel (also natürlich im HTML) eingebaut werden?
wenn Du nun auf der Seite mittels der Javascript funktion aufrust und die URL cms/front_content.php?idcat=CATNR als URL verwendest und als Field ein zb Div-Tag mit der ID wird der Inhalt des Artikels nachgeladen.
--- Äh...Häh? Das bitte nochmal irgendwie anders formuliert. So erschließt es sich mir nicht. Meinst Du: "Wenn du nun die Seite (die unter Punkt 4 erweitert wurde) aufrust..."? Und dann?

Wär' jedenfalls sehr nett, wenn Du das nochmal klären könntest, ich finde die Integration von AJAX ins Frontend via Contenido sehr interessant.

Gruß,
Ayshe

Verfasst: Do 8. Mär 2007, 16:32
von wosch
Ähm ...
Was sehen Besucher der Seite die Java-Script abgestellt haben?

Verfasst: Do 8. Mär 2007, 17:16
von MichFress
wahrscheinlich genauso viel wie auf vielen, vielen anderen Seiten: nicht viel..
Sie werden es aber wohl gewöhnt sein, dass sie in Teilen des Internets nicht weit kommen...

Verfasst: Do 8. Mär 2007, 17:21
von stony
MichFress hat geschrieben:wahrscheinlich genauso viel wie auf vielen, vielen anderen Seiten: nicht viel..
Sie werden es aber wohl gewöhnt sein, dass sie in Teilen des Internets nicht weit kommen...
da gehören google & andere Suchmaschinen auch zu! (nur so nebenbei)

Verfasst: Do 8. Mär 2007, 23:15
von #ayshe
Ach ja, ich kenne diese Einwände. Es gibt dagegen zwei Argumente:
1. Jeder, der wirklich viel entwickelt, wird die Erfahrung machen, dass es einige Probleme mit Darstellung gibt, nicht aktiviertes JS aber so gut wie nie der Grund ist.
2. Statistiken aus Logfile-Auswertungen zeigen, dass rund 2% der Websurfer JS deaktiviert haben.
3. Ca. 80% aller Browsernutzer wissen gar nicht, wie sie irgendwelche Voreinstellungen ihres Browsers verändern können, also auch nicht, wie sie JS deaktiveren können.

Klar, man kann sich immer zum Ziel setzen, 100% der Leute zufrieden zu stellen. Aber ich kann allein schon aus wirtschaftlichen Gründen auch mit 98% Quote leben :wink:

Verfasst: Fr 9. Mär 2007, 00:20
von trixta
@ayshe

grds. hast du recht in dem was du sagst, aber man sollte bei der sache 2 dinge bedenken.

1. die veränderung bedeutet, in diesem fall, einen extremen eingriff in inhalte. suchmaschinen werden damit ebenfalls teilweise ausgeschlossen (dann sind die 98% absolut nicht viel)
2. ist es relativ einfach eine ajax seite mit fallback zu machen.