Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1437 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Question de débutant en Ajax

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question de débutant en Ajax

n°2014357
tony1232
Posté le 05-08-2010 à 09:16:29  profilanswer
 

Bonjour tout le monde,  
 
Etant actuellement en stage, et ayant pour sujet le développement d'un système de gestion de plannings, j'utilise la technologie Ajax.  
J'ai donc une page principale, avec un menu contenant 4 liens, chacun vers un "module" différent qui permet d'afficher les plannings pour le premier, les utilisateurs pour le deuxième, etc.  
Le clic sur un des liens permet à la partie de droite de la page de disparaitre en fondu, de charger le module demandé (récupération du code avec Ajax), et de le faire apparaître aussi en fondu. Cette partie-là fonctionne très bien.  
Sauf que je suis maintenant confronté à un petit problème :
 
Chaque module utilisera lui aussi plusieurs appels Ajax. Dois-je donc importer obligatoirement TOUS les javascripts de TOUS les modules dès le départ, ou est-il possible par exemple lorsque je charge le module "plannings" d'importer le fichier plannings.js, de changer celui-ci lorsque je charge un autre module, etc ???
 
Je ne sais pas si c'est très clair mais je pense que votre aide va m'être précieuse ^^
 
 
Merci d'avance :p

mood
Publicité
Posté le 05-08-2010 à 09:16:29  profilanswer
 

n°2014415
gelatine_v​elue
Posté le 05-08-2010 à 11:47:01  profilanswer
 

Il est possible de charger du javascript dynamiquement, afin d'éviter de le faire dès le départ.
 
Je te conseillerais une librairie comme dojo ou jquery qui ont des fonctions prenant en paramètre un fichier js et qui le chargent en mémoire.

n°2014487
tony1232
Posté le 05-08-2010 à 14:31:04  profilanswer
 

La fonction load() de jQuery peut-elle servir à ça ?

n°2014564
lasnoufle
La seule et unique!
Posté le 05-08-2010 à 16:28:06  profilanswer
 

tony1232 a écrit :

La fonction load() de jQuery peut-elle servir à ça ?


http://api.jquery.com/load-event/  :??:  
Visiblement non.
 
Ca par contre ca y ressemble bien:
http://api.jquery.com/jQuery.getScript/


---------------
C'était vraiment très intéressant.
n°2014573
Paulp
~, sweet ~
Posté le 05-08-2010 à 16:40:37  profilanswer
 

Une balise script chargée en ajax et insérée dans la page entraînera le chargement du script, comme sur une page chargée normalement.

 

Mais je ne procéderai pas comme ça.

 

En gros, je chargerai tout dans la page principale, dans un certain ordre

 
Code :
  1. <html>
  2. <head>
  3. ...
  4. <!-- Les scripts super importants pour le fonctionnement immédiat de l'application, genre jquery.min.js -->
  5. <script />
  6. </head>
  7. <body>
  8. Le menu, la page par défaut, etc ...
  9. ...
  10. <!-- Les scripts à charger après, qui ne sont utilisés que dans les modules -->
  11. <script/>
  12. </body>
  13. </html>


Comme ça, à l'ouverture d'un module, les scripts nécessaires sont déjà chargés, mais ils ne ralentissent pas le chargement de la page principale

Message cité 1 fois
Message édité par Paulp le 05-08-2010 à 16:41:02
n°2014605
lasnoufle
La seule et unique!
Posté le 05-08-2010 à 18:00:34  profilanswer
 

Paulp a écrit :

Comme ça, à l'ouverture d'un module, les scripts nécessaires sont déjà chargés, mais ils ne ralentissent pas le chargement de la page principale


Effectivement, ca marchera. De toutes facons, si ses scripts ne sont pas trop lourds, autant tous les mettre directement dans le <head> et basta...
Cependant, trois remarques sur ta solution:
- si je ne m'abuse, c'est pas W3C-compliant, il me semble que seul <head> peut contenir des scripts, meme si en pratique la plupart des browsers les acceptent ailleurs,
- pour bosser sur une appli web très lourde en scripts, et utilisant une stratégie similaire, je peux te garantir que meme si elle est chargée, la page est beaucoup moins réactive tant que la totalité des scripts n'est pas chargée,
- la particularité du loading "dynamique" fait que tu ne chargeras les scripts que lorsque tu en auras besoin, donc si sur une "session" tu n'utilises pas toutes les fonctionnalités, tu as "sauvé" de la bande passante et/ou du temps de traitement. Bon OK, ca sera rarement conséquent, mais encore pour l'exemple, mon appli lourde sus-citée était inutilisable en l'état sur un smartphone (plusieurs minutes pour se charger!), alors que le chargement des scripts "on-demand" rend le tout utilisable (meme si tu as un peu de freeze / page très peu réactive lorsque tu actives une fonctionnalité pas encore chargée).
 
Enfin bref, pour le problème de tony1232, à mon avis il n'y a aucune contre-indication à mettre tous les scripts directement dans le <head>...


---------------
C'était vraiment très intéressant.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Question de débutant en Ajax

 

Sujets relatifs
question de designquestion sur static et multithread
question sur les char *Pas de mouseover avec les ModalPopupExtender d'Ajax.
Prototype Ajax.PeriodicalUpdaterune question de closeCursor ?
Question sur les autotoolsProblème d'affichage d'image avec imagepng (débutant)
[struts] question bête sur action 
Plus de sujets relatifs à : Question de débutant en Ajax


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR