2016-09-06 6 views
-3

Wir alle wissen, dass Ajax-Anfragen sehr bequem sein können, wenn wir durch eine Website navigieren wollen, ohne die Seite jedes Mal neu zu laden. Aber ich frage mich, ist Ajax sogar notwendig? Nehmen wir an, ich habe ein SPA mit 3 Tabs als Navbar. Jede der Registerkarten sollte nach dem Klicken auf den Hauptteil der Seite einen anderen Inhalt anzeigen. Was verhindert, dass ich das gesamte Seiten-Markup für alle drei Tabs rendere und jeden Tab-Body unsichtbar mache. Dann, abhängig davon, welcher Tab angeklickt wird, zeige ich diesen Tabkörper an und verstecke den aktuellen (falls vorhanden). Ich verstehe, dass dies sehr schlecht wäre in Bezug auf eine klare Ressource für jeden Tab-Inhalt, aber ich würde das auch nicht mit Ajax haben? Nehmen wir an, dass der Body-Inhalt kein schwerer Inhalt ist, der schnell geladen werden kann und beim ersten Laden nicht ewig dauert. Weiter möchte ich hinzufügen, dass keine POST oder zusätzliche Anfragen beteiligt sind. Der Benutzer kann nicht interagieren, anstatt GETs zum Inhalt zu machen.Ist es eine schlechte Übung HTML-Inhalte über die Sichtbarkeit zu ändern statt Ajax

Ich hoffe, das macht Sinn. Was ist der Vorteil von Ajax hier, nur um Inhalt mit JS anzuzeigen/zu verbergen?

+0

Seine gute Praxis. Fragen Sie sich immer, ob dadurch der Seitenaufruf für den Benutzer schneller wird. Laden Sie nicht 20 MB Inhalte vor. Hier sind einige weitere Ideen: https://developers.google.com/speed/docs/insights/rules – C14L

+2

schlechte Praxis? gute Übung? weder. Es ist eine Entscheidung, die Sie basierend auf Ihren Bedürfnissen, Ihrer Zielgruppe und der Größe Ihrer Inhalte treffen müssen. –

Antwort

1

Ajax ist für viel mehr als nur SPA-Rendering. Das ist nur ein winziger Nutzen. Was ist, wenn neuer Inhalt von einem Benutzer veröffentlicht wird? Nun, es kann alles ohne eine Seitenaktualisierung behandelt werden. Wie wird dieses Update überall anders gesehen, ohne Seitenaktualisierung? Ajax. Um es einfach auszudrücken, alles auf einmal zu rendern, wie Sie sagen, ist alles gut ... bis neue Daten durchkommen. Das ist immer noch nur ein Grund.

Was ist, wenn ein Benutzer nicht einen anderen "Tab" sehen muss? Es ist Zeit verschwendet, es zu rendern. Also render es nur auf Anfrage.

Wie Sie im Kommentar gesagt haben, bedeutet Ihre spezifische Situation vielleicht, dass AJAX wenig nutzt. Es ist wirklich keine Frage der guten Praxis. Es ist eine Frage, brauche ich es.

+0

Ich stimme Ihren Punkten zu, aber ich spreche wirklich über diesen speziellen Fall, dass kein Inhalt dynamisch ist, und nichts mehr als Anfragen sind beteiligt. – supersize

1

Es hängt davon ab, wie viel Inhalt in den anderen beiden Registerkarten versteckt ist. Wie sicher sind Sie, dass Ihr SPA nur aus 3 Tabs besteht? Oder dass die Registerkarten bestimmte Datenmengen enthalten?

Wenn es nur ein wenig Text und Sie sind sicher, es wird nicht viel zu viel später dann könnte es besser aus alle gleichzeitig geladen werden und schaltet bei Klick auf Registerkarte.

Stellen Sie außerdem sicher, dass die Tags img nicht mit dem Attribut src versehen sind, während sie ausgeblendet sind, da Ihr Browser sie vorher anfordert. Weisen Sie das Attribut src zu, nachdem Sie auf die Registerkarte geklickt haben.

So lange Sie sicher sind, dass Sie kleine Datenmengen in Ihren Tabs haben, keine neuen Inhalte vom Server benötigen und die Bilder vor dem Anzeigen der Registerkarte nicht laden. Ich denke, ajax load ist nicht notwendig. Ein einfaches FadeToggle sollte ausreichen. Dies führt zu einer besseren Benutzererfahrung.

Verwandte Themen