jeudi 31 mars 2011

jQuery : Les bonnes pratiques

Toujours faire une recherche à partir d’un ID

Le sélecteur le plus rapide de jQuery est le sélecteur d’ID ($(‘#mon-id’)) car elle est directement mappée sur une méthode Javascript native : getElementById().

Sélection d’un élément unique

<div id="content">
 <form method="post" action="/">
  <h2>Traffic Light</h2>
   <ul id="traffic_light">
    <li><input type="radio" name="light" value="red" />Red</li>
    <li><input type="radio" name="light" value="yellow" />Yellow</li>
    <li><input type="radio" name="light" value="green" />Green</li>
   </ul>
   <input class="button" id="traffic_button" type="submit" value="Go" />
 </form>
</div>
Une sélection comme celle-ci est plus rapide :
var traffic_button = $(‘#traffic_button’);
Que celle-ci :
var traffic_button = $(‘#content .button’);


Sélection d’éléments multiples

La sélection d’éléments multiples parcours le DOM de manière transversale, cela peut être très long et très couteux en ressources.
Pour minimiser les pertes de performances, toujours effectuer une recherche à partir de l’ID du parent le plus proche :
var traffic_lights = $(‘#traffic_light input’);


Utiliser des balises avant les classes

Le second sélecteur le plus rapide de jQuery est le sélecteur de balises ($(‘head’)). Toujours parce qu’il s’agit d’un mappage vers une méthode native de JavaScript, getElementsByTagName().
<pre lang="html4strict" escaped="true"><div id="content">
 <form method="post" action="/">
  <h2>Traffic Light</h2>
   <ul id="traffic_light">
    <li><input type="radio" name="light" value="red" />Red</li>
    <li><input type="radio" name="light" value="yellow" />Yellow</li>
    <li><input type="radio" name="light" value="green" />Green</li>
   </ul>
   <input id="traffic_button" type="submit" value="Go" />
 </form>
</div>
Il faut donc toujours préfixer une classe par une balise (et se souvenir qu'il faut commencer par un ID) :
var active_light = $('#traffic_light input.on');
Note : Le sélecteur de classe est l'un des plus lents dans jQuery, sous Internet Explorer il boucle sur le DOM complet. Evitez de l'utiliser chaque fois que c'est possible.
Il ne faut jamais préfixer un ID par une balise. Cela ralenti le processus de recherche car jQuery va boucler sur tous les div à la recherche de l'ID 'content' :
var content = $('div#content');
De la même manière il est inutile est redondant de faire une recherche à partir de
plusieurs ID :
var traffic_light = $('#content #traffic_light');


Cacher les objets jQuery

Prenez l'habitude de sauver vos objets jQuery dans des variables (comme dans les exemples précédents).
Par exemple, il ne faut jamais faire cela :
$('#traffic_light input.on').bind('click', function(){...});
$('#traffic_light input.on').css('border', '3px dashed yellow');
$('#traffic_light input.on').css('background-color', 'orange');
$('#traffic_light input.on').fadeIn('slow');
Mais plutôt passer une variable locale avant de continuer vos traitements :
var $active_light = $('#traffic_light input.on');
$active_light.bind('click', function(){...});
$active_light.css('border', '3px dashed yellow');
$active_light.css('background-color', 'orange');
$active_light.fadeIn('slow');
Astuce : Pour se souvenir que notre variable contient un objet jQuery nous pouvons la préfixer avec un $.
Souvenez-vous : ne faite jamais deux fois la même sélection !!

Garder le résultat d'une sélection pour plus tard

Si vous prévoyez d'utiliser le résultat d'une sélection dans une autre partie de votre programme ou devez utiliser la même fonction plusieurs fois, cacher ce résultat dans une variable globale.
En définissant un conteneur global de résultats jQuery nous pouvons les utiliser depuis l'intérieur d'autres fonctions :
// Définissez un objet global (c.à.d. l'objet window)
 window.$my =
 {
 // Initialisez toutes les requêtes qui vont vous servir plus d'une fois.
 head : $('head'),
 traffic_light : $('#traffic_light'),
 traffic_button : $('#traffic_button')
 };
 
function do_something()
 {
 // maintenant vous pouvez utiliser les résultats stockés et les manipuler.
 var script = document.createElement('script');
 $my.head.append(script);
 
// Quand vous travaillez dans les fonctions, continuez de sauvegarder
 // vos résultats de requête jQuery dans votre conteneur global.
 $my.cool_results = $('#some_ul li');
 $my.other_results = $('#some_table td');
 
// Utilisez votre conteneur global comme un résultat de requête classique :
 $my.other_results.css('border-color', 'red');
 $my.traffic_light.css('border-color', 'green');
 }

(Dé)chaînez la fureur

L'exemple du précédent peut également être accompli de la façon suivante :
var $active_light = $('#traffic_light input.on');
$active_light.bind('click', function(){...})
 .css('border', '3px dashed yellow')
 .css('background-color', 'orange')
 .fadeIn('slow');
Cela permet d'écrire moins de code, rendant notre Javascript plus léger.

Utilisez des sous-requêtes

Par exemple, nous pouvons utiliser des sous-requêtes pour récupérer et cacher les champs actifs et inactifs de notre exemple :
<div id="content">
 <form method="post" action="/">
  <h2>Traffic Light</h2>
  <ul id="traffic_light">
   <li><input type="radio" name="light" value="red" />Red</li>
   <li><input type="radio" name="light" value="yellow" />Yellow</li>
   <li><input type="radio" name="light" value="green" />Green</li>
  </ul>
  <input id="traffic_button" type="submit" value="Go" />
 </form>
</div>
var $traffic_light = $('#traffic_light'),
 $active_light = $traffic_light.find('input.on'),
 $inactive_lights = $traffic_light.find('input.off');
Astuce : Vous pouvez déclarer plusieurs variables en les séparant avec des virgules – sauvez des octets !


Limiter les manipulations directes du DOM

L'idée de base ici est de créer exactement ce dont vous avez besoin en mémoire, et ensuite mettre à jour le DOM. Il ne s'agit pas que d'un conseil pour jQuery mais pour Javascript en général.
Par exemple, si vous avez besoins de créer dynamiquement une liste d'éléments,
ne faite pas ça :
var top_100_list = [...], // On suppose qu'il y a 100 strings différents
 $mylist = $('#mylist'); // jQuery sélectionne notre <ul>
 
 for (var i=0, l=top_100_list.length; i<l; i++)
 {
  $mylist.append('<li>' + top_100_list[i] + '</li>');
 }
A la place, nous allons d'abord créer la collection d'éléments dans une chaine avant de l'insérer au DOM :
var top_100_list = [...], // On suppose qu'il y a 100 strings différents
 $mylist = $('#mylist'), // jQuery sélectionne notre <ul>
 top_100_li = ""; // C'est ici qu'on va stocker notre liste
 for (var i=0, l=top_100_list.length; i<l; i++)
 {
  top_100_li += '<li>' + top_100_list[i] + '</li>';
 }
 $mylist.html(top_100_li);
Encore plus rapide, nous devrions toujours encapsuler plusieurs éléments dans une node parente avant l'insertion :
var top_100_list = [...], // On suppose qu'il y a 100 strings différents
 $mylist = $('#mylist'), // jQuery sélectionne notre <ul>
 top_100_ul = '<ul id="#mylist">'; // On stock toute notre liste
 
for (var i=0, l=top_100_list.length; i<l; i++)
 {
  top_100_ul += '<li>' + top_100_list[i] + '</li>';
 }
  top_100_ul += '</ul>'; // On ferme notre liste
 
$mylist.replaceWith(top_100_ul);

Exploiter la délégation d'événement

En Javascript, chaque événement est remonté aux éléments parents le long de l'arborescence du DOM.
C'est extrêmement pratique quand nous voulons que plusieurs éléments fils (nodes) appellent une même fonction.
Plutôt que d'associer une fonction de listener d'événements à plusieurs nodes (très peu efficace) vous pouvez l'associer une fois pour toute à leur parent, en le laissant se débrouiller avec l'élément fils qui a déclenché l'événement.
Par exemple, nous développons un gros formulaire avec beaucoup de champs, et nous voulons changer la classe d'un champ lorsque ce dernier est sélectionné.
Une association telle que celle-ci n'est pas du tout optimisée :
$('#entryform input).bind('focus', function(){
  $(this).addClass('selected');
}).bind('blur', function(){
  $(this).removeClass('selected');
});
A la place, nous devrions surveiller les événements de focus et de blur au niveau du parent :
$('#entryform).bind('focus', function(e){
 
var cell = $(e.target);      // e.target récupère l'élément qui a
 cell.addClass('selected');  // déclenché l'événement.
 
}).bind('blur', function(e){
 
var cell = $(e.target);
 cell.removeClass('selected');
 
});
L'élément parent agit comme un dispatcher et peut ainsi travailler sur l'élément fils cible qui a déclenché l'événement. Si vous associez un même listener à plusieurs éléments, faite attention, vous êtes en train de coder quelque chose de très lent !

Eliminez les requêtes superflues

Même si jQuery échoue proprement quand il ne trouve pas d'élément, cela ne veux pas dire qu'il ne perd pas de temps à les chercher !
Si vous avez un fichier Javascript global pour votre site, il est tentant d'exécuter toutes vos recherches dans
$(document).ready(function(){ // tout mon joli code })
C'est mal ! N'exécutez que les fonctions applicables à la page courante.
La façon la plus efficace de faire cela est d'utiliser des fonctions d'initialisation légère pour que votre template ait le contrôle complet sur où etquand est exécuter votre Javascript.
Par exemple, vous pouvez inclure le code suivant avant la fermeture de la balise body :
<script type="text/javascript>
  mylib.article.init();
 </script>
</body>
Si votre template de page inclus une variété de modules qui peuvent être ou ne pas être dans la page, ou si pour d'autre raison vous avez besoins de les initialiser plus tôt vous pouvez placer la fonction d'initialisation immédiatement après le module.
<ul id="traffic_light">
 <li><input type="radio" name="light" value="red" /> Red</li>
 <li><input type="radio" name="light" value="yellow" /> Yellow</li>
 <li><input type="radio" name="light" value="green" /> Green</li>
 </ul>
 <script type="text/javascript>
 mylib.traffic_light.init();
 </script>
Votre bibliothèque javascript globale ressemblerait à ça :
var mylib =
{
  article_page :
  {
   init : function()
   {
   // Mes fonctions jQuery spécifiques à la page d'article.
   }
  },
  traffic_light :
  {
  init : function()
   {
   // Mes fonctions jQuery spécifiques à la page trafic.
   }
  }
}

Déléguez à $(window).load

Il y a une tentation parmi tous les développeurs jQuery à associer toutes leurs fonctions à l'événement $(document).ready.
Après tout, il est utilisé dans la plupart des exemples que vous trouverez sur le web, pourquoi changer ?
$(document).ready se déclenche pendant le rendering de la page par le navigateur, c'est-à-dire au même moment où des éléments sont encore téléchargé par ce dernier.
Si vous remarqué un ralentissement du navigateur durant le chargement de la page, toutes ces fonctions $(document).ready en sont peut-être la raison.
Vous pouvez réduire l'utilisation CPU en affectant toutes vos fonctions jQuery à l'événement $(window).load qui est déclenché après que tous les objets appelés par le HTML soit téléchargés. (Y compris le contenu des iframes).
$(window).load(function(){
 // Fonctions jQuery a initialiser après que la page ait été chargée.
 });
Les fonctionnalités "superflues" telles que les drap-n-drop, effets visuels et animations, pré-chargements des images... etc... sont de bonnes candidates pour cette technique.

Comment référencer et optimiser son blog ?

Votre blog...Vous avez un blog tout beau, tout neuf, votre bébé !Vous voulez le faire connaître à la planète entière et ainsi augmenter le nombre de vos visiteurs.
Alors soyez actif, les visiteurs ne tomberont pas du ciel si vous restez à attendre le chalant..

Faire connaitre votre blog, dire que votre blog existe, faire la pub de votre blog...pour cela pas de secret, il faut un peu travailler :

S'inscrire dans les annuaires de blogs :Taper : annuaire de blogs dans votre moteur de recherche, une liste d'annuaires apparait, vous n'avez plus qu'à inscrire votre blog dans chaque annuaire...et ainsi  vous faire connaitre dans la blogosphère..


S'inscrire dans les annuaires spécialisés :Exemple : vous avez un blog sur la cuisine, tapez dans votre moteur de recherche : annuaire cuisine ou recettes de cuisine...et inscrivez votre blog dans le plus grand nombre d'entre eux pour générer le plus de visites possibles.


S'inscrire dans les sites spécialisés :Vous avez un blog sur la broderie, tapez dans votre moteur de recherche : site broderie...une liste de sites spécialisés sur la broderie apparait...inscrivez vous et devenez membre du site (chaque site à souvent un annuaire et un forum pour leurs membres où vous pourrez enregistrer votre blog et créer des liens autour de celui-ci)..


S'inscrire sur les forums :Très importants les forums, il y en a des centaines, qui génèrent un flux important de contacts...Ex : tapez forum loisirs créatifs..et là vous avez tous les forums traitant des loisirs créatifs...inscrivez vous, liés des contacts avec les autres internautes  passionnés comme vous...en plus il y a souvent une rubrique qui vous permet de parler de votre blog et de le faire connaître...ainsi les autres passionnés viendront visités votre blog.

Soyez patient...toutes ces inscriptions vous apporteront du traffic à court ou à long terme.

Optimiser votre blog :
C'est pas tout d'avoir des visiteurs, il faut les fidèliser et pour cela une seule chose : ne pas les décevoir ! Et oui, ils viendront une fois, mais pas deux si ils sont déçus..
Quelques conseils élémentaires :
- soigner votre ortograf...euh !!!  Orthographe..et oui si vous faites 20 fautes à chaque article, vous serez forcément mal jugé, et laisserez une mauvaise impression..
- soigner la présentation de votre blog..important, c'est la première impression qu'à le visiteur quand il arrive sur votre blog...éviter le style fouilli, méli mélo, où tout est mélangé, soyez clair et précis dans vos textes et dans l'organisation de vos illustrations..
- Soyez créatif : un peu d'imagination que diable ! intéressez le lecteur par des sujets attractifs, attirer son attention avec de l'insolite, des choses qu'il n'a pas vu ou déjà lu ailleurs..créer une discussion autour d'un sujet, ayez un brin d'humour !

-Pour ce qui est du contenu :
Choisissez des titres d'articles avec des mots clefs...les mots clefs sont les mots qui font mouche ! aussi bien dans l'esprit des gens que sur les moteurs de recherche....se sont eux qui font que votre blog va apparaitre ou pas dans les listes de recherche des internautes...
- créer une dynamique autour et dans votre blog :
Ne laissez pas votre blog en morte plaine, publier régulièrement des articles, affichez des photos de qualité qui attirent l'oeil, répondez à vos commentaires et n'hésitez pas à aller visiter les blogs des copinautes...soyez réactif à l'intérêt que vous portent vos visiteurs..si vous voulez les garder !

mercredi 30 mars 2011

les conditions en php




fonction print en php



la fonction include en php





comment déactiver balise HTML et d'autre langages

afin d'éviter les attaques qui peuvent entamer le site on fessait la désactivation  des balises




Qu' est-ce que le fichier robots.txt ?

Le robots.txt pour le référencement naturel

 

Le robots.txt est un fichier texte utilisant un format précis qui permet à un Webmaster de contrôler quelles zones de son site un robot d'indexation est autorisé à analyser. Ce fichier texte sera disponible à une URL bien précise pour un site donné, par exemple http://www.monsite.com/robots.txt
Pour bien comprendre à quoi sert un robots.txt, il faut comprendre la manière dont fonctionnent les robots d'indexation des moteurs de recherche (appelés aussi Web spiders, Web crawlers ou Bots) tels que Google, Yahoo ou Bing. Voici leurs actions lorsqu'ils analysent un site tel que www.monsite.com :
  • ils commencent par télécharger et analyser le fichier http://www.monsite.com/robots.txt.
  • ils analysent les règles de ce fichier pour savoir quelles URLs ils sont autorisés à télécharger
  • Si le robots.txt l'autorise, ils téléchargent la racine du site, c'est à dire l'URL http://www.monsite.com/
  • ils analysent le contenu de cette page et en extrait notamment la liste des liens internes qu'elle contient.
  • tous ces liens internes sont à leur tour téléchargés (si les règles du fichier robots.txt ne les filtrent pas), et leur liens internes extraits
  • récursivement tous ces liens sont téléchargés et analysés (s'ils sont nouveaux), jusqu'à ce que le robot n'en trouve plus de nouveau.
Il est important de bien comprendre que le robots.txt n'est en aucun cas une manière de sécuriser son site. Un robot 'bien élevé' tiendra compte de ce fichier pour ne pas télécharger les URLs non désirées par le webmaster. Mais un robot 'mal élevé' - par exemple un concurrent qui veut aspirer votre site, n'a aucune obligation technique d'en tenir compte. Evidemment, la totalité des robots des principaux moteurs de recherche (Google, Yahoo, Vista) sont bien élevés.

Ai je besoin d'un robots.txt pour mon site ?

Il n'est pas du tout obligatoire pour un site web d'avoir un robots.txt. S'il n'y en pas, toutes les URLs que le robot pourra trouver seront analysées.
Pour savoir si vous avez besoin d'un fichier robots.txt sur votre site, posez vous cette simple question: y-a-t-il des zones non sécurisées sur votre site que vous ne désirez pas voir dans des résultats de recherche tels que Google, Yahoo, Bing... si la réponse est oui, alors vous avez besoin d'un robots.txt. Sinon, ce n'est pas utile.

Comment générer un fichier robots.txt ?

Un fichier robots.txt contient un ensemble de règles. Une règle est définie par 3 valeurs:
  • Allow / Disallow: est-ce une règle qui autorise ou au contraire qui filtre certaines URLs ?
  • le User-Agent: à qui s'adresse la règle ? (tous les robots, seulement google, seulement bing...)
  • l'expression régulière d'URL: à quelles URLs du site s'adresse la règle ?
Pour créer un fichier robots.txt, vous pouvez soit créer le fichier manuellement, soit utiliser un outil pour le générer automatiquement. Yakaferci vous conseille une approche mixte: générer un robots.txt automatiquement, puis le relire attentivement et éventuellement l'affiner manuellement.
Un bon outil de génération automatique de robots.txt est fourni par Google sur son site des Webmaster tools
Même si vous avez un bon niveau technique, nous vous déconseillons de créer des robots.txt trop sophistiqués. Deux raisons à cela :
  • plus le robots.txt est compliqué, plus il y a risque d'erreur. Et une erreur peut avoir une conséquence catastrophique: vos pages publiques ne seraient plus référencées par Google !
  • si vous désirez utiliser des expressions régulières compliquées pour les URLs, sachez que seuls certains robots (Googlebot notamment) sait les interpréter correctement. Vous prenez donc un risque de mauvaise interprétation pour les autres.

But du fichier

Le fichier robots.txt permet d' interdire à des moteurs de recherche des répertoires entiers ou des pages. Il existe une erreur très fréquentes et relativement grave dans le nom du fichier : robots.txt (en minuscule) avec un s. Sinon, il ne sert a rien. (Merci à Damien Guigue de Yooda.com qui a trouvé cette erreur sur le site.)

Construction du fichier

Il est conseillé d' utiliser un éditeur de texte tel que le Bloc-notes. Des programmes comme Word sont utilisables, mais avec précaution, car le fichier sauvé sur le serveur peut parfois ne pas être au format ASCI pur.
Le fichier est composé des deux instructions suivantes :
User-agent: { nom du robot }
Disallow: { document-a-exclure }
Par exemple, pour indiquer au spider d'Alta Vista, dénommée Scooter, de ne pas indexer les fichiers perso.html et emploi.html, il faut insérer les lignes suivantes dans robots.txt :
User-agent: Scooter
Disallow: perso.html
Disallow: emploi.html

Syntaxe :

User-agent
 User-agent: { nom du robot }  L' ordre concerne un robot précis
 User-agent:*  L' ordre concerne tous les robots.
Disallow
 Disallow:/index2.htm  Indique aux robots qu 'ils ne doivent pas indexer la page /index2.htm situé à la racine du site.
 Disallow:/admin/  Indique aux robots qu 'ils ne peuvent indexer les fichiers contenus dans le répertoire admin.
 Disallow:  Indique aux robots que tout doit être indexé. Identique à un fichier robots.txt inexistant.

Noindex

 Noindex   Ne pas indexer les pages
Commentaires
 # commentaires  Vos commentaires doivent être précédé d' un #

Google

Quelques commandes réservées uniquement à Google
 nosnippet   Ne pas mettre d' extraits de pages
 noarchives   Émécher l' archivage des pages

Règles et précautions

  • Il doit exister un seul fichier robots.txt sur l' ensemble de votre site.
  • Il doit être situé à la racine de votre site
  • L' astérisque (*) n' est acceptée que dans le champ User-agent.
  • Vous devez créer plusieurs sections User-agent si vous souhaitez que votre fichier robots.txt s' applique à différents moteurs de recherche.
  • Le nom du fichier (robots.txt) doit être écrit impérativement en minuscule.
  • Votre fichier robots.txt doit être en mode ASCII.

La liste de de certains robots

Outil de recherche:  User-Agent de l' outil:
Alta Vista Scooter 
Infoseek  InfoSeek Sidewinder
Excite ArchitextSpider
Lycos Lycos_Spider_(T-Rex) 
Northern Light Gulliver

Les erreurs à éviter en référencement

  • Les frames : certains robots ont du mal avec les sites qui ont frames (cadres en Français).Si vous ne pouvez pas faire autrement vérifier bien que la description et les mots-clés figurent dans la page qui contient les frames. Utilisez la balise <NOFRAMES> en y insérant du texte enrichi en mot clef pour améliorer les résultats. Prévoyez également un système de contrôle d' affichage de vos pages. La construction la plus fréquente avec des frames consiste à mettre le menu dans une frame et le contenu dans l' autre. Le moteur de recherche indiquera le chemin de la page de contenu. Le surfeur qui viendra sur cette page, via le moteur de recherche, se retrouvera sans menu et risque fort de quitter votre site dès sa lecture terminée.
     
  • Trop d' images et peu de texte : éviter d' avoir trop d' élément graphique sur votre page d' accueil. Si le robot ne trouve pas suffisant de texte votre page risque d' être mal prise en compte et donc mal classée. Limitez leur usage et donnez leur l' attribut 'ALT' contenant une description.
  • Liens inactifs : Les liens inactifs sont une véritable plaie sur un site. Il n’y a rien de tel pour laisser une mauvaise impression à vos visiteurs. Prenez l’habitude de vérifier régulièrement vos liens internes et externes.
  • Navigation pénible : Rien de plus frustrant que de se trouver bloqué sur un site sans pouvoir retourner à une page qui nous intéresse.Un site Web n’est pas qu’un ensemble de pages qui se suivent les unes après les autres. Il doit comporter une organisation logique suffisamment développée pour lier tous les documents.
       
  • Proposer une URL qui contient les caractères ?, &, = (pages dynamiques). En revanche les pages dynamiques (PHP, ASP, CFM) ne posent pas de problèmes aux robots si l' URL ne contient pas ces caractères.
     
  • La balise "Refresh" : Les moteurs pénalisent les sites contenant ce genre de balises lorsque que le délai est faible. Évitez les pour ne pas prendre de risque. Les redirections d' URL ne sont également pas prises en compte, même si elles ne sont pas considérées comme étant des tentatives de fraude. Exemple : la saisie de l' adresse http://www.votresite.com/ qui redirige automatiquement vers http://www.votresite.fr/english/ (avec cette adresse qui devient d' un coup visible dans la barre d' adresse de votre navigateur) ou http://www.votresite.com/ qui redirige vers l' adresse"réelle" http://www.votrehebergeur.com/votresite/. Dans ce cas, l' adresse initiale (www.votresite.com) ne sera jamais référencée.
     
  • Eviter le Javascript produisant des roll-overs sur les liens ou ouvrant les fenêtres pop-up sans avoir doublé les liens graphiques d' une version textuelle "simple" avec la balise <noscript> par exemple. Ces liens ne sont pas suivi par tous les spiders et l' indexation pourrait se limiter à la première page.
     
  • Le flash : De plus en plus utilisé, il pénalise encore le référencement bien que certains moteurs le supportent, Si vous l' utilisez, renseignez la balise <NOEMBED> avec du texte riche en mots clefs. La meilleure solution consisterait à faire une copie du site sans Flash et avec plus de contenu textuel, qui pourra être mieux pris en compte par les moteurs et par les visiteurs avec une connection lente.
     
  • Un site en travaux : Attendez que votre site soit terminé avant de le publier et de le soumettre.
     
  • Un site dont la langue ne correspond pas à l' annuaire : ne référencer pas un site français dans Yahoo! US par exemple, il serait à coup sûr refusé et tout le monde perd du temps.
     
  • Un site "mort" (peu mis à jour) : votre site doit être attrayant.
  • Un site creux, sans contenu: Les annuaires sont de plus en plus restrictifs et privilégient en premier lieu les contenus les plus importants. Les annuaires partent du principe que les sites qu 'ils recensent doivent répondre aux questions des internautes. Un site "creux" ne répond à aucune question ! Les sites de type "plaquette" (coordonnées, types de produits vendus par l' entreprise, mot du Président) n' ont plus que très peu de chance d' être intégrées dans les annuaires majeurs. Privilégiez donc la qualité dès le lancement du site et proposez du contenu intéressant aux internautes : dossiers thématiques, actualité, articles de fond, revue de presse, information souvent mise à jour et renouvelée. Les annuaires vous intégreront dans leur base de données rapidement. Un contenu un peu décalé, original, voire marginal, peut également accélérer un référencement.
     
  • Un site lent à charger : Pensez que bon nombre d' utilisateurs possèdent des mode 56K et que les surfeurs ne l' oublient pas même si ils possèdent un accès rapide. Il existe des outils permettant d' estimer le temps de chargement de vos pages.
     
  • Le nom de domaine est un élément important pour les moteurs qui effectuent les recherches. Ils filtrent de plus en plus les inscriptions, au vu du nombre très important de demandes. Un site qui a un nom de domaine propre (www.monsite.com) aura toujours un petit avantage par rapport à un "site perso" (www.multimania.com/monsite/). C' est également important que les visiteurs puissent se souvenir facilement de l' adresse.
     
  • Faites en sortes que les textes du site répètent plusieurs fois les mots clefs important sans toutefois exagérer. C' est là que se départagent les sites les mieux classés.
     
  • Certaines astuces qui permettaient auparavant d' améliorer votre classement dans les moteurs de recherche sont devenus très mauvaises, en voici quelques unes :
    • Cacher des mots clés de la même couleur que le fond de la page :Cette méthode est révolue, il suffit aux moteurs de recherche de trouver cet argument bgcolor="#FFFFFF" et de le comparer à celui-ci color="#FFFFFF". Cela risque détrôner la suppression de la page voire dans certains cas de tout le site de la base de données du moteur de recherche.
       
    • Répétition de mots clés :Répéter le même mot clé plus de trois fois (en moyenne) de façon trop rapprochée à n' importe quel endroit dans le code source de la page (balise META, ALT, TITLE ou dans le corps de la page).Cela risque détrôner la suppression de la page voire dans certains cas de tout le site de la base de données de l' outils de recherche.
       
    • L' utilisation de mots sans rapport avec le thème de la page : Dans le but de générer du trafic, on peut être tenté d' utiliser par exemple des noms de marques ou bien de placer des mots à fort trafic tel que MP3 ou sexe dans des balises HTML. Exemple trouvé sur le net : meta name="keywords" content="informatiques, achat, vente, shopping, informatique, scanner, imprimante, sexe, gros seins, moniteurs, disquette, son, ..." Vous pouvez être punissable en utilisant des noms de marques ou de personnes.


utilisation des images en html

Une page web présentée  avec du texte, c'est bien. Du texte formaté, aussi  c'est mieux !
Et avec des images, c'est encore mieux...
c'est pour cela je vais vous expliquer comment on peut utiliser les images sous HTML

On utilise l'élément <IMG> pour placer les images. Deux attributs sont obligatoires :
  • L'attribut src pour spécifier le nom du fichier image à charger. Les fichiers image doivent impérativement être aux formats GIF ou JPG.
  • L'attribut alt pour indiquer un contenu alternatif, c'est à dire un texte à afficher à la place de l'image lorsque, pour différentes raisons, elle n'apparaît pas. 
regardez cet exemple:

je vais utiliser mon document précédent où  je vais insérer mon image
   
en même endroit de notre fichier index.html  on va mettre une photo nommé mon_image.jpg


vous allez voir la résultat suivante:


le code html que nous avons utilisé :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//FR">

     <html>
     <head>
     <title>titre de web</title>
     </head>
 
     <body>
     <p>voilà photo d'une belle ville au maroc Chefchaouen</p>
    <img src="mon_image.jpg">
     </body>
     </html>
    



Les liens hypertextes html




Les liens hypertextes sont des éléments d'une page HTML (soulignés lorsqu'il s'agit de texte)et sont des relais vers d'autres pages web qui  permettant aux internautes de naviguer vers une nouvelle adresse lorsque l'on clique dessus. Ces destinations vers lesquelles "pointent" les liens peuvent être externes à la page web visitée ou internes, c'est-à-dire qu'ils pointent en direction d'un endroit spécifique de la page visitée.
Les liens en HTML ont une syntaxe très simple symbolisée par la balise <a> et </a>
<a href="http://www.google.fr">pour partir à google</a>
L'attribut principal des ancrages est href. Il s'écrit sous la forme suivante :
<a href="Adresse ou URL"> .. </a>
 
on peut notant deux types des liens,liens externes et liens interne ou local:

Lien externe:

Un lien externe est un lien vers une page pointée par son URL
Par exemple :
<a href="http://www.google.fr"> clik google </a>

Lien local

On peut créer un lien vers une page située sur le même ordinateur en remplaçant l'URL par le fichier cible.
Ce lien peut être fait de façon relative, en repérant le fichier cible par rapport au fichier source. Si le fichier cible est "index.html" situé dans le répertoire parent, son lien s'écrira:
<a href="../index.html"> ... </a>


Ce lien peut aussi être défini de façon absolue, en écrivant l'adresse du fichier cible de façon locale:
<a href="file:///lecteur:/répertoire/index.html"> ... </a>
 

Types de liens

  • Un document
    • Un fichier HTML
    • Un texte
    • Une image GIF, JPEG ou Postscript
    • Un son
    • Un film
    • ...
 

Définition des couleurs en HTML

Définition des couleurs

Il existe deux méthodes pour définir l' affichage des couleurs en HTML :
  • par leur nom , sous la forme <font color="BLACK">.
  • par leur code RGB, sous la forme <font color="#000000">.

Nom des couleurs

Pour une raison de compatibilité avec les navigateurs, il est conseillé d' utiliser la seconde méthode. La définition des couleurs par nom n' est pas reconnue par le w3c

Code RGB

Les couleurs affichées sur un écran sont le résultat du mélange des 3 couleurs de base : rouge,vert et bleu soit en anglais Red, Green, Blue. C' est pourquoi on parle des couleurs RGB. La variation de la teinte de chacune d' elle permet d' afficher toutes les couleurs existantes.
La définition d' une couleur par son code peut sembler, à première vue, complexe. Le nombre qui définit la couleur est toujours composé de 6 chiffres ou lettres. Les deux premiers définissent l' intensité du rouge, les deux suivants celle du vert et les deux dernières celle du bleu. Elles sont exprimées sous format hexadécimal. Les valeurs de chaque couleurs peuvent varier entre 0 et 255, soit entre 00 et FF en format hexadécimal.

Restrictions

Avec les anciens navigateurs, seules 6 couleurs étaient recommandées  Couleurs sécuritaires
Certains navigateurs, comme Netscape, n' utilise qu 'une palette de 216 couleurs. Les autres couleurs étant substituées par la couleur la plus proche de cette palette. Ces différences de teintes ne sont pas gênantes, mais lorsque l' on utilise des images sur un fond ayant la même valeur il est possible que l' on perçoivent une différence de teinte.
Les couleurs utilisées dans ce cas ne sont composés des teintes 0,51,102,153 et 255, soit 00,33,66,99 et FF. On leur donne le noms de couleurs sécuritaires.
Ainsi, plus de 16 millions de couleurs sont disponibles pour colorer les pages web. Toutefois, étant donné que tous les navigateurs ne reconnaissent pas les couleurs de la même façon, le W3C conseille l'utilisation des couleurs ci-dessous, pour lesquelles un nom intelligible a été donné. Il est donc possible (et conseillé) d'appeler une couleur de la façon suivante :
couleur="nom_de_la_couleur"

Nom de la couleurAperçu Codage RVB
aliceblue███████ aliceblue#F0F8FF
antiquewhite███████ antiquewhite#FAEBD7
aqua███████ aqua#00FFFF
aquamarine███████ aquamarine#7FFFD4
azure███████ azure#F0FFFF
beige███████ beige#F5F5DC
bisque███████ bisque#FFE4C4
black███████ black#000000
blanchedalmond███████ blanchedalmond#FFEBCD
blue███████ blue#0000FF
blueviolet███████ blueviolet#8A2BE2
brown███████ brown#A52A2A
burlywood███████ burlywood#DEB887
cadetblue███████ cadetblue#5F9EA0
chartreuse███████ chartreuse#7FFF00
chocolate███████ chocolate#D2691E
coral███████ coral#FF7F50
cornflowerblue███████ cornflowerblue#6495ED
cornsilk███████ cornsilk#FFF8DC
crimson███████ crimson#DC143C
cyan███████ cyan#00FFFF
darkblue███████ darkblue#00008B
darkcyan███████ darkcyan#008B8B
darkgoldenrod███████ darkgoldenrod#B8860B
darkgray███████ darkgray#A9A9A9
darkgreen███████ darkgreen#006400
darkkhaki███████ darkkhaki#BDB76B
darkmagenta███████ darkmagenta#8B008B
darkolivegreen███████ darkolivegreen#556B2F
darkorange███████ darkorange#FF8C00
darkorchid███████ darkorchid#9932CC
darkred███████ darkred#8B0000
darksalmon███████ darksalmon#E9967A
darkseagreen███████ darkseagreen#8FBC8F
darkslateblue███████ darkslateblue#483D8B
darkslategray███████ darkslategray#2F4F4F
darkturquoise███████ darkturquoise#00CED1
darkviolet███████ darkviolet#9400D3
deeppink███████ deeppink#FF1493
deepskyblue███████ deepskyblue#00BFFF
dimgray███████ dimgray#696969
dodgerblue███████ dodgerblue#1E90FF
firebrick███████ firebrick#B22222
floralwhite███████ floralwhite#FFFAF0
forestgreen███████ forestgreen#228B22
fuchsia███████ fuchsia#FF00FF
gainsboro███████ gainsboro#DCDCDC
ghostwhite███████ ghostwhite#F8F8FF
gold███████ gold#FFD700
goldenrod███████ goldenrod#DAA520
gray███████ gray#808080
green███████ green#008000
greenyellow███████ greenyellow#ADFF2F
honeydew███████ honeydew#F0FFF0
hotpink███████ hotpink#FF69B4
indianred███████ indianred#CD5C5C
indigo███████ indigo#4B0082
ivory███████ ivory#FFFFF0
khaki███████ khaki#F0E68C
lavender███████ lavender#E6E6FA
lavenderblush███████ lavenderblush#FFF0F5
lawngreen███████ lawngreen#7CFC00
lemonchiffon███████ lemonchiffon#FFFACD
lightblue███████ lightblue#ADD8E6
lightcoral███████ lightcoral#F08080
lightcyan███████ lightcyan#E0FFFF
lightgoldenrodyellow███████ lightgoldenrodyellow#FAFAD2
lightgreen███████ lightgreen#90EE90
lightgrey███████ lightgrey#D3D3D3
lightpink███████ lightpink#FFB6C1
lightsalmon███████ lightsalmon#FFA07A
lightseagreen███████ lightseagreen#20B2AA
lightskyblue███████ lightskyblue#87CEFA
lightslategray███████ lightslategray#778899
lightsteelblue███████ lightsteelblue#B0C4DE
lightyellow███████ lightyellow#FFFFE0
lime███████ lime#00FF00
limegreen███████ limegreen#32CD32
linen███████ linen#FAF0E6
magenta███████ magenta#FF00FF
maroon███████ maroon#800000
mediumaquamarine███████ mediumaquamarine#66CDAA
mediumblue███████ mediumblue#0000CD
mediumorchid███████ mediumorchid#BA55D3
mediumpurple███████ mediumpurple#9370DB
mediumseagreen███████ mediumseagreen#3CB371
mediumslateblue███████ mediumslateblue#7B68EE
mediumspringgreen███████ mediumspringgreen#00FA9A
mediumturquoise███████ mediumturquoise#48D1CC
mediumvioletred███████ mediumvioletred#C71585
midnightblue███████ midnightblue#191970
mintcream███████ mintcream#F5FFFA
mistyrose███████ mistyrose#FFE4E1
moccasin███████ moccasin#FFE4B5
navajowhite███████ navajowhite#FFDEAD
navy███████ navy#000080
oldlace███████ oldlace#FDF5E6
olive███████ olive#808000
olivedrab███████ olivedrab#6B8E23
orange███████ orange#FFA500
orangered███████ orangered#FF4500
orchid███████ orchid#DA70D6
palegoldenrod███████ palegoldenrod#EEE8AA
palegreen███████ palegreen#98FB98
paleturquoise███████ paleturquoise#AFEEEE
palevioletred███████ palevioletred#DB7093
papayawhip███████ papayawhip#FFEFD5
peachpuff███████ peachpuff#FFDAB9
peru███████ peru#CD853F
pink███████ pink#FFC0CB
plum███████ plum#DDA0DD
powderblue███████ powderblue#B0E0E6
purple███████ purple#800080
red███████ red#FF0000
rosybrown███████ rosybrown#BC8F8F
royalblue███████ royalblue#4169E1
saddlebrown███████ saddlebrown#8B4513
salmon███████ salmon#FA8072
sandybrown███████ sandybrown#F4A460
seagreen███████ seagreen#2E8B57
seashell███████ seashell#FFF5EE
sienna███████ sienna#A0522D
silver███████ silver#C0C0C0
skyblue███████ skyblue#87CEEB
slateblue███████ slateblue#6A5ACD
slategray███████ slategray#708090
snow███████ snow#FFFAFA
springgreen███████ springgreen#00FF7F
steelblue███████ steelblue#4682B4
tan███████ tan#D2B48C
teal███████ teal#008080
thistle███████ thistle#D8BFD8
tomato███████ tomato#FF6347
turquoise███████ turquoise#40E0D0
violet███████ violet#EE82EE
wheat███████ wheat#F5DEB3
white███████ white#FFFFFF
whitesmoke███████ whitesmoke#F5F5F5
yellow███████ yellow#FFFF00
yellowgreen███████ yellowgreen#9ACD32

FORMATAGE DE TEXTE EN HTML

Votre page contiendra très certainement du texte. Pour ne pas lasser le lecteur, ou pour mettre un mot  en évidence, vous voudrez changer le style de votre texte. Maintenant que vous connaissez les principaux composants d'une page html, nous allons voir en action les différentes balises permettant de formater le texte.


<i> et </i>
<i>ceci est un texte en italique</i>

<u> et </u>
<u>ceci est un texte souligné</u>

<b> et </b>
<b>ceci est un texte en gras</b>

Les titres

Pour mettre en évidence vos données, les balises de titre sont les plus adaptées.
<h1>Titre 1</h1>
<h2>Titre 2</h2>
<h3>Titre 3</h3>
<h4>Titre 4</h4>
<h5>Titre 5</h5>
<h6>Titre 6</h6>


<strike> et </strike>
<strike>ceci est un texte barré</strike>

<center> et </center>

<center>voici un paragraphe que j'ai du allonger pour vous montrer que effectivement il était centré grâce aux balises qui sont de chaque côté, en début de phrase et en fin de phrase... D'ailleurs, je vais continuer pour que vous vous en rendiez compte !!!</center>


<div align="left"> et </div>
<div align="left">Par contre, cette portion de paragraphe a été alignée à gauche de la page grâce à l'action de cette balise <div align=""> mais nous aurions tout aussi bien pu aligner notre texte à droite avec <div align="right"> et nous aurions obtenu l'effet inverse, un alignement du côté droit de la page...Cependant, notez bien la commande de fermeture de cette balise... </div>


<font face="la_police_de_votre_choix" color="votre_couleur_en_ANGLAIS_uniquement" size="1_ou_3_ou..."> et se referme avec </font>
Cette balise possède des propriétés "personnalisables", ie, que vous pouvez modifier à volonté !
Gardez cependant à l'esprit que les polices exotiques ne sont pas correctement lues par tous les navigateurs !

<br> (l'une des rares balises que vous n'aurez pas à refermer)
Vous utiliserez<br>
cette balise<br>
pour pouvoir<br>
passer à la ligne quand<br>
vous le<br>
voulez !!!

Formatage de texte simple


Les balises suivantes vous seront utiles :

Pour mettre un texte en caractère gras <b>Oui</b> Oui
  Vous pouvez égallement utiliser la balise  <strong>Non</strong>  Non
Pour mettre un texte en italique <i>Vous</i> Vous
  Vous pouvez égallement utiliser la balise <em>Nous</em> Nous
Pour souligner un texte <u>hier</u> Hier
Pour barrer un texte <del>hier</del> Hier
Mettre un texte en exposant 1<sup>er</sup> 1er
Mettre un texte en indice H<sub>2O</sub> H2O
Pour agrandir votre texte <big>Grand</big> Grand
Pour rapetisser votre texte <small>Petit</small> Petit
Pour signaler une citation <cite>Citation</cite> Citation
Il n'est pas rare d'utiliser plusieurs balises pour un même élément de texte. Il faut veiller à bien respecter l'ordre des balises entrantes et sortantes.
<b><i>Bon</i></b> Bon est correct
<b><i>...</b></i> fonctionne mais est fortement déconseillé

Il faut savoir qu'en les utilisant, un saut de paragraphe est généré par le navigateur après la balise sortante.

Quelques balise plus particulières

Les navigateurs ne reconnaissent qu'un espace entre les mots. Ce qui peut se révéler gênant dans certaines situations.
La balise <pre> </pre> affiche un texte dit préformaté. Le navigateur prend ainsi en compte tous les espaces et sauts de ligne définis à l'écran.

La balise <adress>...</adress> vous permet d' indiquer une adresse .

Un saut de ligne se fait avec une des rares balise non fermante <br>. Il ne faut pas confondre le saut de ligne avec la balise paragaphe <p>.