journal du référencement
referencement (12214)
7dragons (12)
Abondance (546)
Adsense-fr (101)
Affordance (860)
Ajblog (10)
Arkantos (241)
Ask Blog (28)
Berszerkers (133)
Blog Abondance (260)
Bvwg (41)
Carnets-ref. (20)
Deepindex (21)
Dsi (166)
Enaty (431)
Exalead (55)
Fabriksite (10)
Franck Poisson (143)
Gnoztik (53)
Go-referencement (87)
Google (52)
Google News (699)
Google-stories (47)
Googlinside (107)
Indexweb (230)
Inferences (24)
Influx (174)
Kartoo (32)
Lereferencement (17)
Lienssponso. (283)
Linkagent (5)
Moteur (12)
Moteurs-news (126)
Moteurzine (281)
Motrech (70)
Msn (33)
Outil Ref. (239)
Outils Froids (374)
Prvweaver (16)
Rankingmetrics (7)
Recherche-univ. (18)
Recruteo (149)
S. Billard (286)
Seo-blackout (44)
Sumhit (29)
Synodiance (30)
Taggle (11)
Wayenborgh (9)
Webmarketer (322)
Webmaster-hub (1306)
Webrankinfo (416)
Wikio Seo (1976)
Yahoo Mdr (493)
Yooda (345)
Zorgloob (734)


  









Référencement : Exalead

(Re)apprendre Javascript - Episode I

13/06/2007 17:38

nombreux sont les développeurs qui détestent javascript. pourtant, on leur demande de plus en plus souvent de mettre un peu d'ajax sur le site web. c'est à ces développeurs que ce billet s'adresse. javascript est un langage riche, orienté objet...

nombreux sont les développeurs qui détestent javascript. pourtant, on leur demande de plus en plus souvent de "mettre un peu d'ajax sur le site web".

c'est à ces développeurs que ce billet s'adresse.

javascript est un langage riche, orienté objet et facile à apprendre.

les bases
le site mozilla developer connection reste la source de documentation javascript la plus complète. pour la syntaxe et les types de base, lire l'article a re-introduction to javascript.

les objets
un objet javascript est comparable à un tableau associatif. la façon la plus simple de créer un objet est:

var o = {};
o.name = "hello";
o.setname = function(name) {
this.name = name;
}

dans cet exemple, o est un objet, sa propriété name a la valeur hello, et sa propriété setname est une fonction.

classes et héritage
javascript permet d'implémenter la notion de classe de la façon suivante:

  • une classe est un objet de type function
  • cet objet possède un membre magique nommé prototype
  • lorsqu'on invoque cet objet avec l'operateur new, un nouvel objet vide est crée et le prototype est recopié à l'intérieur.

exemple:

var myclass = function() { //contructeur
this.name = "default name";
};
myclass.prototype = { //prototype
setname: function(name) {
this.name = name;
}
};

var o = new myclass();
alert(o.name); // "default name"
o.setname("nouveau nom");
alert(o.name); // "nouveau nom"

il existe plusieurs façons d'écrire des classes. consulter l'article classical inheritance in javascript pour un tour d'horizon complet.

droits d'accès
en javascript, tout est public. la meilleure façon de préserver la notion d'encapsulation est par la convention. par exemple, chez exalead un membre privé commence par le caractère _.

tout dynamique
en javascript, tout peut changer tout le temps. même les méthodes. c'est particulièrement pratique pour construire des interfaces utilisateur basées sur des évènements:

o.onreceivesomeevent = function() {
// do something
};

il est même possible d'enrichir les types de base en rajoutant des méthodes à leur prototype. par exemple:

string.prototype.blank = function() {
return /^\s*$/.test(this);
}
"hello".blank(); // false
" ".blank(); // true

le dom - document object model
javascript est exécuté dans un navigateur web, au sein d'une page html. une représentation javascript de la page html est systématiquement contruite par le navigateur. cette représentation, qui s'appelle le dom, est accessible via l'objet window. bien entendu, le dom diffère entre navigateurs. alors comment écrire un programme qui fonctionne partout ? deux approches:

1ère approche:

if (navigator.appname == "microsoft internet explorer" 
&& navigator.appversion >= "4.0")
{
element.attachevent("onclick", function() {alert("click")});
}

if (navigator.appname != "microsoft internet explorer"
&& navigator.appname != "netscape")
{
element.addeventlistener("click", function() {alert("click")});
}

cette approche est la plus triviale et la moins élégante. elle rend le partage de code complexe et amène inexorablement le développeur à détester javascript.

2e approche:

if (element.attachevent) {
element.attachevent("onclick", function() {alert("click")});
}
if (element.addeventlistener) {
element.addeventlistener("click", function() {alert("click")});
}

bien meilleure, cette approche utilise une des forces de javascript: tester si une fonction existe. elle permet d'obtenir une compatibilité maximale sans avoir à connaître l'intégralité de tous les navigateurs existants.

voilà pour aujourd'hui. la semaine prochaine, nous continuerons avec une dissection en règle de la fameuse librarie prototype.

- damucho, pour l'équipe webdev


Source : Exalead




Autres actualités de cette journée : 13/06/2007

13/06/2007 22:29 : Hypothèse Webmaster-Hub
13/06/2007 20:49 : London 2012 : un logo qui fait suer ! Go-Referencement
13/06/2007 20:35 : Repères : le Web 2.0 (Direction informatique) Wikio SEO
13/06/2007 20:26 : Référencement bidon (Cloudy days) Wikio SEO
13/06/2007 18:36 : Ah finalement ! Ma F-WPPlugins list ! (Chergaoui.com) Wikio SEO
13/06/2007 17:38 : (Re)apprendre Javascript - Episode I Exalead
13/06/2007 15:10 : Lancement de nouvelles langues pour de nombreux services Webmarketer
13/06/2007 14:59 : Emploi Internet traffic developper sur Montpellier Webmarketer
13/06/2007 14:38 : Saveur Bière : Achat - Vente de bières en ligne Outil Ref.
13/06/2007 13:45 : Quelques pistes pour optimiser les documents PDF pour le référence Webmarketer
13/06/2007 12:59 : Emploi Internet traffic developper sur Montpellier (Blog d'un Webm@rketer...) Wikio SEO
13/06/2007 12:08 : Comment créer une campagne d’e-mailing efficace ? Yooda
13/06/2007 11:45 : Quelques pistes pour optimiser les documents PDF pour le référence Wikio SEO
13/06/2007 11:04 : Placement Performance Report : un nouveau type de rapport Adwords Webmarketer
13/06/2007 09:26 : Comment créer et mettre en place une campagne d’e-mailing efficace ? 3ème étape LiensSponso.
13/06/2007 09:15 : Conservation des données personnelles : Google mauvais élève de la classe selon Abondance
13/06/2007 09:14 : Google s'installe en Chine Abondance
13/06/2007 09:13 : Google attaque Microsoft en justice Abondance
13/06/2007 09:12 : Les pages d'accueil par Google Adwords Abondance
13/06/2007 07:30 : GnoZtiK - onglet Classement : les graphiques. Gnoztik
13/06/2007 00:07 : Des améliorations pour Google Analytics Moteurs-news




Actualités Abondance Forum Webmaster-Hub
Les bonnes feuilles du vendredi - 18 juillet 2008
Etude > Google : 70% du trafic aux Etats-Unis,
Recherche et Référencement : le num&
Les Bonnes Feuilles du vendredi - 11 juillet 2008
Etude > Google fort générateur de
Un exemple intéressant et révé
Référencement Flash : ne nous emball
Google Trifecta, séminaire de présen
Formation de référenceur à Mu
Non, l'annuaire Yahoo! existe encore en France
connaissez vous ces tools
Les annuaires ca vaut vraiment le coup ?
Pbme Sitemap sur liens images
Mise en place portail e-sourcing
Duplicate content entre la home et les pages du si
Efficacité des boutons de bookmarking
Les liens éphémères
[Besoin d'aide] sur référencement de mon site
[Questions] sur réf de mon site
Comment connaitre son rang dans google?

© 2006 - 2008 par IDF.net - partenaires : MoteurZine SEOgame