Antwort
 
Themen-Optionen
Alt 21.02.2008, 21:25 Nach oben    #1
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard Prüfen ob Client AJAX kann

Hallo,

wie kann ich mit php prüfen ob der client ajax versteht ?

steh mal wieder voll im Wald ...
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.02.2008, 21:51 Nach oben    #2
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 519
Standard

Dazu muss Ajax irgendwie "aktiv" werden, daran erkennst du, dass es funktioniert.
Also einfach im HTML einen Ajax-Aufruf einbauen
html Code:
  1. <html>
  2. <head><title>Ajax-Test</title></head>
  3. <body>
  4. <script type="text/javascript">
  5. ajax = XMLHttpRequest ?
  6.             new XMLHttpRequest() : new ActiveXObject('Msxml2.XMLHTTP');
  7. ajax.open('get', 'ajaxEnabled.php', true);
  8. ajax.send(null);
  9. </script>
  10. </body>
  11. </html>
und in der ajaxEnabled.php kann dann irgendwie sowas stehen:
PHP-Code:
<?php
$session
['ajax'] = true;
?>
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.02.2008, 22:49 Nach oben    #3
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 132
Standard

Zitat:
wie kann ich mit php prüfen ob der client ajax versteht ?
AJAX ist ein Konglomerat von verschiedenen Techniken. Was du sicher prüfen möchtest ist, ob der Browser Java Script aktiviert hat. Dies funktioniert wie von $traight-$hoota beschrieben, gibt allerdings noch andere Methoden. Einfach mal googlen.
__________________
Grüße,
Dr.E.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a look at http://www.adventure-php-framework.org!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.02.2008, 07:27 Nach oben    #4
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.212
Standard

Kann denn jeder Browser, der JS aktiviert hat auch automatisch AJAX?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.02.2008, 09:45 Nach oben    #5
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 355
Standard

Die aktuellen Ja. Die ganz alten nicht. Wobei du dann aber JS-Fehler provozierst.
Die Frage ist, ob sie die entsprechenden Objekte zur Verfügung stellen, um HTTP-Requests abzusetzen. Im übrigen ist das auch von Browser zu Browser leicht unterschiedlich.
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.02.2008, 10:38 Nach oben    #6
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.212
Standard

Okay, hätte ich auch mal getippt, aber ich dachte, ich nutze die Chance doch gleich mal zur Klärung der Frage.

Da es ja nun nicht wirklich eine PHP-Frage ist, habe ich den thread entsprechend verschoben.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.02.2008, 13:34 Nach oben    #7
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

Nur als Ergänzung: Wenn man eh schon dabei ist AJAX abzuprüfen, hätte ich noch folgenden Vorschlag, wie ich es in meiner eigenen kleinen Ajax-Klasse realisiert habe:

Code:
var objectAjax =
{
// [...]

  // Speichert, ob mit Ajax gearbeitet werden kann
  booleanAjaxIsFunctional: false,

  // Zählt die Versuche den BODY als Object zu laden
  integerWaitCount: 0,

// [...]

  methodCheckAjaxFunctionality: function ()
  {
    // BODY als Object speichern
    objectNodeBody = document.getElementsByTagName ("body")[0];

    // Wenn die Seite beim Aufruf der Methode noch nicht vollständig geladen wurde
    //  ist der BODY noch nicht verfügbar, entsprechend wird die Methode nach einer
    //  kurzen Pause erneut geladen.
    if (objectNodeBody != null)
    {
      // Erstellen eines FORM- und eines INPUT-Nodes
      var objectNodeForm        = document.createElement ("form");
      var objectNodeInputHidden = document.createElement ("input");

      // Füllen des INPUT-Nodes mit 'type="hidden" id="inputHiddenCheckNode"
      //  value="false"'
      objectNodeInputHidden.setAttribute ("type",
                                          "hidden"
                                          );
      objectNodeInputHidden.setAttribute ("id",
                                          "inputHiddenCheckNode"
                                          );
      objectNodeInputHidden.setAttribute ("value",
                                          "false"
                                          );

      // Anhängen des INPUT-Nodes an den FORM-Node
      objectNodeForm.appendChild (objectNodeInputHidden);

      // Anhängen des FORM-Nodes an den BODY-Node
      objectNodeBody.appendChild (objectNodeForm);

      // Speichern des angehängten INPUT-Nodes
      var objectNodeInputHidden = document.getElementById ("inputHiddenCheckNode");

      // Ändern des INPUT-Node-Wertes auf "true"
      objectNodeInputHidden.value = "true";

      // Prüfen, ob die Änderung erfolgreich durchgeführt wurde
      if (objectNodeInputHidden.value == "true")
      {
        this.booleanAjaxIsFunctional = true;
      }

      // Entfernen des FORM-Nodes
      objectNodeBody.removeChild (objectNodeBody.lastChild);
    }
    else
    {
      // Hier wird mitgezählt, wie oft bereits versucht wurde, den BODY als Objekt zu laden
      this.integerWaitCount++;

      if (this.integerWaitCount > 10)
      {
        // Der BODY konnte innerhalb der gesetzten Zeit (10 x 250ms = 2,5s) nicht als Objekt geladen werden
        this.objectAjax = null;
      }
      else
      {
        // Erneuter Aufruf der Methode methodCheckAjaxFunctionality() im Object objectAjax nach 250ms
        window.setTimeout ("objectAjax.methodCheckAjaxFunctionality ();",
                           250
                           );
      }
    }
  },

// [...]
}

