J'ai fait quelques projets web, et la plupart des difficultés que j'ai rencontré (les questions, les confusions) peut être trouvé avec de l'aide. Mais j'ai encore une question importante, même après avoir posé des développeurs expérimentés: Lorsque la fonctionnalité peut être mis en œuvre à la fois avec le code côté serveur et côté client de script (JavaScript), dont l'une doit être préféré?
Un exemple simple:
Pour effectuer le rendu d'une page html dynamique, je peux le format de la page dans le code côté serveur (PHP, python) et l'utilisation d'Ajax pour récupérer la page mise en forme et de les rendre directement (plus logique sur le serveur-côté, moins sur le côté client).
Je peux aussi utiliser de l'Ajax pour récupérer les données (non formaté, JSON) et utiliser un script côté client pour le format de la page et la rendre avec plus de traitement (le serveur reçoit les données à partir d'une base ou d'une autre source, et la renvoie au client avec JSON ou XML. De plus logique sur le côté client et moins sur le serveur).
Alors, comment puis-je décider lequel est le mieux? Ce qui une offre de meilleures performances? Pourquoi? Lequel est le plus facile à utiliser?
Je me demandais, avec des navigateurs JS moteurs de l'évolution, JS peut être interprété en moins de temps. Dois-je donc préfèrent les scripts côté client?
Je me demande aussi, avec le matériel évolue, les performances du serveur augmentera le coût sera de diminuer, donc si je préfère de script côté serveur?
EDIT:
Avec les réponses, je veux donner un bref résumé.
Les Pros du côté client:
- meilleure expérience utilisateur
- économiser de la bande passante du réseau (diminution des coûts)
- évolutivité (boom de PVs, la croissance n'augmente pas autant que le côté serveur logique)
Les Pros du côté serveur:
- les questions de sécurité
- amélioration de la disponibilité et de l'accessibilité (appareil mobile, les anciens navigateurs, SEO)
- développez facilement(on peut ajouter d'autres serveurs, mais nous ne pouvons pas rendre le navigateur plus rapide)
Il semble que nous avons besoin d'un équilibre entre ces deux approches face à un scénario spécifique. Mais comment? Quelle est la meilleure pratique?
IMO, je vais utiliser côté client, la logique à l'exception des conditions suivantes:
- de sécurité critique
- des groupes spéciaux (désactivé JavaScript, des appareils mobiles, et autres)