Table des matières
Première partie Introduction
Chapitre 1 Repartir de zéro
1.1 Pourquoi choisir JavaScript ?
1.1.1 Préférence utilisateur - Mode B/S
1.1.2 Quand utiliser JavaScript
1.1.3 Quelques malentendus sur JavaScript
1.1.3.1 La relation entre JavaScript et Java
1.1.3.2 Lisp en C
1.1.3.3 Penser JavaScript
1.1.3.4 JavaScript est-il conçu pour les amateurs ?
1.1.3.5 JavaScript est-il orienté objet
1.1.3.6 Autres malentendus
1.1.4 Soyez vigilant ! Tentation de script
1.1.5 Complexité cachée sous une simple apparence
1.1.6 Le choix déroutant : la cerise sur le gâteau ou fournir de l'aide en cas de besoin Partie 1 Introduction
Chapitre 1 Repartir de zéro
1.1 Pourquoi choisir JavaScript ?
1.1.1 Préférence utilisateur - Mode B/S
1.1.2 Quand utiliser JavaScript
1.1.3 Quelques malentendus sur JavaScript
1.1.3.1 La relation entre JavaScript et Java
1.1.3.2 Lisp en C
1.1.3.3 Penser JavaScript
1.1.3.4 JavaScript est-il conçu pour les amateurs ?
1.1.3.5 JavaScript est-il orienté objet
1.1.3.6 Autres malentendus
1.1.4 Soyez vigilant ! Tentation de script
1.1.5 Complexité cachée sous une simple apparence
1.1.6 Le choix déroutant – la cerise sur le gâteau ou l'aide opportune
1.1.7 Retour à la question
1.2 Champ d'application de JavaScript
1.2.1 JavaScript côté client
1.2.2 JavaScript côté serveur
1.2.3 JavaScript dans d'autres environnements
Version JavaScript 1.3
1.3.1 Version JavaScript dans le navigateur
1.3.2 Autres crackées
1.4 Quelques fonctionnalités à noter
1.4.1 Petite astuce - code magique magique
1.4.2 Servir les clients – Hello World ! Une autre implémentation JavaScript de
1.4.3 Interaction avec les données : une fonction puissante de JavaScript
1.4.4 Les tabous apparents de JavaScript et comment les briser
1.5 Sécurité et efficacité d'exécution
1.5.1 La sécurité des données : un sujet toujours sensible
1.5.2 Combat réel ! Attaque et Défense
1.5.3 Pas de négligence - faites toujours attention aux performances
1.6 Un exemple - Calculatrice écrite en JavaScript
1.6.1 Commencez par l'analyse des besoins - Qu'est-ce qu'une calculatrice ?
1.6.2 Conception du système : comment mettre en œuvre une calculatrice ?
1.6.3 Implémentation du système - l'implémentation finale de la calculatrice
1.6.4 Amélioration continue – processus de développement logiciel itératif
1.7 Quelques suggestions pour apprendre et utiliser JavaScript
1.7.1 Pensez comme un programmeur : les quatre domaines des programmeurs
1.7.2 Chérissez votre code
1.7.3 Apprenez à déboguer dans l'environnement
1.7.4 Attention aux petits défauts
1.7.5 Réfléchissez avant de vous entraîner – n'écrivez pas de code facilement
1.7.6 Regardez toujours en arrière - même les sages ne peuvent pas prédire complètement l'avenir
1.8 À propos du reste du livre
Chapitre 2 JavaScript dans le navigateur
2.1 Contenu exécutable intégré dans les pages Web
2.1.1 Où charger le code JavaScript
2.1.2 A propos de la balise Script du code
2.1.3 Quand mon code sera-t-il exécuté - Code JavaScript dans différentes périodes d'exécution
2.1.4 Emprunt – Présentation de fichiers JavaScript externes
2.2 Effets spéciaux agréables
2.2.1 La vie réside dans le mouvement - L'effet du DHTML
2.2.2 Changez votre style - la puissance du CSS
2.2.3 Utiliser JavaScript pour manipuler le DOM - un exemple de fenêtre déplaçable
2.3 Utilisez JavaScript pour interagir avec les utilisateurs
2.3.1 Créer une aide contextuelle et une barre de progression
2.3.2 Mauvaise saisie
2.4 Évitez les pièges des scripts
2.4.1 La réalité n'est pas toujours parfaite
2.4.2 Ne croyez pas complètement ce que vous voyez
2.5 Résumé
Chapitre 3 Environnement de développement et méthode de débogage
3.1 Que puis-je utiliser pour écrire des scripts ? Un éditeur de texte adapté à l'écriture de JavaScript
3.2 Prise en charge depuis le navigateur
3.2.1 Navigateurs grand public
3.2.2 Navigateurs non traditionnels
3.3 Environnement de développement intégré
3.3.1 Qu'est-ce qu'un environnement de développement intégré
3.3.2 Ai-je besoin d'un environnement de développement intégré
3.3.3 Environnement de développement intégré adapté à JavaScript
3.4 Outils de débogage : un outil puissant pour améliorer l'efficacité du développement
3.4.1 Qu'est-ce que le débogage
3.4.2 Méthode de débogage originale - débogage à l'aide d'instructions de sortie, d'un mécanisme de "réflexion" et d'objets de débogage
3.4.3 Outils de débogage adaptés à JavaScript
3.5 Localisation du code et de la pile d'appels
3.5.1 Étape par étape - Étape unique et point d'arrêt
3.5.2 Surveiller la mémoire
3.5.3 Recherchez la source du problème : affichez la pile d'appels
3.5.4 Problèmes rencontrés : pourquoi ne puis-je pas retrouver le code
3.6 Exception de capture du navigateur
3.6.1 Mécanisme de gestion des exceptions - un exemple de modèle try/catch/finally
3.6.2 Types d'exceptions
3.6.3 Quand faut-il « manger » les exceptions
3.7 Résumé
Partie 2 JavaScript Core
Chapitre 4 Structure du langage
4.1 Grammaire de base de JavaScript
4.1.1 Jeu de caractères
4.1.2 Sensible à la casse
4.1.3 Séparateur
4.1.4 Mots, phrases et paragraphes
4.1.5 Point-virgule
4.1.6 Marque
4.1.7 Commentaires
4.1.8 Mots réservés
4.2 Constantes et variables
4.2.1 Constantes et variables
4.2.2 Identificateur de variable
4.2.3 Type de variable
4.2.4 Déclaration des variables
4.2.5 Portée des variables
4.3 Expressions et opérateurs
4.3.1 Expression
4.3.2 Aperçu de l'opérateur
4.3.3 Opérateurs arithmétiques
4.3.4 Opérateurs relationnels
4.3.5 Opérateurs logiques
4.3.6 Opérateurs bits
4.3.7 Opérateur d'affectation
4.3.8 Autres opérateurs
4.3.8.1 Opérateur conditionnel
4.3.8.2 Opérateur virgule
4.3.8.3 Opérateurs d'objet
4.3.8.4 Opérateurs de type
4.3.8.5 opérateur void
4.3.8.6 Opérateur d'appel de fonction
4.4 Déclarations de contrôle
4.4.1 Énoncé d'expression
4.4.2 Bloc de relevé
4.4.3 Instruction conditionnelle
4.4.4 Instruction de boucle
4.4.5 Déclaration de saut
4.4.6 Déclarations de gestion des exceptions
4.4.7 Autres déclarations
4.4.7.1 instruction var
4.4.7.2 instruction de fonction
4.4.7.3 avec déclaration
4.4.7.4 Déclaration vide
4.5 Résumé
Chapitre 5 Types de données
5.1 Types de données de base
5.1.1 Valeur
5.1.2 Chaîne - un exemple d'opérations liées aux chaînes
5.1.3 Type booléen
5.2 Tableaux et objets
5.2.1 Tableau
5.2.2 Objet - un exemple de constructeur
5.3 Type de fonction - un exemple de fonction et de fermeture
5.4 Le magique nul et indéfini
5.4.1 nul
5.4.2 non défini - type unique
5.5 Expressions régulières
5.5.1 Constantes d'expression régulière
5.5.2 Objet d'expression régulière
5.6 Types de valeur et types de référence
5.6.1 Que sont les valeurs et les références de valeurs
5.6.2 Utiliser des valeurs et utiliser des références
5.6.3 Concrackée entre valeurs et références : boxing et unboxing
5.7 Identification de type et concrackée de type
5.7.1 Reconnaissance de type d'exécution - deux exemples de reconnaissance de type en cours d'exécution
5.7.2 Concrackée de type automatique et exemples
5.7.3 Concrackée de type forcée et ses exemples
5.7.4 Utilisation avancée - un exemple de concrackée de type personnalisé
5.8 Attention aux pièges numériques
5.8.1 Confusion - problème de précision des nombres à virgule flottante
5.8.2 Correction d'erreurs et exemples
5.9 Résumé
Chapitre 6 Fonction
6.1 Définition de fonction et appel de fonction
6.1.1 Définition de la fonction
6.1.1.1 Définitions de fonctions déclaratives et expressions de fonctions et leurs exemples
6.1.1.2 Le secret des fonctions JavaScript - code magique
6.1.2 Appel de fonction
6.2 Paramètres de fonction
6.2.1 Paramètres formels et réels
6.2.2 Objet Arguments
6.2.2.1 Un exemple d'utilisation de l'objet Arguments pour détecter des paramètres formels
6.2.2.2 Un exemple d'utilisation de l'objet Arguments pour recevoir un nombre quelconque de paramètres
6.2.2.3 Un exemple d'utilisation de l'objet Arguments pour simuler la surcharge de fonctions
6.2.3 Correspondance de types de paramètres - un exemple d'utilisation d'arguments pour implémenter un mécanisme de surcharge de fonctions
6.3 Appelants et propriétaires de fonctions
6.3.1 Appelant de fonction
6.3.2 Propriétaire d'une fonction - un exemple de spécification d'un propriétaire pour une fonction
6.3.3 Appel dynamique - propriétaire étranger
6.4 Constantes de fonction et fermetures
6.4.1 Fonctions anonymes
6.4.2 Référence de fonction
6.4.3 Paramètres de fonction et valeurs de retour de fonction et leurs exemples
6.4.4 Utilisation avancée - fermeture en tant que domaine local et évaluation différée
6.5 Abstraction de haut niveau - Type de fonction et modèle de fonction
6.5.1 Création dynamique de fonctions - un exemple d'utilisation de Function pour implémenter l'opérateur Lambda
6.5.2 Modèle - Usine de fonctions et ses instances
6.6 Résumé
Chapitre 7 Objet
7.1 Qu'est-ce qu'un objet
7.2 Propriétés et méthodes des objets
7.2.1 Propriétés intégrées des objets
7.2.2 Ajouter et supprimer des attributs aux objets
7.2.3 Mécanisme de réflexion - propriétés de l'objet d'énumération
7.3 Construction d'objets
7.3.1 Constructeur - un exemple de classe wrapper de nombres à virgule flottante double précision
7.3.2 Construction par défaut et construction par copie
7.3.3 Constantes d'objet
7.4 Destruction des objets et recyclage des unités de stockage
7.5 Objets intégrés de JavaScript
7.5.1 Objet mathématique
7.5.2 Objet Date : créez un calendrier simple
7.5.3 Objet d'erreur
7.5.4 Autres objets intégrés
7.5.5 Objets spéciaux - objets globaux et objets appelants
7.6 Résumé
Chapitre 8 Rassemblement
8.1 Tableaux et éléments de tableau
8.1.1 Construction du tableau
8.1.2 Constante de tableau
8.1.3 Éléments du tableau
8.2 Objets et méthodes de tableau
8.2.1 Rechercher des éléments
8.2.2 Ajout et suppression d'éléments
8.2.3 Définir des opérations et des exemples
8.2.3.1 Méthode join()
8.2.3.2 Méthode reverse()
8.2.3.3 Méthode sort()
8.2.3.4 Méthode concat()
8.2.3.5 Méthode slice()
8.2.3.6 Méthode splice()
8.2.3.7 Méthode toSgring() et méthode toLocaleString()
8.3 Table de hachage
8.3.1 Qu'est-ce qu'une table de hachage
8.3.2 Construction de la table de hachage
8.3.3 Implémenter un type HashTable simple
8.4 Utilisation avancée - définir les opérations et les fermetures
8.5 Résumé
Chapitre 9 Chaîne
9.1 Construction des cordes
9.1.1 Constantes de chaîne
9.1.2 Séquences d'échappement
9.1.3 Constructeur de chaînes
9.2 Utilisation des ficelles
9.2.1 Comparaison de chaînes
9.2.2 Extraction et récupération de sous-chaînes
9.2.3 Concaténer et diviser des chaînes
9.2.4 Correspondance de modèles de chaînes - un exemple de vérification du format de chaîne
9.2.5 Autres méthodes
9.3 Chaînes et tableaux de caractères
9.4 Traitement des chaînes et du texte - Lecteur d'enregistrements d'échecs JavaScript (1)
9.4.1 Analyse des exigences - Que sont les records d'échecs et les lecteurs de records d'échecs
9.4.2 Conception du système - Description de chaîne des enregistrements d'échecs et des données de l'échiquier
9.4.3 Implémentation du système - analyse et traitement des enregistrements d'échecs
9.4.4 Lecteur complet de records d'échecs
9.5 Résumé
Chapitre 10 Expressions régulières
10.1 Qu'est-ce qu'une expression régulière
10.1.1 Le concept d'expression régulière
10.1.2 Expressions régulières en JavaScript
10.2 Règles des expressions régulières
10.2.1 Caractère littéral
10.2.2 Classes de caractères et opérations booléennes
10.2.3 Répéter
10.2.4 Sélection, regroupement et référencement
10.2.5 Spécifier la position correspondante
10.2.6 Drapeaux - Règles pour la correspondance de modèles avancée
10.3 Correspondance de motifs
10.3.1 Méthodes de chaînes et exemples de correspondance de modèles
10.3.2 Méthode RegExp pour la correspondance de modèles
10.3.2.1 Un exemple d'utilisation de la méthode exec() pour obtenir l'anniversaire à partir du numéro d'identification
10.3.2.2 Un exemple d'utilisation de la méthode test() pour parcourir une chaîne
10.4 À propos des objets wrapper d'expression régulière
10.4.1 Objet RegExp - utilisation d'expressions régulières pour réaliser une recherche en texte intégral
10.4.2 Propriétés d'instance de RegExp
10.5 Expressions régulières puissantes
10.5.1 Analyser les parties locales des expressions régulières
10.5.2 Un exemple : un éditeur en ligne puissant
10.5.3 Construire une nouvelle grammaire - un exemple d'implémentation de l'analyseur JSVM2 dans JSVM
10.6 Utilisation avancée
10.7 Traitement du texte avec des expressions régulières
10.7.1 Créer un éditeur de formule de tarification
10.7.1.1 Analyse des exigences – Qu'est-ce que l'éditeur de formule de tarification
10.7.1.2 Implémentation du système --implémentation de l'éditeur de formules de tarification
10.7.2 Créer un lecteur de paroles à défilement synchrone
10.7.2.1 Analyse des exigences - Qu'est-ce qu'un lecteur de paroles à défilement synchrone
10.7.2.2 Conception et mise en œuvre du système - traitement des paroles LRC
10.8 Résumé
Partie 3 Navigateur et DOM
Chapitre 11 Objet du navigateur
11.1 Objet Window – l'objet de navigateur le plus basique
11.1.1 Aperçu des objets fenêtre
11.1.2 Cycle de vie de l'objet Window
11.1.3 Propriétés et méthodes de l'objet Window
11.1.4 Un exemple d'application multi-fenêtres
11.2 Objet Document - représentatif du contenu du document de la fenêtre du navigateur
11.2.1 Présentation des objets de document
11.2.2 Documents générés dynamiquement
11.2.3 Informations de base de l'objet Document
11.2.4 Propriétés d'apparence de l'objet Document
11.2.5 Interface du sous-objet du document
11.2.5.1 Un exemple de parcours d'objets Anchors
11.2.5.2 Un exemple d'image à l'envers
11.3 Boîte de dialogue et barre d'état
11.3.1 Créer une boîte de dialogue simple
11.3.2 Autres types de boîtes de dialogue
11.3.2.1 Simulation de boîtes de dialogue - exemples de création d'une boîte de dialogue de fenêtre et de blocage de la boîte de dialogue
11.3.2.2 showModalDialog et showModelessDialog - pas les normes W3C ou ECMAScrip
11.3.3 Barre d'état
11.4 Framework - objet Fenêtre supérieure
11.4.1 Application multi-framework
11.4.2 Relation entre les frameworks
11.4.3 Dénomination du framework
11.4.4 JavaScript dans les sous-frames
11.4.5 Application du framework - affichage multi-onglets
11.4.5.1 Que sont les onglets
11.4.5.2 Implémentation des onglets--Créer une page contenant des onglets
11.5 Formulaires et objets de formulaire
11.5.1 Objets de formulaire et leurs exemples
11.5.2 Définir les éléments du formulaire
11.5.3 Validation du formulaire client et exemples
11.5.4 Créer un composant universel de validation de formulaire client
11.6 Autres objets intégrés
11.6.1 Objet Navigateur - représentatif des informations globales du navigateur
11.6.2 Objet Écran : fournit des informations sur la résolution d'affichage et le nombre de couleurs disponibles
11.6.3 Objet de localisation - représente l'URL du document affiché dans la fenêtre actuelle
11.6.4 Objet historique - un objet intéressant
11.7 Résumé
Chapitre 12 Modèle objet de document
12.1 Qu'est-ce que DOM
12.1.1 Représenter les documents sous forme d'arbres
12.1.2 Nœuds d'arbre
12.1.3 Propriétés et méthodes communes des objets DOM
12.1.4 Relation entre la structure HTML et les objets DOM--Utilisez JavaScript pour faire fonctionner des documents HTML via DOM
12.2 Implémentation du DOM et du navigateur
12.2.1 À propos de l'API HTML DOM
12.2.2 Niveaux et caractéristiques du DOM
12.2.3 Cohérence du DOM
12.2.4 Différence : dialecte DOM du navigateur
12.3 Un ensemble de "boîtes" - éléments DOM
12.3.1 « Boîtes » imbriquées
12.3.2 Classification des « cartons » et du contenu des « cartons »
12.4 Créer et supprimer des nœuds
12.4.1 Construire un nouveau nœud
12.4.2 Expansion du plan - directement créée via les éléments du document
12.4.3 Récupérer de l'espace - supprimer les nœuds inutilisés
12.5 Accéder et manipuler les nœuds DOM
12.5.1 Ouvrir chaque boîte - nœuds traversants
12.5.2 Clarifier la relation hiérarchique - père, fils et frère
12.5.3 Comment rechercher un nœud spécifique
12.5.4 Nœud Clone - un exemple d'utilisation de cloneNode() pour copier une table
12.5.5 Nœuds mobiles et leurs exemples
12.5.6 Conseils pour ajouter de nouvelles lignes et trier
12.6 Lire et écrire des données – ajouter, modifier et supprimer des attributs
12.7 Apparence et comportement
12.7.1 Attributs de style DOM
12.7.2 Contrôler l'affichage et le masquage des éléments DOM
12.7.3 Changer la couleur et la taille : un exemple simple et intéressant
12.7.4 Changer de position – Créer un texte qui tourne autour d'un cercle
12.7.5 Modification des contrôles et des exemples
12.7.6 Changer de style et leurs exemples
12.7.7 Changer de comportement
12.8 XML-DOM
12.8.1 Qu'est-ce que XML DOM
12.8.2 Comment utiliser XML DOM - un exemple d'utilisation de XML pour implémenter une zone de sélection déroulante associée à plusieurs niveaux
12.9 Résumé
Chapitre 13 Gestion des événements
13.1 Qu'est-ce qu'un événement
13.1.1 Réponse aux messages et aux événements
13.1.2 Mécanisme piloté par les événements du navigateur
13.2 Gestion des événements de base
13.2.1 Événements et types d'événements
13.2.2 Liaison des événements
13.2.3 Appeler directement la fonction de traitement des événements
13.2.4 Valeur de retour de la fonction de gestion des événements
13.2.5 Réponse à un événement avec paramètres et exemples
13.2.6 Mot-clé « ce »
13.3 Modèle d'événement standard
13.3.1 Bulles et capture - Propagation des événements du navigateur
13.3.2 Enregistrement de la fonction de gestion des événements
13.3.3 Enregistrez des objets en tant que gestionnaires d'événements
13.3.4 Modules d'événements et types d'événements
13.3.5 À propos de l'interface des événements
13.3.5.1 Propriétés et méthodes de l'interface Événement
13.3.5.2 Propriétés de l'interface UIEvent
13.3.5.3 Propriétés de l'interface MouseEvent
13.3.5.4 Interface MutationEvent
13.3.6 Modèle d'événement mixte
13.3.7 Événements synthétiques
13.4 Implémentation du modèle de traitement des événements du navigateur
13.4.1 Modèle d'événement Internet Explorer
13.4.1.1 À propos de l'inscription aux événements IE
13.4.1.2 Propriétés de l'objet événement IE
13.4.1.3 Événement bouillonnant dans IE
13.4.2 Modèle d'événement Netscape 4
13.4.2.1 Capture d'événements et exemples dans Netscape 4
13.4.2.2 Propriétés des objets événement Netscape 4
13.5 Rappels et événements définis par l'utilisateur
13.5.1 Modèle de traitement d'événements – un exemple d'implémentation d'un modèle de traitement d'événements simple
13.5.2 Définition de l'interface des événements utilisateur
13.5.3 Proxy d'événement et enregistrement d'événement - un exemple de mise en œuvre d'une interface d'événement standard
13.5.4 Mode standard - envoi et réception d'événements
13.6 Un exemple : tableau de données amélioré
13.6.1 Qu'est-ce qu'un tableau de données amélioré
13.6.2 Un exemple de fixation de l'en-tête de tableau à l'aide d'une double imbrication de table
13.6.3 Implémentation de la largeur de colonne variable
13.6.4 Marquer la ligne : présenter une couleur d'arrière-plan différente des autres lignes
13.6.5 Astuces - Ajouter du code à la feuille de style
13.7 Résumé
Chapitre 14 Feuilles de style en cascade
14.1 Qu'est-ce que les feuilles de style en cascade
14.1.1 Styles CSS et feuilles de style
14.1.2 Standardisation du CSS
14.1.3 CSS pris en charge par les navigateurs
14.2 JavaScript et CSS
14.2.1 La relation entre CSS et DOM
14.2.2 Relation entre CSS et IE
14.2.3 Compatibilité CSS du navigateur
14.3 Contrôlez CSS pour changer le style de la page
14.3.1 Mise en œuvre de la séparation entre structure et représentation et ses exemples
14.3.2 Utilisez JwaScript et CSS pour réaliser le remplacement en temps réel de plusieurs styles de la page
14.4 Résumé
Chapitre 15 Script du stockage de données
15.1 Que sont les cookies
15.1.1 Cookies du navigateur et du client
15.1.2 Propriétés des cookies
15.2 Accès client aux cookies
15.2.1 Stockage des cookies
15.2.2 Lecture des cookies
15.3 Limitations sur les cookies
15.4 Exemple de cookie : rendez les salutations plus chaleureuses
15.5 Encapsulation des objets cookies
15.6 Qu'est-ce que userData
15.6.1 Données utilisateur du navigateur et du client
15.6.2 Déclaration des userData
15.6.3 Propriétés et méthodes UserData
15.7 Accès client à userData
15.7.1 Stockage et lecture des userData
15.7.2 Sécurité des données utilisateur
15.8 Limites de userData
15.9 Comparaison entre userData et cookie
15.10 Exemple userData - un exemple d'utilisation de userData pour enregistrer les données de formulaire côté client
15.11 Résumé
Partie 4 Interaction avec les données
Chapitre 16 Synchronisation et asynchrone
16.1 Qu'est-ce que la synchronisation et l'asynchronisme
16.2 Réglage du délai d'attente et intervalle de temps
16.3 Utilisation de la minuterie --écoute et interception
16.3.1 Mode standard - moniteur et ses exemples
16.3.2 Problèmes auxquels il convient de prêter attention lors de l'utilisation des minuteries
16.4 Un exemple : une belle horloge Web
16.4.1 Qu'est-ce qu'une horloge Web ?
16.4.2 L'horloge web la plus simple
16.4.3 Conception de l'horloge Web
16.4.4 Code source complet de l'horloge Web
16.5 Résumé
Chapitre 17 XML DOM et XML HTTP
17.1 Qu'est-ce qu'un objet XML DOM
17.1.1 Introduction au XML DOM
17.1.2 Interface XML DOM prise en charge par les navigateurs
17.1.2.1 Interface standard XML DOM
17.1.2.2 Composant XML DOM d'IE
17.1.2.3 Manipulation de documents XML - un exemple d'utilisation de MSXML pour manipuler des documents XML
17.2 Compatibilité des crackées de XML DOM - Application multi-navigateurs de XML DOM
17.3 Gestion des erreurs XML DOM
17.3.1 Objet ParseError pour gérer les informations d'erreur
17.3.2 Documents contenant des messages d'erreur
17.4 Manipulation XML DOM des documents XML
17.4.1 Nœud d'accès
17.4.2 Créer un nouveau nœud
17.4.3 Déplacer et modifier des nœuds et leurs exemples
17.4.4 Lecture et écriture des attributs du nœud et lecture et écriture des données
17.4.5 Enregistrer le document
17.5 Un exemple de lecteur d'enregistrements d'échecs JavaScript (2)
17.5.1 Utiliser XML pour décrire les records d'échecs
17.5.2 Convertir les enregistrements d'échecs XML en enregistrements d'échecs SGF
17.6 Qu'est-ce qu'un objet HTTP XML
17.6.1 Introduction aux objets XML HTTP
17.6.2 Objets HTTP XML pris en charge par les navigateurs
17.7 Envoi de requêtes via XML HTTP
17.7.1 Établir une connexion
17.7.2 Envoyer la demande
17.8 Lecture et paramétrage des en-têtes HTTP
17.8.1 Que sont les en-têtes HTTP
17.8.2 Lecture et paramétrage des en-têtes HTTP
17.9 Réponse du serveur
17.9.1 Réponses synchrones et asynchrones et leurs exemples
17.9.2 ResponseText et ResponseXML contenant le contenu du texte de réponse
17.10 Résumé
Chapitre 18 Introduction à Ajax
18.1 Qu'est-ce que l'Ajax
18.1.1 L'Ajax n'est pas mystérieux
18.1.2 Scénarios d'application Ajax
18.1.3 Concurrents d'Ajax – autres technologies alternatives
18.2 Une exploration préliminaire d'Ajax - mon premier programme Ajax
18.2.1 Commencez avec une application standard – un simple salon de discussion en temps réel
18.2.2 Actualisation de page ennuyeuse
18.2.3 Solution sans actualisation : salle de discussion améliorée
18.2.4 Travail asynchrone : la solution au décalage
18.3 Analyse des principes d'Ajax
18.3.1 Communication XML HTTP en temps réel et un exemple simple d'encapsulation de l'objet AjaxProxy
18.3.2 Affichage dynamique des données : une fonctionnalité importante d'Ajax pour améliorer l'expérience interactive
18.3.3 Tirer parti de la puissance de XML
18.3.4 Tout lier avec JavaScript
18.3.5 Normes derrière les candidatures
18.4 Exemple Ajax - outil de chat en temps réel
18.4.1 Qu'est-ce qu'un outil de chat en direct
18.4.2 Analyse des exigences - Points clés pour la mise en œuvre de la fonction de chat en temps réel
18.4.3 Implémentation du système --implémentation de la fonction de chat en temps réel
18.4.4 Résumé
18.5 Résumé
Chapitre 19 Normes et compatibilité
19.1 Organismes de normalisation
19.1.1 Normes W3C et DOM
19.1.2 Normes ECMA et JavaScript
19.1.3 Normes Internet
19.2 Compatibilité des plateformes et navigateurs
19.2.1 Méthode du plus petit dénominateur commun
19.2.2 Codage défensif
19.2.3 Détecteur de clients
19.2.4 Détection de fonctionnalités
19.2.5 Mise en œuvre des normes
19.2.6 Arrêt modéré
19.3 Compatibilité des crackées linguistiques
19.3.1 attribut de langue
19.3.2 Test des crackées
19.4 Comment implémenter des applications multi-navigateurs
19.4.1 Compromis – Délimitation de la portée du support
19.4.2 Conception du module de base - détection de compatibilité indépendante
19.4.3 Division des niveaux d'exécution
19.4.4 Donnez les bonnes informations – ne rendez pas votre code silencieux
19.4.5 Tests d'application adéquats : le « diable de la compatibilité » « donnera toujours un coup de pied à votre chien » lorsque vous n'y prêtez pas attention
19.4.6 Norme de proximité et principe de proximité
19.5 Regard vers l'avenir
19.6 Résumé
Chapitre 20 Sécurité des informations
20.1 Informations privées de l'utilisateur
20.2 Opérations interdites et restreintes
20.2.1 Propriétés restreintes
20.2.2 Opérations restreintes
20.2.3 Niveau de sécurité des scripts
20.2.4 Débogage des scripts
20.3 Méfiez-vous des attaquants dans les coulisses
20.3.1 Moyens d'attaque
20.3.2 Flux de données masqué
20.3.3 Déguisement des pages
20.3.4 Indices trouvés
20.3.5 Mesures de prévention
20.3.5.1 Cryptage des données transmises
20.3.5.2 Masquer le code source aux utilisateurs
20.4 Politique de même origine
20.4.1 Quelle est la même politique d'origine
20.4.2 Avantages et inconvénients de la politique de même origine
20.4.3 Briser la stratégie de même origine
20.5 Zones de sécurité et scripts signés
20.5.1 Solution de politique de sécurité configurable
20.5.2 Zone de sécurité d'Internet Explorer
20.5.3 Script de signature de Netscape
20.6 Sécurité du code lui-même - cryptage et obscurcissement
20.6.1 Pourquoi le cryptage et l'obscurcissement
20.6.2 Technologie de chiffrement côté client et exemples
20.6.3 Principe d'obscurcissement du code
20.6.4 Outil d'obscurcissement de code JavaScript - un exemple d'algorithme d'obfuscation de code
20.6.5 Combinaison de cryptage et d'obscurcissement
20.7 Résumé
Partie 5 Au-delà de JavaScript
Chapitre 21 Orienté objet
21.1 Qu'est-ce que l'orientation objet
21.1.1 Classes et objets
21.1.2 Encapsulation d'attributs publics et privés
21.1.3 Types de propriétés et méthodes
21.2 Prototype magique
21.2.1 Qu'est-ce qu'un prototype
21.2.2 Conseils d'utilisation du prototype
21.2.2.1 Ajouter des propriétés aux objets prototypes
21.2.2.2 Objet point avec valeur par défaut
21.2.2.3 L'opération de suppression restaure les propriétés de l'objet aux valeurs par défaut
21.2.2.4 Utiliser un prototype pour concevoir des getters
21.2.2.5 L'opération de suppression restaure la visibilité des propriétés du prototype
21.2.2.6 Utiliser un prototype pour créer un grand nombre de copies
21.2.2.7 Définir des méthodes statiques à l'aide d'un prototype
21.2.3 L'essence du prototype et ses exemples
21.2.4 La valeur et les limites du prototype
21.3 Héritage et polymorphisme
21.3.1 Qu'est-ce que l'héritage
21.3.2 Méthodes pour mettre en œuvre l'héritage
21.3.2.1 Méthode d'héritage structurel et ses exemples
21.3.2.2 Héritage prototypique et ses exemples
21.3.2.3 Méthode d'héritage d'instance et ses exemples
21.3.2.4 Copier le droit des successions et ses exemples
21.3.2.5 Comparaison de plusieurs méthodes d'héritage
21.3.2.6 Droit des successions mixtes et ses exemples
21.3.3 Héritage unique et héritage multiple
21.3.4 Interface et sa mise en œuvre
21.3.5 Polymorphisme et sa mise en œuvre
21.4 Construction et destruction
21.4.1 Constructeur
21.4.2 Constructions multiples
21.4.3 Destruction
21.5 Mystère ! "ce" labyrinthe
21.5.1 D'innombrables pièges - le mystère inquiétant de "ceci"
21.5.1.1 Utilisation de ce pronom
21.5.1.2 ce « piège »
21.5.1.3 Problème asynchrone de ce pronom
21.5.2 Remplacement des avantages et des inconvénients - mauvaises habitudes d'utilisation
21.5.3 Appel asynchrone - Qui a touché mon "ceci"
21.5.4 Découvrir la vérité – La nature de « ceci » en JavaScript
21.5.5 Plus de difficulté - Utilisez la fermeture pour corriger "cette" référence
21.6 Emballage d'objets
21.6.1 Distinguer valeurs et références
21.6.2 Emballage et déballage
21.7 Métaclasse, modèle de classe
21.7.1 Qu'est-ce qu'une métaclasse
21.7.2 Métaclasse – la classe qui construit la classe
21.7.3 Pourquoi utiliser la métaclasse
21.7.4 Cours d'usine
21.7.4.1 Qu'est-ce qu'une fabrique de classes
21.7.4.2 Pourquoi construire une usine de classe
21.8 Qui est le Créateur
21.8.1 Des principes qui s'appliquent à tout
21.8.2 Le summum de l'abstraction - un exemple de motif abstrait
21.8.3 Retour à la nature, architecture homologue
21.9 Résumé
Chapitre 22 Fermetures et programmation fonctionnelle
22.1 Langues dynamiques et fermetures
22.1.1 Langage dynamique
22.1.2 Domaine de syntaxe et domaine d'exécution
22.1.3 Fermetures JavaScript - un exemple qui reflète l'essence des fermetures
22.2 Caractéristiques et formes de fermeture
22.2.1 L'intérieur de la fermeture - le royaume de l'autonomie
22.2.2 Accès à l'environnement externe - un exemple d'utilisation de fermetures pour modifier l'environnement externe
22.2.3 Fermetures et orienté objet
22.2.4 Autres formes de fermeture
22.3 Scénarios où la fermeture ne convient pas
22.4 Programmation fonctionnelle
22.4.1 Qu'est-ce que la programmation fonctionnelle
22.4.1.1 Les fonctions sont du premier type
22.4.1.2 Fermetures et programmation fonctionnelle
22.4.1.3 Curry, un concept intéressant
22.4.1.4 Évaluation et continuation différées - un exemple de séquence infinie de Fibonacci
22.4.2 Programmation fonctionnelle, formulation et modèles mathématiques - un exemple d'équation parabolique
22.4.3 Avantages de la programmation fonctionnelle
22.4.3.1 Avantages des tests unitaires
22.4.3.2 Avantages du débogage
22.4.3.3 Avantages du parallélisme
22.4.3.4 Avantages du déploiement de code chaud
22.4.3.5 Raisonnement et optimisation assistés par machine
22.4.4 Inconvénients de la programmation fonctionnelle
22.4.4.1 Effets secondaires des fermetures
22.4.4.2 Forme récursive
22.4.4.3 Effets secondaires d'une évaluation retardée
22.5 Fermetures et orienté objet
22.5.1 Domaine privé
22.5.2 Gestion des espaces de noms
22.5.3 Amitié - un concept très intéressant
22.6 Code JavaScript de style Python
22.6.1 Le code le plus simple
22.6.2 Réutilisation légère
22.6.2.1 JSON
22.6.2.2 Fonctionnel
22.6.2.3 Fonction d'itération - un exemple de fonction d'itération de tableau
22.6.3 Gestion des modules et ses exemples
22.7 Résumé
Chapitre 23 Gestion au niveau du module
23.1 Gestion modulaire
23.1.1 Modularisation - Réutilisation du code
23.1.2 Gestion des modules JavaScript
23.2 Principe ouvert-fermé et orienté interface
23.2.1 Principe ouvert et fermé
23.2.2 Orienté interface
23.3 Gestion des espaces de noms
23.3.1 Qu'est-ce qu'un espace de noms
23.3.2 Pourquoi utiliser des espaces de noms
23.3.3 Gestion des espaces de noms JavaScript
23.4 Appeler des dépendances
23.4.1 Dépendances des modules
23.4.2 Gestion des dépendances des modules
23.5 Utiliser le code pour gérer le code
23.5.1 Gestion de l'environnement d'exécution
23.5.2 Code géré – un simple « conteneur » de code géré
23.5.3 Un conteneur complet de gestion de code
23.6 Résumé
Chapitre 24 Construction dynamique
24.1 Laissez le code écrire le code
24.1.1 Analyse dynamique des scripts
24.1.2 Extension de la grammaire - Créez votre propre langue
24.2 « Inventer » la grammaire
24.2.1 Expressions régulières, analyse syntaxique et exemples
24.2.2 Une implémentation simple d'un analyseur de grammaire
24.2.2.1 Qu'est-ce que la syntaxe JavaScript 2.0
24.2.2.2 Implémentation de certaines fonctionnalités clés de la syntaxe JavaScript 2.0
24.3 Implémentez votre propre dialecte - LispScript
24.3.1 De JavaScript à Lisp
24.3.2 Travail initial - code JavaScript général
24.3.3 Axiomes, expressions
24.3.4 Sept postulats de base de la programmation fonctionnelle
24.3.4.1 Postulat « de référence »
24.3.4.2 Postulat « atomique »
24.3.4.3 Postulat « Valeur égale »
24.3.4.4 Postulat "En-tête de tableau"
24.3.4.5 Postulat « Table des restes »
24.3.4.6 Postulat « table de somme »
24.3.4.7 Postulat « Conditionnel »
24.3.5 Grammaire des fonctions
24.3.6 Définir de nouvelles fonctions à l'aide de LispScript
24.3.7 Une surprise--_évaluation
24.3.8 Autres extensions
24.3.9 Résumé
24.3.10 Environnement d'exécution et conteneur de code - examinez les performances réelles du LispScript "récemment inventé"
24.4 Résumé
Chapitre 25 Efficacité d'exécution
25.1 Pourquoi devrions-nous discuter de l'efficacité de l'exécution
25.1.1 Plaintes des clients – Quelle est la lenteur de JavaScript
25.1.2 À qui la faute si le code ralentit
25.2 Le prix de fermeture
25.2.1 Problèmes de performances liés à une encapsulation excessive
25.2.2 Avantages et inconvénients du masquage d'informations
25.2.3 Coût de construction des objets
25.3 Feu qui coule dans la boîte
25.3.1 Surcharge de mémoire DOM
25.3.2 Gestion de la mémoire du navigateur
25.3.3 Voir clairement un fait : l'existence de fuites de mémoire
25.3.4 Remarque--Fermez votre « boîte » à temps
25.3.5 Clarification de certains malentendus
25.3.5.1 Le script crée dynamiquement un DOM provoquant une fuite de mémoire
25.3.5.2 Les fermetures provoquent des fuites de mémoire
25.4 Actualités - Diables et Anges
25.4.1 Analyse des performances de l'analyse dynamique - un test d'efficacité des caractéristiques dynamiques
25.4.2 Efficacité du développement et efficacité de l'exécution - un choix toujours difficile
25.4.3 Beauté et applicabilité - Apprenez à résister à la tentation du diable
25.4.4 Agir comme un ange aux yeux des clients
25.5 Laissez le code danser
25.5.1 La simplicité est belle - code minceur
25.5.2 L'application la plus parfaite est de ne pas utiliser
25.5.3 Une abstraction élevée consiste à simplifier le problème
25.5.4 La logique et l'expression sont tout aussi importantes
25.5.5 Gardez le code rigoureux
25.5.6 Un beau style d'écriture qui rend les lecteurs heureux
25.6 Résumé
Chapitre 26 Cadre d'application
26.1 Présentation du cadre d'application
26.1.1 Qu'est-ce qu'un framework d'application
26.1.2 Composants du framework d'application
26.1.2.1 Bibliothèque de classe
26.1.2.2 Module de base
26.1.2.3 Configuration de l'environnement
26.1.2.4 Manuel d'utilisation
26.2 Pourquoi concevoir un framework d'application
26.2.1 Portée du cadre d'application
26.2.2 Avantages et inconvénients des frameworks d'application
26.3 Comment concevoir un cadre d'application
26.3.1 Saisir l'objectif de conception
26.3.2 Directives de conception pour le cadre d'application
26.3.3 Quel type de cadre d'application est un cadre d'application mature
26.3.4 Méthode de conception du framework d'application
26.3.5 Combat réel ! Concevoir un cadre d'application simple
26.3.5.1 Auto-description
26.3.5.2 Interface de base et code sémantique
26.3.5.3 Extension du prototype des objets principaux
26.3.5.4 Méthode simple
26.3.5.5 Espaces de noms
26.3.5.6 Prise en charge standard et multi-navigateurs
26.3.5.7 Modèle d'événement – Modèle d'événement de Silverna
26.3.5.8 Mode d'application
26.3.5.9 Fournir des composants Ajax
26.3.5.10 Gestion de la mémoire et autres
26.4 Application pratique du framework--Widgets développés sur le framework Silverna 2.0
26.5 Cadre d'application existant
26.5.1 Prototype
26.5.2 JQuery
26.5.3 Dojo
26.5.4 JSVM
26.5.5 Autres cadres
26.5.5.1 Bindows (fondée en 2003)
26.5.5.2 BackBase (créé en 2003)
26.5.5.3 DOJO (en cours de développement, créé en septembre 2004)
26.5.5.4 Open Rico (en cours de développement, fondé en mai 2005, basé sur un premier framework propriétaire)
26.5.5.5 qooxdoo (en cours de développement, fondé en mai 2005)
26.5.5.6 Tibet (en cours de développement, créé en juin 2005)
26.5.5.7 AJFORM (créé en juin 2005)
26.6 Résumé
Toutes les ressources de ce site Web sont fournies et publiées par des internautes, ou réimprimées par les principaux sites de téléchargement. Veuillez vérifier vous-même l'intégrité du logiciel ! Toutes les ressources de ce site Web sont uniquement destinées à l’apprentissage et à la référence. Merci de ne pas les utiliser à des fins commerciales, sinon vous serez responsable de toutes les conséquences encourues ! En cas d'infraction, veuillez nous contacter pour la supprimer et la supprimer. Coordonnées : admin@php.cn