// Aufruf der Methode methodInitialize() im Object objectAjax zur Laufzeit
objectAjax.methodInitialize ();
Hierbei wird dann geprüft, ob auch Elemente im DOM eingefügt und verändert werden können. Sollte das nämlich nicht funktionieren (aus welchen Gründen auch immer), nutzt einem das AJAX herzlich wenig, denn je nach Browser könnte das separat deaktiviert sein, obwohl AJAX selber funktioniert.

EDIT: Habe eben auch nochmal nach der Einstellung gesucht, sie aber doch nicht mehr gefunden, war das vielleicht nur bei früheren Browsern so? Hatte nämlich mal ein Problem, dass AJAX selber funktionierte, die Daten sich in der Seite aber nicht ändern ließen. Wenn das heutzutage nicht mehr so ist, wäre die Funktion oben vollkommen überflüssig, weiß da jemand mehr?
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll

Geändert von MrNiceGuy (22.02.2008 um 13:41 Uhr).
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.02.2008, 19:46 Nach oben    #8
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

Also die Frage hatte ich nur da ich mein cms durch ajax etwas aufbohren wollte, was da lautet dass

Wenn der Client und/oder Browser das Unterstützt wird meine interne cms-Ajax php classe geladen und demnach wird dann auch für das cms Ajax = true gesetzt was im template ja Links automatisch umsetzt und oder auch Formulare prüft ... ziel sollte sein (zumindest stelle ich mir das so vor

zB. bei den Links das die dann entweder automatisch per Html oder Ajax umgesetzt werden.

So auch die Formulare entweder strikt per Html usw. oder eben mit Ajax features die in der ajax.js stehen ....

Also nicht die Whansinns Umsetzung durch Ajax sonder eher Details als Ergänzung ...

krebs leider erst am Anfang rum mit ajax, daher wäre alleine dieser Schritt für mich das erste Todo um das zu Integrieren.

Oder bin ich da irgendwie Sinnbefreit in der Thematik unterwegs !?

Werd nochma bissi Suchen und lesen.
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.02.2008, 21:29 Nach oben    #9
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 519
Standard

Also um diese Beispiele umzusetzen, würde ich dir raten, ein voll-funktionsfähiges HTML-Template zu verwenden, dass auch ohne Ajax alle Möglichkeiten bietet, wenn auch ggf. etwas umständlicher. Aber dadurch wird gewährleistet, dass auch User ohne Ajax im Funktionsumfang nicht eingeschränkt werden.
Die von dir beschriebenen Ajax-Features können dann - bei funktionsfähigem Ajax - die generierte HTML-Seite etwas aufpolieren. Aber dafür sollten eigentlich keine serverseitigen Änderungen benötigt werden, entweder wird die eingebundene JS-Datei korrekt ausgeführt, oder nicht.
Dann ist es für den Server egal, ob der User Agent Ajax kann und aktiviert hat oder nicht.
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.02.2008, 23:51 Nach oben    #10
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

Genau das ist es, aber wenn ich das js file einbinde oder nicht im csm sollte ich schon per php im ersten Aufruf wissen ob ja oder nein ... daher auch die Frage wie @ php .... aber ich lese mal ... meld mich wenn ich planloser bin.
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


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

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[AJAX] Eine Einführung in AJAX und XMLHttpRequest Jay Tutorials 1 08.12.2006 16:21
Server - Client: Befehle und Identifizierung WarrenFaith Allgemeine Java-Programmierung 3 08.08.2006 20:09
AJAX Theme Engine für Wordpress PaterNoster Plauderecke 0 17.11.2005 21:48
Netzwerk / Thread syncronisieren sparrow Allgemeine Java-Programmierung 4 16.11.2005 21:11
Sockets: Verbindung prüfen Zero83 Allgemeine Java-Programmierung 8 12.10.2005 13:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:48 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44