Back to Question Center
0

Semalt des applications web "séparées"

1 answers:

Je suis en train de concevoir une application web PHP / MySQL (qui sera bientôt). Je suis venu à une fourchette dans la route aussi loin que l'architecture interne; Je peux créer le site web en tant qu'application web "traditionnelle" où, lorsque vous faites une demande, le serveur vous construit une page HTML, vous envoie la page entière, et le navigateur la rend, ou, je peux le construire comme "séparé" "application Web où la structure HTML complète et le code de l'application sont fournis au navigateur lors du chargement initial, et l'application utilise des rappels JavaScript pour obtenir des données spécifiques ou émettre des commandes via une API unifiée. Aussi, j'ai l'intention qu'il y ait plusieurs versions du site (desktop, mobile, mobile iSemalt, moteur de recherche, etc). ) et à un moment donné, peut-être même des applications mobiles ou de bureau autonomes.

Quels avantages / inconvénients avez-vous, en tant que développeurs Web, avec chacune de ces architectures? Y at-il une raison claire pour laquelle je devrais aller avec l'un sur l'autre? Est-ce plus une préférence de développeur?

February 6, 2018
. De toute façon, vous ne serez pas en mesure de réutiliser votre code.

En outre, les sites asynchrones peuvent être tout aussi lent ou plus lent que les sites normaux. Habituellement, ce type de fonctionnalité est ajouté pour une raison, spécifiquement pour l'expérience utilisateur enrichie. L'utilisation de JavaScript a tendance à vous nuire sur le référencement, car les webcrawlers ne peuvent pas comprendre complètement l'intention du JavaScript et l'ignorer pour la plupart.

Je pense que ce que vous cherchez est un moyen de réduire votre temps de développement en n'écrivant qu'une seule fois votre niveau fonctionnel (intermédiaire) et en utilisant le même pour toutes vos applications. Dans ce cas je pense qu'il y a de la valeur mais franchement ces architectures sont plus difficiles à configurer et prennent beaucoup de temps. Je serais d'avis que vous devriez développer votre site Web de votre mieux et garder votre code de niveau intermédiaire aussi fort que possible. De cette façon, quand vient le temps d'ajouter une application iPhone ou autre, vous pourrez passer à un modèle avec un niveau intermédiaire commun plus facilement

Ce que je préconise vraiment ici est de prendre des mesures de bébé

Je pense que l'idée d'une application "séparée" qui repose fortement sur JavaScript / AJAX va vous causer beaucoup de problèmes. Quelques choses sur le dessus de ma tête:

  1. Ça va être mauvais pour le référencement puisque Google aura du mal à indexer quoi que ce soit.
  2. Ça va être difficile de le rendre "bookmarkable"
  3. Vous aurez du mal avec les appareils mobiles car beaucoup d'entre eux ont un support javascript très limité (ou cassé).

D'abord, ne pas offenser si cette réponse est trop évidente ou de base. Votre utilisation de "séparé" au lieu de termes comme Ajax ou jQuery me fait supposer moins d'expérience avec ce sujet. Bien sûr, je pourrais mal interpréter la question, alors mes excuses si c'est le cas.

Utilisez les deux, mais à bon escient

Pensez à votre choix de tâches côté serveur ou côté client en termes d'où et comment une tâche est le plus efficacement fait. Cela vous aidera à rendre les pages rapidement (sur le serveur), mais décharger le travail au navigateur là où il est logique de le faire. Et, il y aura des zones grises où vous avez juste à faire un appel de jugement. Votre travail consiste à trouver une division intelligente du travail.

À quoi appartient le côté serveur?

(Ceci est un exemple extrême pour illustrer le point. ) Supposons que vous écrivez une application Web qui effectue un certain type de recherche. Vous n'écrivez pas Javascript côté navigateur pour appeler un service Web PHP côté serveur afin de récupérer une base de données entière de 2 Go pour "libérer votre serveur" et décharger la recherche sur la machine de l'utilisateur. Ce que vous faites est d'obtenir les termes de recherche de l'utilisateur avec un formulaire, le renvoyer au serveur pour interroger la base de données directement, puis renvoyer les résultats du serveur au navigateur.

