OVH Cloud OVH Cloud

Comment créer une librairie de scripts ?

19 réponses
Avatar
JyM
Bonjour au groupe

J'ai créé un site avec un certain nombre de pages qui utilisent à peu près
toutes les mêmes scripts.

- Comment créer une librairie ? Faut il un programme spécial ?
- Y a-t-'il un ordre particulier qui accélère l'exécution des fonctions ?
(par ex. les fonctions les + utilisées en tête).
- Les fonctions de la librairie sont-elles appelées 1 par 1, ou toute la
librairie est elle chargée pour utiliser une fonction ?
- Comment sont passés les arguments des fonctions ?
- Et finalement y-a-t-il un site qui réponde à ttes ces questions??

Merci

10 réponses

1 2
Avatar
ASM
Bonjour au groupe

J'ai créé un site avec un certain nombre de pages qui utilisent à peu près
toutes les mêmes scripts.

- Comment créer une librairie ? Faut il un programme spécial ?


non, seulement copier les fonctions dans un fichier texte
qui sera suffixé en *.js
(attention ! il ne faut pas les balises javascript !)

- Y a-t-'il un ordre particulier qui accélère l'exécution des fonctions ?
(par ex. les fonctions les + utilisées en tête).


aucune importance
un ordre logique est mieux pour s'y retrouver soi-même

- Les fonctions de la librairie sont-elles appelées 1 par 1, ou toute la
librairie est elle chargée pour utiliser une fonction ?


tout ce nouveau fichier est appelé en entier
mais il n'est chargé qu'à la première page
les pages suivantes se servant de la copie en cache

On peut en faire 1 ou 2 ou 3
et chaque page devant charger ceux qu'elle a besoin

- Comment sont passés les arguments des fonctions ?


de la même manière que tu le fais déjà ? !
c'est un peu comme si tout ce qui est dans ce fichier
était sur ta page

- Et finalement y-a-t-il un site qui réponde à ttes ces questions??


pour accéder à ce fichier externe (mes_fonctions.js)
on met sur la page html :

<script src="mes_fonctions.js" type="text/javascript"></script>

de préférence dans le head

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
JyM
Super, ça répond à toutes mes questions.
Merci...

"ASM" a écrit dans le message
de news: 43b113a5$0$18325$
Bonjour au groupe

J'ai créé un site avec un certain nombre de pages qui utilisent à peu
près toutes les mêmes scripts.

- Comment créer une librairie ? Faut il un programme spécial ?


non, seulement copier les fonctions dans un fichier texte
qui sera suffixé en *.js
(attention ! il ne faut pas les balises javascript !)

- Y a-t-'il un ordre particulier qui accélère l'exécution des fonctions ?
(par ex. les fonctions les + utilisées en tête).


aucune importance
un ordre logique est mieux pour s'y retrouver soi-même

- Les fonctions de la librairie sont-elles appelées 1 par 1, ou toute la
librairie est elle chargée pour utiliser une fonction ?


tout ce nouveau fichier est appelé en entier
mais il n'est chargé qu'à la première page
les pages suivantes se servant de la copie en cache

On peut en faire 1 ou 2 ou 3
et chaque page devant charger ceux qu'elle a besoin

- Comment sont passés les arguments des fonctions ?


de la même manière que tu le fais déjà ? !
c'est un peu comme si tout ce qui est dans ce fichier
était sur ta page

- Et finalement y-a-t-il un site qui réponde à ttes ces questions??


pour accéder à ce fichier externe (mes_fonctions.js)
on met sur la page html :

<script src="mes_fonctions.js" type="text/javascript"></script>

de préférence dans le head

--
Stephane Moriaux et son [moins] vieux Mac



Avatar
JyM
Petit souci cependant = ça marche pas.

J'ai dans l'en-tete de ma page le code suivant:

<script language="JavaScript">
<script src="scripts/scripts_jym.js" type="text/javascript"></script>
</head>

Y a t-il une erreur ?? C'est quoi text/javascript ?

Merci


"JyM" a écrit dans le message de news:
43b0e287$0$11350$
Bonjour au groupe

J'ai créé un site avec un certain nombre de pages qui utilisent à peu près
toutes les mêmes scripts.

