En règle générale, lorsque j'assemble des balises HTML générées de manière dynamique, j'utilise PHP pour stocker les informations, puis en boucle pour créer des éléments sur la page. Un exemple est la navigation; créez un tableau d'objets, puis passez-les en boucle pour faire écho au balisage. Cela aide beaucoup lorsque je dois effectuer des modifications mineures (ou majeures) au cours du développement ou de la maintenance.
Dernièrement, je me demandais si je devrais utiliser JavaScript pour le faire à la place. Même principe, mais en utilisant addElement.
Je voulais juste avoir des opinions à ce sujet; avantages, inconvénients, php vs js, considérations de référencement, etc.
Merci les gars!
Faire cela côté client signifie:
Lorsque vous décidez si vous devez faire quelque chose côté client plutôt que côté serveur, en règle générale, posez-vous deux questions:
Ce n'est pas l'un ou l'autre type de situation; En règle générale, vous devrez faire les deux.
Faire cela côté client sera probablement plus lent, car le serveur doit encore récupérer toutes les données mais le client doit les restituer; cela impliquera plusieurs requêtes (le plus probable) et la manipulation du DOM est lente (surtout sur les anciens navigateurs).
La meilleure pratique serait de produire tout balisage nécessaire côté serveur. Les raisons pour cela incluent:
SEO: La plupart des robots d'exploration n'analyseront pas le langage Javascript, ils ignoreront donc tout élément crucial généré par addElement.
Accessibilité: Votre site devrait en principe fonctionner sans Javascript. Considérez les personnes qui pourraient consulter votre site sur Kindles, les Blackberry plus âgés, les Nokias ou d’autres téléphones avec données. Ils n'ont pas besoin de tous les styles et effets sophistiqués, mais ils devraient au moins pouvoir se déplacer sur votre site.
Cohérence: JS peut ajouter un autre niveau de variabilité entre les navigateurs. Pourquoi compter sur le rendu côté client du balisage nécessaire? Faites-le côté serveur.
Bien entendu, ce conseil peut être suivi à la lettre si vous développez une application de bureau entièrement JS ou utilisez quelque chose comme le Sencha Touch framework.
Si le référencement vous intéresse, les choses sont simples: JS n'est pas indexé.
Il existe également des problèmes d'interface utilisateur: si JS n'est pas activé, aucun élément dépendant de JS ne sera chargé.
Une possibilité serait de détecter quel type d’utilisateur visualise votre site:
Si c'est un bot: analyse côté serveur, vous pouvez simplement sortir ce dont il a besoin, sans éléments graphiques, ...
Si c'est un mobile: affichez une version optimisée pour mobile, en utilisant quelque chose comme Sencha Touch, comme Charlie l'a souligné
Si c'est un navigateur standard, sans javascript: restituer la page côté serveur
Si c'est un navigateur standard, si javascript est activé: il suffit d'envoyer les données du côté serveur (ou de les charger avec Ajax) et de restituer les données depuis le côté client
Vous pouvez utiliser quelque chose comme Moustache , qui est un moteur de template fonctionnant sur de nombreux langages côté serveur (PHP, Ruby, Java, ... mais aussi sur Javascript, permettant le rendu de page côté client!
Et essayez d’utiliser un framework Javascript comme jQuery , Mootools , Dojo ou ExtJS , ils vous aideront à écrire du code pouvant s’exécuter sur tous les navigateurs.
PHP est utile pour certaines choses, y compris la modélisation de type de guidon et le remplacement rapide du contenu côté serveur. Mais ce n’est pas non plus idéal pour certaines choses, comme les applications à page unique et les jeux, les mises à jour en temps réel des sites Web. Ces choses sont où JavaScript est fort.