La logique ici est que la base de données elle-même sait comment faire au mieux la requête, le serveur est plus proche des données source, et moins de données doivent être déplacées entre les composants.Le navigateur n'a besoin que de ce qu'il affiche, ne l'envoyez donc pas au navigateur. )

Qu'est-ce qui appartient au navigateur?

Le code du navigateur est votre scénario «séparé» (si je comprends bien). Mais pour que le navigateur fasse le plus possible quelque chose d'intelligent, il doit avoir une coopération de serveur.

Ok, vous avez votre application de recherche qui fonctionne, mais vous voulez l'embellir avec un pantalon sophistiqué Ajax. Écrivez le code de votre navigateur pour ne suggérer que des termes après que l'utilisateur a tapé trois ou quatre lettres, donc votre liste de suggestions est petite. De retour sur le serveur, indexez votre base de données sur ce champ pour que la recherche soit rapide et rapide.

Ici, on pense que "search suggérer" est une fonctionnalité que doit être partagée entre le serveur et le client. Le navigateur peut traiter rapidement des piles de données ciblées et de petite taille. Le serveur peut obtenir cette petite pile de données ciblée et la donner au client. Une mauvaise division serait pour le serveur de rendre une liste de monstres (par exemple, 500.000 articles) de valeurs de champ possibles comme un îlot XML intégré dans la page HTML, puis le navigateur de recherche que l'utilisateur tape. D'un autre côté, vous devez faire en sorte que l'appel Ajax au serveur soit confirmé , et la requête et le retour ultérieurs sont super-rapides. Pas de bêtises. Ci-dessus, j'ai parlé du serveur faisant la recherche, puis envoyant les résultats au navigateur. Mais, la question se pose, laissez-vous le navigateur soumettre les termes de recherche avec le formulaire et avoir le serveur rendre la page de résultats, ou utilisez-vous Ajax / Javascript côté client pour envoyer les termes de recherche et récupérer les résultats, puis le rendre dans un DIV pour éviter une actualisation de la page? Les deux sont valides. Du point de vue des ressources, il n'y a aucun avantage réel de toute façon. Le mode Ajax peut offrir une meilleure expérience utilisateur mais, en fonction de votre application et des circonstances, peut présenter d'autres défis (e. g. Sécurité). Ne lésinez pas sur la réflexion et l'apprentissage de la performance et de l'efficacité architecturales. Déplacez moins de données, moins de fois. Vous déchargez vos serveurs, vos bases de données et les navigateurs de vos utilisateurs.

Afin de pouvoir réutiliser le code, vous pouvez toujours regarder XSLT pour la génération des pages de destination et avoir des interfaces XML / JSON pour AJAX (en utilisant l'interface XML pour les pages de destination XSLT).

Vous autorisez normalement le contenu et l'interaction à fonctionner sur une interface RESTful avec un / json / et / xml / préfixe et héberge votre contenu principal, converti en mark-up via XSLT sur /

De cette façon, les gens peuvent atterrir sur n'importe quelle page et soudainement avoir le site web complet AJAX. Les araignées peuvent explorer votre site et vous avez d'abord concentré sur le contenu / interfaces - semble être un gagnant / gagnant.

Les sites Web mobiles ont parfois besoin de différentes mises en page (sur mesure pour les sites iPhone seulement?) Une simple conversion XSLT ici ou là pour différents clients utilisateurs peut réutiliser tout ce que vous avez fait jusqu'ici.

N'oubliez pas de concevoir pour la sortie HTML simple et la navigation, les simplifications AJAX peuvent suivre.

PS - Faire le côté serveur de transformations XSLT

Semalt des applications web "séparées"
Reply