- Comment créer une librairie ? Faut il un programme spécial ?
- Y a-t-'il un ordre particulier qui accélère l'exécution des fonctions ?
(par ex. les fonctions les + utilisées en tête).
- Les fonctions de la librairie sont-elles appelées 1 par 1, ou toute la
librairie est elle chargée pour utiliser une fonction ?
- Comment sont passés les arguments des fonctions ?
- Et finalement y-a-t-il un site qui réponde à ttes ces questions??

Merci



Avatar
CrazyCat
JyM wrote:
Petit souci cependant = ça marche pas.
J'ai dans l'en-tete de ma page le code suivant:
<script language="JavaScript">
<script src="scripts/scripts_jym.js" type="text/javascript"></script>
</head>
Y a t-il une erreur ?? C'est quoi text/javascript ?


il y a une balise en trop:
<script language="javascript" type="text/javascript"
src="scripts/scripts_jym.js"></script>
</head>

text/javascript = type MIME

--
Aide informatique: http://help-info.forumactif.com
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.crazy-irc.net

Avatar
JyM
Merci....

"CrazyCat" a écrit dans le message de news:
dorhd0$19i$
JyM wrote:
Petit souci cependant = ça marche pas.
J'ai dans l'en-tete de ma page le code suivant:
<script language="JavaScript">
<script src="scripts/scripts_jym.js" type="text/javascript"></script>
</head>
Y a t-il une erreur ?? C'est quoi text/javascript ?


il y a une balise en trop:
<script language="javascript" type="text/javascript"
src="scripts/scripts_jym.js"></script>
</head>

text/javascript = type MIME

--
Aide informatique: http://help-info.forumactif.com
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.crazy-irc.net



Avatar
zwetan
salut,

"JyM" wrote:
J'ai créé un site avec un certain nombre de pages qui utilisent à peu près
toutes les mêmes scripts.

- Comment créer une librairie ? Faut il un programme spécial ?


pas miequx que ce que dit ASM

si tu veux un programme special pour t'aider a faire cela
tu peux voir mon outil de build Milk
http://www.burrrn.com/projects/Milk.html

bon toute la doc est en anglais mais si ca ne te rebiffe pas
cet outil devrait pouvoir te faire gagner pas mal de temps ;)

[snip]
- Et finalement y-a-t-il un site qui réponde à ttes ces questions??



dans le wiki http://live.burrrn.com/
je detail le processus de build de mes librairies
http://live.burrrn.com/wiki/ProjectOrganization#Projectlayout
http://live.burrrn.com/wiki/Milk
http://live.burrrn.com/wiki/Milk/configFile
http://live.burrrn.com/wiki/HowToBuild
etc..

ce n'est que ma maniere de faire mais idem si l'anglais ne te rebute pas
tu peux voir des exemples dans le code sources de core2, ASTUce, etc.

les options qui devraient t'interesser sont
config.actions.generateRelease = true;
config.actions.combineAll = true;
config.actions.removeComments = true;
config.format.removeEmptyLines = true;
etc.

je suis bien sur ouvert a tous commentaires pour ameliorer/ajouter des
features

bonne fin d'année a tous :)

zwetan

Avatar
Thibaut Allender
<script language="javascript" type="text/javascript"
src="scripts/scripts_jym.js"></script>
</head>


language="javascript" est obsolète

NB pour JyM : http://www.giromini.org/usenet-fr/repondre.html

--
thibaut allender | http://capsule.org | http://photo.capsule.org

Avatar
Jean-Marc MOLINA
Thibaut Allender wrote:
language="javascript" est obsolète


L'élément SCRIPT, les types MIME... tout est expliqué dans la section "The
SCRIPT element"
(http://www.w3.org/TR/html4/interact/scripts.html#edef-SCRIPT) de la
spécification HTML. Suivre ses explications quand on débute est un très bon
exercice car cela évite de faire des erreurs et surtout d'écrire du
"Deprecated" code. La chose à ne pas faire c'est de prendre du code qu'on
trouve sur le Web pour bon alors qu'il est obsolète, ce qui est le cas la
majorité du temps, et je suis optimiste :).

Avatar
Jean-Marc MOLINA
JyM wrote:
- Comment créer une librairie ? Faut il un programme spécial ?


On parle de bibliothèque, "librairie" ne veut rien dire. C'est un abus de
langage.

