Ich entwickle gerade eine Seite mit einem JavaScript-Framework auf der Client-Seite ( dojo / dijit ). Wie bei allen javascript / framworks-Anwendungen verwenden Sie Ajax für schnelle Aufrufe und Aktualisierungen. Meine Frage ist eine allgemeine Faustregel, wenn man Ajax benutzt und wann man einen Link benutzt? Ich frage nur, weil ich Ajax mehr benutze, als es scheint, und ich mache mir Sorgen, dass sich Fehler auf der Startseite auf andere Elemente übertragen könnten. Oder wenn Inhalt ständig ersetzt wird, kann etwas schief gehen.
Ich nehme an, ich frage, gibt es irgendwelche Nachteile zu schweren Ajax-Nutzung in Webseiten?
BEARBEITEN
SEO - kein Problem. Ich denke jetzt nur an Client-Server-Probleme. Links würde Ajax Hands-down wetten, wenn Sie gutes SEO wollten
In meinen Augen gibt es drei Probleme mit der Verwendung von Tonnen von AJAX-Anrufen.
Die erste stammt aus der Benutzerperspektive. Wenn ich viel navigiere, möchte ich als Benutzer meine Rück- / Vorwärtstasten in meinem Browser verwenden und sie richtig funktionieren lassen. Wenn sie es tun, dann gibt es kein Problem. Wenn dies nicht der Fall ist, haben Sie die grundlegende Navigation in meinem Browser unterbrochen.
Zweitens ist Lesezeichen / Indizierung. Als Benutzer möchte ich vielleicht ein Lesezeichen setzen, damit ich wieder darauf zugreifen oder es teilen kann. Als ein Indexer für eine Suchmaschine möchten Sie als Entwickler die Suchmaschine alle Seiten mit Informationen anzeigen lassen, damit Ihre Website gefunden werden kann. Beide benötigen eine Art eindeutige URL.
Das dritte ist das Debugging aus Entwicklungssicht. Je mehr zufällige Sachen Sie auf eine Seite werfen und / oder dynamisch ersetzen, desto schwieriger wird es, herauszufinden, was falsch ist. Je mehr Sie haben, desto mehr muss gut integriert werden oder könnte schlecht interagieren.
Nein,
Ich denke nicht beide Seiten oder Ajax verwenden, können ihre Vorteile haben, aber sobald die Javascript-Datei geladen wird und im Cache gespeichert und auch die Ajax-Blatt, das alles ist der Overhead verließ die Datenbank Anrufe, Links verwenden würde mehrere Seiten führen wird geladen, was meiner Meinung nach höhere Kosten verursacht als ein Datenbankanruf.
Mir persönlich geht es mit viel Ajax so lange so lange, bis es richtig (und schnell) funktioniert und mein Verhalten nicht bricht. Genauer gesagt, ich möchte in der Lage sein, einen Link zu einer bestimmten Seite per E-Mail zu versenden, sie zu bookmarken - das übliche Zeug.
Ein Problem, das mir in den Sinn kommt, wenn ich zu viel AJAX verwende, ist SEO.
Wenn Sie eine Webanwendung erstellen, ist die Verwendung von AJAX eine gute Sache. Aber wenn Sie möchten, dass die Suchmaschine jedes Wort auf Ihrer Seite findet, wird es schwierig, AJAX zu verwenden.
Laut mir ist viel Ajax schlecht für die SEO-Gesundheit Ihrer Website ... :-( Die beste Verwendung von Ajax ist, wenn es nur zur Anzeige von Fehlern, Nachrichten und kleinen Aufgaben verwendet wird. Ich denke, das Einreichen eines Formulars mit Ajax ist auch nicht eine gute Sache.
Ich erwähne einige der wichtigsten Nachteile unten, wenn ich etwas verpasse bitte kommentieren.
Firstly
Aufgrund ihrer dynamischen Natur sind Ajax-Schnittstellen im Vergleich zu statischen Seiten oft schwieriger zu entwickeln.
Secondly
, Seiten, die dynamisch mit aufeinanderfolgenden Ajax-Anfragen erstellt werden, registrieren sich nicht automatisch mit der Verlaufs-Engine des Browsers. Wenn Sie also auf die Schaltfläche "Zurück" des Browsers klicken, wird der Benutzer möglicherweise nicht in einen früheren Zustand der Ajax-aktivierten Seite versetzt kann sie stattdessen auf die letzte vollständige Seite zurückrufen, die zuvor besucht wurde. Problemumgehungen umfassen die Verwendung von unsichtbaren IFrames, um Änderungen im Browserverlauf auszulösen und den Ankerteil der URL (nach einem #) zu ändern, wenn Ajax ausgeführt und auf Änderungen überwacht wird.
Thirdly
, Dynamische Webseitenaktualisierungen erschweren es einem Benutzer außerdem, einen bestimmten Status der Anwendung als Lesezeichen zu speichern. Es gibt Lösungen für dieses Problem, von denen viele den URL-Fragment-Bezeichner (den Teil einer URL nach dem '#') verwenden, um die Anwendung in einem bestimmten Status zu verfolgen und es Benutzern zu ermöglichen, zu ihr zurückzukehren.
Fourthly
, Da die meisten Webcrawler keinen JavaScript-Code ausführen, sollten öffentlich indizierbare Webanwendungen eine alternative Möglichkeit bieten, auf den Inhalt zuzugreifen, der normalerweise mit Ajax abgerufen würde, damit Suchmaschinen sie indizieren können.
Fifthly
, Jeder Benutzer, dessen Browser JavaScript oder XMLHttpRequest nicht unterstützt oder einfach diese Funktionalität deaktiviert hat, kann Seiten, die von Ajax abhängen, nicht ordnungsgemäß verwenden. Ebenso haben Geräte wie Mobiltelefone, PDAs und Bildschirmlesegeräte möglicherweise keine Unterstützung für die erforderlichen Technologien. Screenreader, die Ajax verwenden können, können den dynamisch generierten Inhalt möglicherweise immer noch nicht richtig lesen. Die einzige Möglichkeit, den Benutzer Funktionen ausführen zu lassen, besteht darin, auf Nicht-JavaScript-Methoden zurückzugreifen. Dies kann erreicht werden, indem sichergestellt wird, dass Links und Formulare korrekt aufgelöst werden können und sich nicht ausschließlich auf Ajax verlassen. In JavaScript konnte die Formularübermittlung dann mit "return false" angehalten werden.
Sixthly
, Die gleiche Ursprungsrichtlinie verhindert, dass einige Ajax-Techniken über Domänen hinweg verwendet werden können, obwohl das W3C einen Entwurf des XMLHttpRequest-Objekts hat, das diese Funktionalität aktivieren würde.
Seventhly
, Wie andere Web-Technologien hat auch Ajax seine eigenen Sicherheitslücken, die Entwickler angehen müssen. Entwickler, die mit anderen Webtechnologien vertraut sind, müssen möglicherweise neue Test- und Codierungsmethoden erlernen, um sichere Ajax-Anwendungen zu schreiben.
und
Lastly
, Ajax-basierte Schnittstellen können die Anzahl der vom Benutzer generierten Anforderungen an Webserver und deren Back-Ends (Datenbanken oder andere) dramatisch erhöhen. Dies kann zu längeren Antwortzeiten und / oder zusätzlichen Hardwareanforderungen führen.
Finally
, ich werde nicht sagen, dass Ajax schlecht ist, aber wie Daniel kommentierte, ist "Too much" is always a bad thing
wahr. Facebook ist eine der Websites, die einen großen Ajax nutzt, aber in einer angemessenen Weise.
Viele Lösungen für die obigen Probleme wurden implementiert. Wenn Sie beispielsweise unsichtbare Iframes verwenden, können Sie Verlaufsdaten abrufen. Mit URL-Fragment-IDs können Benutzer ein Lesezeichen setzen und zu einem bestimmten Status einer Anwendung zurückkehren. Es unterstützt auch Back-Button-Funktionen.
Siehe: AJAX und seine Nachteile
Hoffe, das hilft.
Tags und Links javascript ajax