2009-01-27 22 views
14

Ich habe kürzlich mit jemandem an einem Projekt gearbeitet, das sehr intensiv ist. Alle Aufrufe werden über Ajax an Web-Services gesendet und die Datenlogik wird auf der Client-Seite behandelt. Der serverseitige Code fungiert nur als data access layer und macht sonst wenig. Wie viel Javascript ist zu viel?Wie viel Javascript zu viel ist

Antwort

11

Es hängt wirklich von Ihren Bedürfnissen und den Erwartungen des Benutzers ab. Mein einziger Vorschlag ist, an die Orte zu denken, die Sie AJAX tun, wenn der Benutzer wirklich erwartet, eine neue Seite zu navigieren. Das sind die Fälle, in denen Sie "zu viel" tun.

Denken Sie daran, dass der Nutzer 99% seiner Zeit damit verbringt, andere Websites zu nutzen, nicht Ihre. Stellen Sie sicher, dass Ihre Website das tut, was sie vom Rest des Webs erwartet, und dass Sie Computer generell verwenden.

Übrigens kann Usability-Tests verwendet werden, um herauszufinden, "was der Benutzer wirklich erwartet" in jedem Bereich. Ihre Beurteilungen als Designer sind wahrscheinlich völlig anders als bei typischen Nutzern; siehe auch Why You Only Need to Test with 5 Users.

+0

Sehr nette Verbindung! Ich fand es nützlich. –

9

Wenn die resultierende Anwendung intuitiv und nützlich für den Benutzer ist, dann kann man nicht sagen, dass es zu viel von der einen oder anderen Technologie verwendet hat.

Unser Hauptziel als Softwareentwickler sollte es sein, eine hervorragende Benutzererfahrung zu bieten.. Die Technologie, mit der wir das machen, ist nur ein Enabler.

  1. die Anwendung ist nicht intuitiv oder weicht von dem Benutzer mental Modell oder
  2. die Anwendung übermäßig schwierig oder zu:

    Wir haben nur zu viel/die falschen Technologie, wenn verwendet teuer halten für diejenigen, die nach kommen uns

16

Javascript zu viel sein kann, wenn es zu viel enthüllt der Kunde, also würde ich aus der Sicherheitsperspektive schauen. Aus der Leistungsperspektive ist generell das Verwenden von Javascript besser.

3

Die Frage ist eher, stellt die Anwendung immer noch notwendige Funktionen wie Bookmarkability und Ehrung der Benutzer Browsergeschichte?

Wenn der Benutzer eine bestimmte Seite/einen bestimmten Bundesstaat nicht markieren kann, sollte dies ein Lesezeichen sein, das ist ein Warnzeichen.

Wenn Sie auch die Zurück-Taste nicht sinnvoll verwenden können, kann dies zu Kummer führen.

+0

"bookmarkability"/"der Zurück-Button" und "zu viel Javascript" schließen sich nicht gegenseitig aus.Sie können mit mehr Javascript gelöst werden :) Aber ernsthaft, überwiegt manchmal der Gewinn von einer beträchtlichen Anstrengung in Javascript den Verlust der Bookmarkfähigkeit. zB Google Maps. –

+0

Sie sind so richtig. Einige Probleme können durch noch mehr JS behoben werden. Google Maps macht das, indem Sie das "Link" -Widget verwenden, wo Sie die aktuelle Ansicht als direkte URL kopieren können. Während ich sehe, dass es in diesem Fall anders nicht möglich ist, sollte es dennoch ein bewusster Kompromiss zwischen Benutzerfreundlichkeit und Leistung sein. –

4

Ich habe nichts dagegen, dass Javascript verwendet wird, solange es keine vertraulichen Informationen preisgibt oder Sicherheitslücken öffnet.

0

Zu viel von allem ist:

Wenn Sie den Code nicht lesen können

Wenn der Benutzer nicht get/Bedarf/wie/etc die UI

Wenn Sie sind Töten Sie alle Server-Seite/Client-Seite Ressourcen, die Sie brauchen

3

Ich würde sagen, dass für jede Technik, wenn Sie ignorieren eine einfachere Methode zur Lösung eines Problems zugunsten alles auf die gleiche Weise zu tun, gibt es einen Versuch Od Chance, du bist vorbei, es zu tun. Eine einfache Möglichkeit, dies zu beweisen, ist es, etwas mehr Zeit zu investieren, um eine Proof-of-Concept-Funktion zu schreiben, ohne die fragliche Methode zu verwenden und zu verfolgen, wie lange Sie benötigen usw. Wenn Sie dasselbe mit Ihrem Proof of Concept erreichen können Wenn Sie dem Benutzer eine geeignete Erfahrung vermitteln, muss sich die Entwicklungsstrategie möglicherweise ändern.

+0

+1 für den direktesten Ansatz. Ich würde hinzufügen, dass es ein Gleichgewicht zwischen der für den Entwickler eingesparten Zeit und der für den Benutzer gesparten Zeit gibt - es ist ein Kompromiss, und irgendwann ist es zu schlecht, zu viel in beide Richtungen zu handeln; und sehr oft ist die optimale Rendite für den Entwickler und den Benutzer ein direkterer Ansatz. Bedenken Sie, dass AJAX hauptsächlich dazu verwendet wird, Browsing-Aktivitäten zu emulieren, aber in einem Browser. Wenn man so viel Redundanz pusht, wird es schnell zum Selbstzerstörer. – zxq9

0

Das hängt davon ab, was für das Projekt ist.

Wer sind die Benutzer? Ist das nur eine innere Sache oder wird es für die Welt offen sein? Erwarten sie eine normale Web-Stil-Schnittstelle? Wird das der Usability des Anblicks in die Quere kommen?

Wie sicher muss es sein? Die Verwendung von Javascript öffnet den Benutzern viele Ihrer Apps, was ein Sicherheitsrisiko darstellen kann.

Kann die typische Benutzermaschine so viel javascript handhaben (ältere Maschinen können mit viel Javascript fast nutzlos sein)?

Es gibt eine Menge Fragen, die beantwortet werden müssen, bevor Sie entscheiden können, wie viel Javascript zu viel ist.

Am Ende wird es am Ende wahrscheinlich durch Tests und Benutzer-Feedback entschieden werden.

+0

zu viele gute Antworten nur eins zu kreuzen. – CountCet

0

Es hängt von einer Reihe von Faktoren ab:

  • Hat das Skript Informationen an den Endverbraucher über das Innenleben Ihrer App offenbaren?
  • Müssen Sie eine Vielzahl von Browsern unterstützen?
  • Müssen Sie mobile Benutzer (oder PDAs) unterstützen?
  • Erzwingen Sie Geschäftslogik mit Javascript?
  • Etc.

(generaly sollte dies auf dem Server durchgeführt werden) Sobald Sie eine Antwort auf diese Fragen haben, ich denke, es ist einfach zu bestimmen, ob Sie ein eine Linie irgendwo oder nicht gekreuzt haben. Vom Standpunkt der Leistung ist es außerdem immer eine gute Sache, die Prozessorlast auf den Client zu verteilen. Die Durchsetzung der clientseitigen Geschäftslogik ist ebenfalls in Ordnung, aber stellen Sie sicher, dass Sie den Server überprüfen.

Hoffe, das hilft.