Loader de méthodes/classes Javascript - HTML/CSS - Programmation
Marsh Posté le 24-05-2007 à 23:19:46
url ?
Marsh Posté le 25-05-2007 à 03:48:01
Ca m'a lair un peu con comme process. C'est l'interêt des lib modulables. Tu vas pas par exemple t'amuser à charger scriptculous en entier quand tu te sert juste de deux pauvres effets.
Marsh Posté le 25-05-2007 à 09:31:41
la seule façon de "loader dynamiquement" du js dans un page c'est:
Code :
|
shinuza> c'est pas "forcément" con... Admettons que sur la page d'accueil il y ait 2 effets qui servent 95% du temps, et 30 autres qui servent 5% du temps. ça sert à rien de loader tout ça à chaque fois
Marsh Posté le 25-05-2007 à 14:03:42
Oui, c'est ce que je disais
Marsh Posté le 25-05-2007 à 19:38:58
jagstang a écrit : url ? |
Pas d'url, ce sont les portails d'une entreprise
Et s'ils sont chargés tous au début, c'est effectivement pour ne pas charger les scripts js à longueur de journée, dès qu'on ouvre les même pages.
Shinuza >> lorsque tu parles de lib modulables, c'est quoi exactement ? Car en fait, ce que je voudrais trouver, c'est de faire une opération pour ne charger que les méthodes utilisées, et non toutes les méthodes d'une classe. Ou alors, pouvoir charger tous les scripts mais beaucoup plus rapidement. Car la c'est très long au début.
Marsh Posté le 25-05-2007 à 19:46:43
tant pis
edit : 20 secondes j'aimerais bien voir ça
Marsh Posté le 25-05-2007 à 20:06:32
anapajari a écrit : la seule façon de "loader dynamiquement" du js dans un page c'est:
|
Euh... non, pas vraiment
Marsh Posté le 25-05-2007 à 20:29:19
4bis a écrit : Pas d'url, ce sont les portails d'une entreprise |
Perso j'utilise un truc comme ça :
Code :
|
Du coup je peux regrouper toutes mes méthodes privées dans des objets, et j'étant un gros objets à la volée, le but étant de regrouper les méthodes similaires dans un seul objet avec un nom explicite. Du coup je sais ce qui va me servrir et ce qui sera inutile, je peux choisir les méthodes/fichiers que je veux inclure, donc je vais pas accrocher des méthodes inutile sur mon objet.
Autrement à part des fichiers séparés je vois pas comment tu peux cibler des méthodes.
gizmo a écrit : Euh... non, pas vraiment |
J'aimerais bien voir un contre exemple
Marsh Posté le 25-05-2007 à 21:45:21
ReplyMarsh Posté le 25-05-2007 à 22:12:30
gizmo a écrit : Tu appeles ton JS via XHR et tu fais un eval dessus. |
Je vais juste te permettre de te culturer un peu, eval accède directement à l'interpreteur, y'a rien de plus mauvais dans un soft.
Donc tes techniques moisies, tu te les garde merci.
Marsh Posté le 25-05-2007 à 22:20:51
Est-ce que le fait que le JS venait du même site et fonctionnait avant d'avoir été séparé pour diminuer le chargement de la page t'es venu à l'idée avant de poster ta connerie ou pas?
Je sais très bien que le eval est a utiliser avec beacoup de parcimonie, mais dans ce cas-ci, c'est justement l'une des rares utilisation qui en vaut la peine, avec le JSON (une fois les evenutelles fonctions retirée au besoin)
Marsh Posté le 25-05-2007 à 22:34:41
Et ca change quoi au fait que "eval is evil"? Cites moi un seul language ou eval n'est pas déprécié?
La technique d'anaj est très correcte et permet de faire la même chose sans eval et sans XHR, donc la connerie émane plutot de ton post
Marsh Posté le 25-05-2007 à 22:42:51
Shinuza a écrit : Et ca change quoi au fait que "eval is evil"? |
C'est bien, t'as bien appris ton catéchisme. Maintenant tu allumes ton cerveau et tu relis ce que j'ai écrit.
Shinuza a écrit : Cites moi un seul language ou eval n'est pas déprécié? |
Perl? (c'est le premier qui m'est venu à l'esprit ) Et il y en a d'autre. C'est pas parce qu'une fonction permet tous les excès qu'il ne faut pas l'utiliser si c'est en connaissance de cause et dans un cadre bie défini.
Shinuza a écrit : La technique d'anaj est très correcte et permet de faire la même chose sans eval et sans XHR, donc la connerie émane plutot de ton post |
C'est sur que le document.write est applaudi par tous les gens qui prèche le "eval is evil"
Marsh Posté le 25-05-2007 à 23:18:17
gizmo a écrit : Perl? (c'est le premier qui m'est venu à l'esprit ) Et il y en a d'autre. C'est pas parce qu'une fonction permet tous les excès qu'il ne faut pas l'utiliser si c'est en connaissance de cause et dans un cadre bie défini. |
La fonction eval en perl est directement assimilée au language, elle sert même pour gérer les exceptions
gizmo a écrit : C'est sur que le document.write est applaudi par tous les gens qui prèche le "eval is evil" |
Document write écrit dans le node parent de l'élement appelant. Big deal.
Je connais pas beaucoup de lib qui utilise ta "technique" pour moduler
Marsh Posté le 25-05-2007 à 23:24:43
Bon, puisque visiblement ca fait pas tilt dans le grand espace vide qui te sert de boite cranienne, on va essayer autrement...
Tu fais ton document.write(), et en backend, il se passe quoi de plus qu'un chargement plus eval? RIEN, NIXT, NADA, QUEDAL!!! T'as pas un poil de pet de vérification en plus, par contre comme side effect, tu modifies ton DOM.
A côté, avec ma technique, je peux:
* Executer un effet visuel en attendant que le téléchargement/évaluation soit terminé. Pour le ressenti de l'utilisateur c'est important
* Vérifier que le serveur ne m'a pas envoyer chier, et le cas échant, choisir de désactiver les fonctions dépendantes du module, prévenir l'utilisateur, voire retenter le chargement ultérieurment
Et pour conclure, une des extensions de jQuery permet de faire cela.
Marsh Posté le 25-05-2007 à 23:54:15
-Ton premier point est accessible quelque soit la technique employée.
-Pareil pour le deuxième point et la desactivation des fonctions associées, aussi, j'aime bien ta conception du web, c'est genre la loterie pour accèder à un fichier
Sinon, je pense que ana parlais de technique "propre", lorsqu'il à dit "la seule"
Marsh Posté le 26-05-2007 à 00:00:49
Bon laisse tomber, t'as raison, le web, c'est super, y a jamais de hit miss, y a jamais de serveur surchargé, etc... Et c'est tellement plus pratique de faire un document.write et puis de devoir jouer a coup de timeout parce que le telechargement est fait dans un autre thread.
Marsh Posté le 26-05-2007 à 00:07:47
Exactement la technique à laquelle je pensais
Marsh Posté le 26-05-2007 à 00:19:17
J'oubliais, on utilise juste document.write() car safari 2.0 se pète la gueule si on passe par le dom pour inserer un script.
Marsh Posté le 24-05-2007 à 19:57:03
Bonjour à tous,
Je suis en ce moment dans une boite qui utilises pour un portail essentiellement du javascript. Pour des problèmes de performance, et à cause de l'utilisation de plusieurs frames, ils doivent charger toutes les classes javascript utilisées dès l'ouverture du portail (cela prend déjà environ 20secondes).
Comme vous l'avez compris, niveau perf, c'est pas terrible, surtout que dans les classes, toutes les méthodes ne sont pas forcément utilisées. J'aimerais donc savoir s'il y a moyen d'accelerer le processus (par exemple ne charger que les méthodes utilisées), avec bien sur un souci de ne pas multiplier les classes (car certaines méthodes sont génériques à plusieurs portails).
Si vous avez des idées, je suis preneur