Accueil > > > UID - FRAMEWORK JAVASCRIPT
UID - FRAMEWORK JAVASCRIPT
Information sur la source
Description
UID est encore en développement. Je poste quand mémé pour me motiver a avancer, connaitre votre avis, et pourquoi pas rechercher des développeur pour créer les composants UI. UID s'articule sur 3 classe. UID.HTML.Document -> le singleton du document (l'espace de nom est par défaut ID, mais peux être modifié (voire source), UID.HTML.Element et UID.HTML.Collection le systeme de class ressemble a celui du c++, permettant l'héritage multiple. Cependant les constructeur doivent être appelé manuellement. le système évènementiel permet la délégation d'évènement, la combinaison d'évènement, aussi que d'autre pseudo évènement (voire source) Les évènement DOMNodeInserted, DOMNodeRemoved, DOMAttributeModified, sont aussi pris en charge Il reste pas mal de truc a faire, l'ajax, la gestion de dépendance, les animations, le xml, peut-etre une gestion multi navigateur du canvas (pour les graph) , et surtout les composants UI j'ai inclue slickspeed, qui test la vitesse du sélecteur, et taskspeed, pour la vitesse des opérations du DOM. comparé a jQuery , sur le sélécteur, je suis 2.5 fois plus rapide, et le DOM entre 2,5 à 5 fois plus rapide , en fonction du navigateur. Si vous été intéressée pour m'aider a développer ce framework, hésitez pas bye
Source
- <!DOCTYPE HTML>
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
- <head>
- <title>ID</title>
- <style>
- </style>
-
- <script type="text/javascript" src="UID/UID.js?documentspacename=ID&baspath=UID/"></script>
-
- <script type="text/javascript">
- /*
- les propriété ?documentspacename=$&baspath=UID définissent l'espace de nom du document , pour éviter tout conflit (par defaut ID)
- pour baspath, quand le module ajax et require sera définit , elle indiquera ou chercher les ressources
- */
-
- //quand le doc est pret
- ID.on('ready', function(){
- /*
- ID.get récupere un élément via un id, ou directment un noeud -> renvoie une noued étendue (UID.HTML.Element)
- */
-
- /* création d'élément via une chaine , on peux passer aussi un objet ou un tableau mélangeant els deux possibilité
- syntaxe objet -> {
- tag : 'div',
- id : 'ok',
- style : {},//un objet ou une chaine
- items : []//les élémenet a inséré (la aussi un tableau , une chaine, objet , ou un noued)
- }
- */
- var str = "";
- for(var i = 0; i<250; i++){
- str += "<ul id='setid" + i + "' class='fromcode'><li>one</li><li>two</li><li>three</li></ul>";
- }
- ID.get(document.body).append(str);
-
- /*
- ID.select séléctionne un ensemble de noeud via un sélécteur css -> renvoie une collection (UID.HTML.Collection)
- */
-
- /*
- exemaple d'utilisation d'une méthode d'une collection
- */
- for(var i = 0, n; 20 > i++;){
- n = ID.select("ul").indexOf(ID.get('setid150'));
- }
-
- /*
- ajoute un évenement pour une collection
- */
- ID.select('ul > li').on('click', function(){})
-
- /*
- pluck permet d'apeler de créer un tableau a partir d'une propriété des éléments (pour le moment utilise getAttribute risque d etre modifie)
- */
- ID.select('ul').pluck('id');
-
- /*
- exemple de chainage du collection
- */
- function emptyFunction(){}
- ID.select("ul > li")
- .on("mouseover", emptyFunction)
- .setAttribute("rel", "touched")
- .un("mouseover", emptyFunction);
-
- /*
- example de création de table
- */
- var str = "";
- for(var i = 0; i < 40; i++){
- str += "<table class='madetable'><tr><td>first</td></tr></table>";
- }
- ID.get(document.body).append(str);
- ID.select(".madetable tr").append("<td>before</td>");
-
-
- /*
- example de création de de lien a partir d une collection
- */
- ID.select(".fromcode > li").append("<a href='http://example.com'>link</a>") ;
-
- /*
- example de création (encore un :) )
- */
- var str = "";
- for(var i = 0; i<500; i++){
- str += "<div rel='foo'>test</div>";
- }
- ID.get(document.body).append(str);
-
- /*
- exemple d'ajout de class , et de filtre depuis une collection (filter accepte aussi un sélécteur css )
- */
- ID.select("div").addClass("added").filter(function(i){
- return i % 2 === 1
- }).addClass("odd");
-
- /*
- exemple d'ajout de style
- */
- ID.select(".added").setStyle('background-color:#ededed;color:#fff ')
-
- /*
- exemple de suppression de style
- */
- ID.select("div").removeClass("added")
-
- /*
- exemeple de délégation d évenement
- */
- ID.select("div").on('click:relay(.added)', function(){})
-
- /*
- exemeple de combinaison d évenement
- */
- ID.select("div").on(':combine(ctrl+click)', function(){})
-
- /*
- exemeple d évenement pour une touche
- */
- ID.select("div").on(':keypress(up)', function(){})
- });
-
-
-
- </script>
- </head>
- <body>
- </body>
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>ID</title>
<style>
</style>
<script type="text/javascript" src="UID/UID.js?documentspacename=ID&baspath=UID/"></script>
<script type="text/javascript">
/*
les propriété ?documentspacename=$&baspath=UID définissent l'espace de nom du document , pour éviter tout conflit (par defaut ID)
pour baspath, quand le module ajax et require sera définit , elle indiquera ou chercher les ressources
*/
//quand le doc est pret
ID.on('ready', function(){
/*
ID.get récupere un élément via un id, ou directment un noeud -> renvoie une noued étendue (UID.HTML.Element)
*/
/* création d'élément via une chaine , on peux passer aussi un objet ou un tableau mélangeant els deux possibilité
syntaxe objet -> {
tag : 'div',
id : 'ok',
style : {},//un objet ou une chaine
items : []//les élémenet a inséré (la aussi un tableau , une chaine, objet , ou un noued)
}
*/
var str = "";
for(var i = 0; i<250; i++){
str += "<ul id='setid" + i + "' class='fromcode'><li>one</li><li>two</li><li>three</li></ul>";
}
ID.get(document.body).append(str);
/*
ID.select séléctionne un ensemble de noeud via un sélécteur css -> renvoie une collection (UID.HTML.Collection)
*/
/*
exemaple d'utilisation d'une méthode d'une collection
*/
for(var i = 0, n; 20 > i++;){
n = ID.select("ul").indexOf(ID.get('setid150'));
}
/*
ajoute un évenement pour une collection
*/
ID.select('ul > li').on('click', function(){})
/*
pluck permet d'apeler de créer un tableau a partir d'une propriété des éléments (pour le moment utilise getAttribute risque d etre modifie)
*/
ID.select('ul').pluck('id');
/*
exemple de chainage du collection
*/
function emptyFunction(){}
ID.select("ul > li")
.on("mouseover", emptyFunction)
.setAttribute("rel", "touched")
.un("mouseover", emptyFunction);
/*
example de création de table
*/
var str = "";
for(var i = 0; i < 40; i++){
str += "<table class='madetable'><tr><td>first</td></tr></table>";
}
ID.get(document.body).append(str);
ID.select(".madetable tr").append("<td>before</td>");
/*
example de création de de lien a partir d une collection
*/
ID.select(".fromcode > li").append("<a href='http://example.com'>link</a>") ;
/*
example de création (encore un :) )
*/
var str = "";
for(var i = 0; i<500; i++){
str += "<div rel='foo'>test</div>";
}
ID.get(document.body).append(str);
/*
exemple d'ajout de class , et de filtre depuis une collection (filter accepte aussi un sélécteur css )
*/
ID.select("div").addClass("added").filter(function(i){
return i % 2 === 1
}).addClass("odd");
/*
exemple d'ajout de style
*/
ID.select(".added").setStyle('background-color:#ededed;color:#fff ')
/*
exemple de suppression de style
*/
ID.select("div").removeClass("added")
/*
exemeple de délégation d évenement
*/
ID.select("div").on('click:relay(.added)', function(){})
/*
exemeple de combinaison d évenement
*/
ID.select("div").on(':combine(ctrl+click)', function(){})
/*
exemeple d évenement pour une touche
*/
ID.select("div").on(':keypress(up)', function(){})
});
</script>
</head>
<body>
</body>
Historique
- 10 décembre 2009 17:48:01 :
- pour une meilleur maintenance du code, j'ai limité au maximum la compilation des fonctions ...
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
[DOM MOZILLA]urgent [ par dionysos6868 ]
bonsoirvoila j'ai cadocument.getElementById("cadremenu").style.top=posYmenu+24;cela marche tres bien sou IE mais pas sous MOZILLAQuelqu'un pourrais m'
probleme mozilla [ par javert ]
salut, je vient de faire un petit calendrier en js, mais il ne fonctionne malheureusement pas sous mozilla. impossible de lui faire comprendre la li
probleme triangle de pascal [ par tofismagic ]
1 - Déterminer l’algorithme permettant de calculer les coefficients du triangle de Pascal<?xml:namespace prefix
Acceder aux éléments d'un iframe via le DOM [ par Pinky84 ]
Je voudrais savoir comment avoir accès aux éléments d'un iframe avec le DOM. Donc pas de function qui renvoie le code dla page. J'aimer
[DOM] Connaître la position d'un Childnode par rapport à ses siblings [ par mentral ]
Bonjour.Je cherche la fonction ou l'attribut qui, appliqué(e) à un childnode, me renvoie sa position. Exemple : <balis
Javascript+DOM [ par naima2005 ]
Bonjour, j'ai besoin de savoir comment récuperer la position du premier caractère et celle du dernier d'une chaine de caractère selectionnée d'une pag
stoker les elements d'un fichier xml par le dom sous xul de firefox? [ par idabdou ]
salut, je travaille sur le sujet suivant : la visualisation d'un fichier xml sur firefox en utilisant xul et le dom, je n'arrive pas à ouvrir le fich
Probleme de DOM (besoin d'un expert :p) [ par MATHIS49 ]
Bonjour à tous !J'ai créé un formulaire visant a repartir des ressources pour une fonctions, j'ai donc utilisé DOM pour créé dynamiquement des champs
Livre sur Javascript / DOM [ par el_teedee ]
Salut les gens,voilà en parcourant rapidement le net, je suis tombé sur un site (http://www.quirksmode.org/) qui m'a paru pas mal fait.J'ai vu que l'
Associer librairie externe ? [ par way2web ]
Quelles sont les règles à respecter en vue d'associer une librairie externe au développement?
|
Derniers Blogs
DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|