08-02-2014, 11:54 AM
Bonjour Sephi,
Merci pour ta réponse. J'avais déjà pensé utiliser ce type de mécanisme en analysant le user-agent en cherchant un peu sur stackoverflow, c'est ce que la majorité des gens font en chargeant des templates avec une extension différente pour chaque type de plateforme supportée, je sais que je dois continuer dans cette voie.
Ma question portait également sur le côté architecture entre la version 3D/Ajax et les versions de navigation classique. Pour les vues, ok pas de soucis on peut utiliser le user-agent. Mais pour les parties du code similaires entre les call Ajax et le call HTTP ... Pour le moment, je duplique les controllers dans chaque bundle : je fais un AjaxController et un MonBundleController qui sont presque identiques, sauf pour la gestion de fin de méthode, retourne un code d'erreur pour Ajax ou forward de la request dans le cas de la navigation classique. C'est dans cette partie de ma question initiale que j'attends le plus de retour, car je ne pense pas que ce soit la meilleur façon de faire, hélas j'ai pas trouvé mieux pour l'instant.
Un cas d'utilisation simple : Le joueur veut modifier sa production.
Sur l'interface classique, c'est simplement un formulaire, une soumission sur un controller, et une modification de la production avec un message de confirmation après redirection.
Sur l'interface 3D, je bloque la soumission via JS, et au je fais un call post avec jQuery sur le controllerAjax/REST, qui fait exactement le même travail sauf qu'il renvoie un code d'erreur. En fonction du code, je fais une alert Bootstrap différente.
Un autre cas d'utilisation : Le joueur développe un niveau de bâtiment.
Sur l'interface classique, même fonctionnement si ce n'est qu'à la redirection, il y a rafraichissement des listes de constructions et le bâtiment en construction est affiché.
Sur l'interface 3D, je bloque le onclick sur les liens, et même fonctionnement, je fais un call sur le ControllerAjax/REST qui renvoie un code d'erreur. Mais ici, il faut en plus rajouter le bâtiment dans les listes de construction en plus si la construction a été acceptée, ce qui équivaut à un deuxième call pour récupérer une liste, parsée selon un certain template pour ajouter l'HTML produit à la page. Pour le moment, je fais un .html() en jQuery sur le div des listes pour ajouter le contenu de la liste reçue par le call, mais je doute que ce soit une façon optimisée de faire. Mais je suis obligé pour obtenir le template de la liste ...
Une meilleure idée ?
Merci pour ta réponse. J'avais déjà pensé utiliser ce type de mécanisme en analysant le user-agent en cherchant un peu sur stackoverflow, c'est ce que la majorité des gens font en chargeant des templates avec une extension différente pour chaque type de plateforme supportée, je sais que je dois continuer dans cette voie.
Ma question portait également sur le côté architecture entre la version 3D/Ajax et les versions de navigation classique. Pour les vues, ok pas de soucis on peut utiliser le user-agent. Mais pour les parties du code similaires entre les call Ajax et le call HTTP ... Pour le moment, je duplique les controllers dans chaque bundle : je fais un AjaxController et un MonBundleController qui sont presque identiques, sauf pour la gestion de fin de méthode, retourne un code d'erreur pour Ajax ou forward de la request dans le cas de la navigation classique. C'est dans cette partie de ma question initiale que j'attends le plus de retour, car je ne pense pas que ce soit la meilleur façon de faire, hélas j'ai pas trouvé mieux pour l'instant.
Un cas d'utilisation simple : Le joueur veut modifier sa production.
Sur l'interface classique, c'est simplement un formulaire, une soumission sur un controller, et une modification de la production avec un message de confirmation après redirection.
Sur l'interface 3D, je bloque la soumission via JS, et au je fais un call post avec jQuery sur le controllerAjax/REST, qui fait exactement le même travail sauf qu'il renvoie un code d'erreur. En fonction du code, je fais une alert Bootstrap différente.
Un autre cas d'utilisation : Le joueur développe un niveau de bâtiment.
Sur l'interface classique, même fonctionnement si ce n'est qu'à la redirection, il y a rafraichissement des listes de constructions et le bâtiment en construction est affiché.
Sur l'interface 3D, je bloque le onclick sur les liens, et même fonctionnement, je fais un call sur le ControllerAjax/REST qui renvoie un code d'erreur. Mais ici, il faut en plus rajouter le bâtiment dans les listes de construction en plus si la construction a été acceptée, ce qui équivaut à un deuxième call pour récupérer une liste, parsée selon un certain template pour ajouter l'HTML produit à la page. Pour le moment, je fais un .html() en jQuery sur le div des listes pour ajouter le contenu de la liste reçue par le call, mais je doute que ce soit une façon optimisée de faire. Mais je suis obligé pour obtenir le template de la liste ...
Une meilleure idée ?
Owl Vision - Agence de dévelppement d'applications de réalité virtuelle et augmentée