Dennis: Ein kleiner Webdienst von mir

Beitrag lesen

Hi Blubb,

Ich verfolge eigentlich den Grundsatz, AJAX nur dort einzusetzen, wo es nötig ist. Im Moment funktioniert die Seite auch mit deaktiviertem JavaScript.

Das ist auch vollkommen korrekt so, natürlich sollte alles auch mit deaktiviertem Javascript funktionieren. Trotzdem kannst du machen Aktionen mit AJAX lösen, sodass etwas mehr Komfort und schnellere Reaktionen der Seite geboten werden.

Beispiel: Der Löschen-Link für eine Memo, im nachfolgenden gehe ich davon aus, dass du alle diese Löschen-Links mit der Klasse „memo-delete” versehen hast. Dann könntest du folgendes Script verwenden, basierend auf prototype.js, welche du natürlich vorher noch im Quellcode einbinden musst.

// Ausführen, wenn die Seite fertig geladen ist  
window.onload = function() {  
  // Für jeden Link mit der Klasse „memo-delete”  
  $$('a.memo-delete').each( function() {  
    this.onclick = function() {  
      // AJAX Request auf die URL im href-Attribut starten  
      new Ajax.Request(this.href, {  
        method: 'get'  
      });  
      // das eigene Memo löschen  
      this.parentNode.parentNode.remove();  
      // verhindern, dass der Browser dem Link noch folgt  
      return false;  
    }  
  });  
}

Hab ich jetzt nur mal so Quick'n Dirty hingeschrieben - sollte eigentlich so direkt funktionieren, kann aber auch gut sein, dass ich was übersehen habe ;-)

Du könntest dein PHP-Script nun noch anpassen, dass es auf einen Aufruf von „/index.php?page=deletememo” in dem Fall, dass der Request-Header „X-Requested-With” den Wert „XMLHttpRequest” hat nicht mit einer Weiterleitung reagiert, sondern mit „204 No Content” antwortet.

Viele Grüße,
  ~ Dennis.