- Y a-t-'il un ordre particulier qui accélère l'exécution des
fonctions ? (par ex. les fonctions les + utilisées en tête).
- Les fonctions de la librairie sont-elles appelées 1 par 1, ou toute
la librairie est elle chargée pour utiliser une fonction ?
- Comment sont passés les arguments des fonctions ?
- Et finalement y-a-t-il un site qui réponde à ttes ces questions??


Par rapport à la création d'une bibliothèque je te recommande de regrouper
tes fonctions ou classes (grâce au prototypage) en modules/composants. Par
exemple mettre toutes les fonctions pour gérer des chaînes de caractères
dans un fichier string.js. Je te conseille aussi de préfixer tes fonctions
par un nom unique afin de ne pas entrer en conflits avec les fonctions de
base ou celles d'autres bibliothèques, par exemple utilise le préfixe
"JyM_". Dans d'autres langages on parle d'espace de nom (C++) ou de
"package" (Java). C'est une notion qui n'existe pas en JavaScript mais ça
n'est pas une raison pour transformer sa biblio en bordel :). On peut même
pousser le vice jusqu'à utiliser un préfixe pour les modules. Ça permet de
dissocier par exemple une fonction de comparaison de chaînes et de...
personnes : JyM_string_comp Vs. JyM_perso_comp. On voit tout l'intérêt de la
chose quand la biblio commence à avoir un certain nombre de fonctions, c'est
beaucoup plus facile de s'y retrouver. De même comme certains éditeurs
(Eclipse) permettent d'accéder à une fonction en un clic, si les fonctions
sont bien nommées (en utilisant des préfixes) on le retrouve plus
facilement.

Quand on développe, même une petite biblio, c'est aussi sympa de documenter
son code. Ça permet de s'y retrouver quand on replonge dedans quelques mois
plus tard. Et l'intérêt d'une doc prend tout son intérêt quand on veut
partager sa biblio avec des amis "geeks" :). Voir la discussion
42dd2c02$0$10635$ où je parle de JSDoc
(http://www.sourceforge.net/projects/jsdoc). C'est un langage de
documentation, embarqué à JS, qui permet d'indiquer par exemple la
description d'une fonction, ce qu'elle fait, et de décrire ses paramètres...
que du bonheur.

Sinon gros point noir, avis perso, on ne peut pas inclure un autre script
depuis un script. Par exemple si le module des persos utilise des fonctions
du module de gestion des chaînes de caractères, on ne peut pas l'indiquer
dans son code. Il faut obligatoirement inclure le module "string" avant
d'inclure le module "perso", dans la page HTML. Ça devient assez fastidieux
et plutôt bordélique à force. Dans d'autres langages comme C++, PHP ou Java
on indique explicitement que tel module à besoin de tel autre. On inclut, on
importe... question de savoir qui fait quoi et avec qui.

Si tu trouves des références sur le sujet ça m'intéresse ! Je peux t'en
retrouver sur les "best practices" pour nommer ses fonctions et variables,
ça sera déjà un bon début. De même pour l'organisation des fichiers, ça peut
sembler simple et évident mais plus la biblio se développe et plus
facilement elle se transforme en chaos. D'où l'intérêt de planifier un peu
tout ça...

Bon c'était juste pour le plaisir d'en parler, sujet passionnant.

Avatar
Bertrand B


Sinon gros point noir, avis perso, on ne peut pas inclure un autre scri pt
depuis un script. Par exemple si le module des persos utilise des fonct ions
du module de gestion des chaînes de caractères, on ne peut pas l'in diquer
dans son code. Il faut obligatoirement inclure le module "string" avant
d'inclure le module "perso", dans la page HTML. Ça devient assez fast idieux
et plutôt bordélique à force. Dans d'autres langages comme C++, P HP ou Java
on indique explicitement que tel module à besoin de tel autre. On inc lut, on
importe... question de savoir qui fait quoi et avec qui.

Si tu trouves des références sur le sujet ça m'intéresse !


il me semble qe JSON et JSAN décrivent des modèles d'inclusions
un point d'entrée :
http://ajaxpatterns.org/On-Demand_Javascript


--
Un blog sur les pages persos de wanadoo ?
chtioblogue : http://perso.wanadoo.fr/bertrand.belguise/blog/blog.html
(Totalement client-side sans php ni base de donnée)

1 2