[notes d'apprentissage de première ligne] day44: XMLHttpRequest

Spongebob 2021-11-25 19:05:05
notes apprentissage premi ligne day44

1. XMLHttpRequestUtilisation de base

1.1. Qu'est - ce queXMLHttpRequest

XMLHttpRequest(Abréviationsxhr)Est fourni par le NavigateurJavaScriptObjet,Par là.,C'est bon. Demander des ressources de données sur le serveur.Ce que j'ai apprisjQueryInAjaxFonctions,Est basé surxhrObjet encapsulé

2021-11-24-20-34-42.png

1.2. UtiliserxhrLancementgetDemande

Étapes:

  • CréationxhrObjet
  • Appelezxhr.open()Fonctions
  • Appelezxhr.send()Fonctions
  • Écouterxhr.onreadystatechangeÉvénements
 <script> // 1. CréationxhrObjet var xhr = new XMLHttpRequest() // 2. AppelezopenFonctions xhr.open('get', 'http://www.liulongbin.top:3006/api/getbooks') // 3. AppelezsendFonctions xhr.send() // 4. ÉcouteronreadystatechangeÉvénements xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } } </script>
Copier le Code

1.3. Compris.xhrObjetreadyStatePropriétés

XMLHttpRequestObjetreadyStatePropriétés,Représentation En coursAjax État de la demande .ChaqueAjax La demande doit être dans l'un des états suivants :

2021-11-24-20-46-43.png

1.4. Utiliserxhr Initialisation de getDemande

Utiliserxhr L'objet initie getSur demande, Il suffit d'appeler xhr.openPériode,PourURLLe paramètre de spécification d'adresse est suffisant

InURL Après l'adresse, utilisez ? Paramètres d'épissage ,Appelé Chaîne de requête

1.5. Chaîne de requête

1. Définition de la chaîne de requête

Définition:Chaîne de requête(URLParamètres)C'est - à - direURLAjouter à la fin de la chaîne utilisée pour envoyer des informations au serveur(Variables)

Format:Anglais **?**Mettez - le surURLFin de,Et puis ajouter Paramètres=Valeur,Si vous voulez ajouter plusieurs paramètres,Utiliser **&** Les symboles sont séparés .Sous cette forme,Vous pouvez ajouter les données que vous souhaitez envoyer au serveur àURLMoyenne

2. getNature du paramètre de transport demandé

Quelle que soit l'utilisation$.ajax(),Toujours utiliser$.get(),Ou utiliserxhrObjet initiégetDemande,Quand il faut porter les paramètres,Essentiellement, Sont des arguments directement sous forme de chaîne de requête ,Ajouté àURLDerrière l'adresse,Envoyé au serveur

 <script> // $.get('http://www.liulongbin.top:3006/api/getbooks', { // id: 1, // bookname: 'Voyage vers l'Ouest' // }, function (res) { // console.log(res); // }) $.ajax({ method:'get', url:'http://www.liulongbin.top:3006/api/getbooks', data:{ id:1, bookname:'Voyage vers l'Ouest' }, success:function(res){ console.log(res); } }) </script>
Copier le Code

1.6. urlCodage et décodage

1. Qu'est - ce queURLCodage

URLAdresse,Seules les lettres associées à l'anglais sont autorisées、Ponctuation、Nombre,Donc,,InURL Adresse les caractères chinois ne sont pas autorisés en Chine .

SiURL Doit contenir des caractères comme le chinois , Les caractères chinois doivent être Codage(évasion)

URL Principes de codage :Utiliser des caractères sécurisés(Caractères imprimables sans objet ni signification particulière) Pour indiquer quels caractères dangereux .

URL Compréhension populaire des principes de codage : Utiliser des caractères anglais pour représenter des caractères non anglais

2. Comment?URL Codage et décodage

Le navigateur fournitURL Encodé et décodé API,Respectivement.

  • encodeUR()Fonctions codées
  • decodeURI()Fonctions décodées
 <script> var str='Bob l'éponge.' var str2=encodeURI(str) console.log(str2); //%E6%B5%B7%E7%BB%B5%E5%AE%9D%E5%AE%9D var str3=decodeURI('%E6%B5%B7%E7%BB%B5%E5%AE%9D%E5%AE%9D') console.log(str3); </script>
Copier le Code

3. url Considérations relatives au codage

Parce que le navigateur s'aligne automatiquement URL L'adresse est codée ,Donc,,Dans la plupart des cas, Les programmeurs n'ont pas besoin de se soucier URL Opérations de codage et de décodage des adresses

1.7. UtiliserxhrLancementpostDemande

Étapes:

  • CréationxhrObjet
  • Appelezxhr.open()Fonctions
  • ParamètresContent-TypePropriétés(écriture fixe)
  • Appelezxhr.send()Fonctions, Spécifiez également les données à envoyer
  • Écouterxhr.onreadystatechangeÉvénements
 <script> // 1. CréationxhrObjet var xhr = new XMLHttpRequest() // 2. AppelezopenFonctions xhr.open('post', 'http://www.liulongbin.top:3006/api/addbook') // 3. ParamètresContent-TypePropriétés xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') // 4. AppelezsendFonctions xhr.send('bookname=Marge d'eau&author=Schneider&publisher=Shanghai Books Press') // 5. ÉcouteronreadystatechangeÉvénements xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } } </script>
Copier le Code

2. Format d'échange de données

2.1. Qu'est - ce qu'un format d'échange de données

Le format d'échange de données est le format de transfert et d'échange de données entre le serveur et le client

Champ frontal, Les deux formats d'échange de données fréquemment mentionnés sont XMLEt JSON,XML Moins d'applications ,Focus LearningJSON

2.2. XML

1. Qu'est - ce queXML

XMLLe nom complet en anglais est EXtensible Makeup Language,C'est - à - dire:Langage de balisage extensible.Donc,,XMLEtHTMLSimilaire, C'est aussi un langage de balisage

2. XMLEtHTMLLa différence entre

XMLEtHTMLMême si c'est le langage de balisage, Mais ça n'a rien à voir

  • HTML Conçu pour décrire le contenu d'une page web ,Est le support du contenu de la page
  • XML Conçu pour transmettre et stocker des données ,Est un vecteur de données

3. XMLLes inconvénients de

  • XMLFormat gonflé, Sans rapport avec les données Beaucoup de codes,Volumineux,Faible efficacité de transmission
  • InJavaScriptRésolution moyenneXMLC'est plus compliqué.

2.3. JSON

1. Qu'est - ce queJSON

Concept:JSONNom complet en anglais de JavaScript Object Notation,C'est - à - dire:“JavaScriptReprésentation des objets”.En termes simples,,JSONC'estJavaScriptReprésentation par chaîne des objets et des tableaux,Il utilise le texte pour représenter unjs Informations sur les objets et les tableaux ,Donc,,JSONEst essentiellement une chaîne

Action:JSONC'est un Format léger d'échange de données textuelles , Similaire à XML, Dédié au stockage et au transfert de données ,MaisJSONQueXMLPlus petit,Plus vite.,Plus facile à analyser

Situation actuelle:JSON Est devenu le principal format d'échange de données

2. JSON Deux structures

JSON C'est la représentation par chaîne JavaScriptObjets et tableaux pour.Alors...,JSONInclus dansObjetEtTableauDeux structures, Par ces deux structures Imbriqué les uns avec les autres, Peut représenter une variété de structures de données complexes

Structure des objets: La structure de l'objet est JSONExprimé en{}Ce qui est inclus.La structure des données est{key:value,key:value,...}Structure des paires de clés pour.Parmi eux,key Doit être en anglais Guillemets doublesChaîne enveloppée,value Le type de données peut être Nombre、String、Booléen、null、Tableau、Objet6Type d'espèce

3. JSON Considérations grammaticales

  • Le nom de la propriété doit être enveloppé dans des guillemets doubles
  • La valeur du type de chaîne doit être enveloppée dans des guillemets doubles
  • JSONLes guillemets simples ne sont pas autorisés dans
  • JSONImpossible d'écrire un commentaire
  • JSON La couche externe de doit être au format tableau ou objet
  • Non disponibleundefined Ou une fonction comme JSONValeur de

JSONLe rôle de: Transfert de données entre ordinateur et réseau JSONL'essence de: En utilisant une chaîne pour représenter JavaScript Données d'objet ou de tableau

4. JSONEtjsLa relation de l'objet

JSON- Oui.jsReprésentation par chaîne de l'objet,Il utilise le texte pour représenter unjsInformations sur l'objet,Essentiellement une chaîne

5. JSONEtjsRotation des objets

JSONChaîne convertie enjsObjet,UtiliserJSON.parse()Méthodes:

 <script> var jsonStr='{"a":"hello","b":"world"}' var obj=JSON.parse(jsonStr) console.log(obj); </script>
Copier le Code

Pour réaliserjsObjet converti enJSONString,UtiliserJSON.stringify()Méthodes:

 var obj2={a:'hello',b:'world',c:false}
var string=JSON.stringify(obj2)
console.log(string);
Copier le Code

6. Sérialisation et désrialisation

Le processus de conversion d'un objet de données en chaîne ,Appelé sérialisation,Par exemple:AppelezJSON.stringify()Fonctionnement,AppeléJSONSérialisation

Le processus de conversion d'une chaîne en objet de données , Appelé désérialisation ,Par exemple:AppelezJSON.parse()Fonctionnement de la fonction,AppeléJSONDésérialisation

3. Emballez votreAjaxFonctions

3.1. Effets à réaliser

Déplacer personnalisé itheimaFonctions,LancementAjaxDemande de données

3.2. DéfinitionoptionsOptions de paramètres

itheima() Les fonctions sont personnalisées AjaxFonctions, Il reçoit un objet de configuration comme paramètre , Les propriétés suivantes peuvent être configurées dans l'objet de configuration :

  • method--Type de demande
  • URL--DemandeURLAdresse
  • data-- Données demandées pour le transport
  • success--Fonction de rappel après une demande réussie

3.3. TraitementdataParamètres

J'ai besoin d'aide.dataObjet, Format converti en chaîne de requête , Pour soumettre au serveur , Donc, définissez à l'avance resolveDataLes fonctions sont les suivantes:

function resolveData(data) {
var arr = []
for (var k in data) {
var str = k + '=' + data[k]
arr.push(str)
}
return arr.join('&')
}
var res=resolveData({name:'zs',age:12})
console.log(res);
Copier le Code

3.4. DéfinitionitheimaFonctions

Initheima()En fonction,Besoin de créerxhrObjet,Et écouteonreadystatechangeÉvénements:

function itheima(options) {
var xhr = new XMLHttpRequest()
// Convertir l'objet paramètre passé de l'extérieur en chaîne de requête 
var qs = resolveData(options.data)
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var result = JSON.parse(xhr.responseText)
options.success(result)
}
}
}
Copier le Code

3.5. Déterminer le type de demande

Différents types de demandes,Correspondant àxhr Les objets fonctionnent différemment , Par conséquent, le type de demande doit être if...else...Jugement

function itheima(options) {
var xhr = new XMLHttpRequest()
// L'objet paramètre qui transmet l'extérieur ,Convertir en chaîne de requête
if (options.method.toUpperCase() === 'GET') {
//LancementgetDemande
xhr.open(options.method, options.url + '?' + qs)
xhr.send()
} else if (options.method.toUpperCase() === 'POST') {
// LancementpostDemande
xhr.open(options.method, options.url)
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
xhr.send(qs)
}
Copier le Code

4. XMLHttpRequest Level2Nouvelles caractéristiques de

4.1. - Oui.XMLHttpRequest Level2

1. Ancienne éditionXMLHttpRequestLes inconvénients de

  • Seuls les transferts de données textuelles sont pris en charge,Impossible de lire et de télécharger le fichier
  • Lors de la transmission et de la réception des données ,Aucune information sur les progrès,Vous pouvez seulement demander si c'est fait

2. XMLHttpRequest Level2Nouvelles fonctionnalités pour

  • Peut être régléhttpDélais de présentation des demandes
  • Peut être utiliséFormDataObjet gérer les données du formulaire
  • Possibilité de télécharger des fichiers
  • Des informations sur l'état d'avancement du transfert de données sont disponibles

4.2. Paramètreshttp Délai de demande

XMLHttpRequest Level2AjoutétimeoutPropriétés,Peut être régléhttp Délai de demande

// Réglage du temps d'arrêt
xhr.timeout=3000
// Définir la fonction de traitement après le délai 
xhr.ontimeout=function(){
console.log('Délai de demande');
}
Copier le Code

4.3. FormDataObjet gérer les données du formulaire

Ajax Les opérations sont souvent utilisées pour soumettre des données de formulaire , Pour faciliter la gestion des formulaires ,HTML5Un nouveauFormDataObjet, Vous pouvez simuler le fonctionnement du formulaire :

<script> // CréationformdataExemple var fd = new FormData() // 2. AppelezappendFonctions,VersfdAjouter des données fd.append('uname', 'zs') fd.append('upwd', '123456') var xhr = new XMLHttpRequest() xhr.open('post', 'http://www.liulongbin.top:3006/api/formdata') xhr.send(fd) xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log(JSON.parse(xhr.responseText)); } } </script>
Copier le Code

FormData L'objet peut également être utilisé pour obtenir les valeurs des formulaires Web ,Voici un exemple de code::

<form id="form1">
<input type="text" name="uname" autocomplete="off" />
<input type="password" name="upwd" />
<button type="submit">Soumettre</button>
</form>
<script> // 1. AdoptionDOM Opération obtenir formÉléments du formulaire var form = document.querySelector('#form1') form.addEventListener('submit', function (e) { // Bloquer le comportement de soumission par défaut du formulaire e.preventDefault() // CréationFormData,Accès rapideformDonnées du formulaire var fd = new FormData(form) var xhr = new XMLHttpRequest() xhr.open('post', 'http://www.liulongbin.top:3006/api/formdata') xhr.send(fd) xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log(JSON.parse(xhr.responseText)); } } }) </script>
Copier le Code

4.4. Télécharger des fichiers

Nouvelle versionXMLHttpRequestObjet, Possibilité de télécharger des fichiers

Étapes de mise en oeuvre:

  • DéfinitionUIStructure
  • Vérifier que le fichier est sélectionné
  • VersFormDataAjouter un fichier
  • UtiliserxhrLancer une demande de téléchargement de fichiers
  • ÉcouteronreadystatechangeÉvénements

1. DéfinitionUIStructure

 <!-- !. Zone de sélection des fichiers -->
<input type="file" id="file1" />
<!-- 2. Télécharger le bouton sac -->
<button id="btnUpload">Télécharger des fichiers</button>
<br />
<!-- 3. imgÉtiquettes Pour afficher les images téléchargées avec succès-->
<img src="" alt="" id="img" width="800">
Copier le Code

2. Vérifier que le fichier est sélectionné

<script> // 1. Obtenir le bouton de téléchargement de fichiers  var btnUpload=document.querySelector('#btnUpload') // 2. Cliquez sur le gestionnaire d'événements pour la liaison du bouton  btnUpload.addEventListener('click',function(){ // 3. Obtenir la liste des fichiers sélectionnés par l'utilisateur  var files=document.querySelector('#file1').files if(files.length<=0){ return alert(' Veuillez sélectionner le fichier à télécharger ') } console.log(' L'utilisateur a sélectionné les fichiers à télécharger '); }) </script>
Copier le Code

3. VersFormDataAjouter un fichier

 var fd=new FormData()
// Fichier sélectionné par l'utilisateur ,Ajouter àFormDataMoyenne
fd.append('avatar',files[0])
Copier le Code

4. UtiliserxhrLancer une demande de téléchargement de fichiers

var xhr=new XMLHttpRequest()
xhr.open('post','http://www.liulongbin.top:3006/api/upload/avatar')
xhr.send(fd)
Copier le Code

5. ÉcouteronreadystatechangeÉvénements

xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var data = JSON.parse(xhr.responseText)
console.log(data);
if (data.status === 200) {
// Téléchargement réussi
document.querySelector('#img').src = 'http://www.liulongbin.top:3006' + data.url
} else {
// Le téléchargement a échoué
console.log('Impossible de télécharger l'image' + data.message);
}
}
}
Copier le Code

4.5. Afficher l'état d'avancement du téléchargement de fichiers

Nouvelle versionxhrDans l'objet,Vous pouvez écouterxhr.upload.onprogressÉvénements,Pour obtenir l'état d'avancement du téléchargement du fichier

Format syntaxique:

<link rel="stylesheet" href="lib/bootstrap.css" />
<script src="lib/jquery.js"></script>
<body>
<!-- bootstrapBarre de progression en -->
<div class="progress" style="width: 500px; margin:15px 10px;">
<div class="progress-bar progress-bar-striped active" style="width: 0%" id="percent">
0%
</div>
</div>
</body>
<script> xhr.upload.onprogress = function (e) { if (e.lengthComputable) { // Calculer les progrès du téléchargement  var procentComplete = Math.ceil((e.loaded / e.total) * 100) console.log(procentComplete); // Barre de progression de réglage dynamique $('#percent').attr('style','width:'+procentComplete+'%').html(procentComplete+'%') } } // Définir le style de la barre de progression après le téléchargement  xhr.upload.onload = function () { $('#percent').removeClass().addClass('progress-bar progress-bar-success') } </script>
Copier le Code

5. jQueryUtilisation avancée

5.1. jQueryRéaliser le téléchargement de fichiers

1. DéfinitionUIStructure

 <input type="file" id="file1" />
<button id="btnUpload">Télécharger des fichiers</button>
Copier le Code

2. Vérifier que le fichier est sélectionné

$(function(){
$('#btnUpload').on('click',function(){
var files=$('#file1')[0].files
if (files.length<=0){
return alert(' Veuillez sélectionner le fichier avant de le télécharger ')
}
console.log('ok');
})
})
Copier le Code

3. VersFormDataAjouter un fichier

var fd=new FormData()
fd.append('avatar',files[0])
Copier le Code

4. UtiliserjQueryLancer une demande de téléchargement de fichiers

$.ajax({
method: 'post',
url: 'http://www.liulongbin.top:3006/api/upload/avatar',
data: fd,
processData: false,
contentType: false,
success: function (res) {
console.log(res);
}
})
Copier le Code
  • processDataEtcontentTypeDoit êtreFALSE, Pas sans écrire
  • Doit être utilisé$.ajax() Non disponible$.post()

5.2. jQueryRéalisationloadingEffets

1. ajaxStart(callback)

AjaxDébut de la demande,Mise en œuvreajaxStartFonctions,Ça pourrait être dansajaxStartDecallbackAffichage enloadingEffets

Les codes sont les suivants::

$(document).ajaxStart(function(){
// J'écoute.ajax La demande a été faite 
$('#loading').show()
})
Copier le Code

Attention!:

  • DepuisjQueryVersion1.8Lève - toi., Cette méthode ne peut être jointe qu'au document
  • $(document).ajaxStart() La fonction écoute tous les ajaxDemande

2. ajaxStop(callback)

AjaxÀ la fin de la demande,Mise en œuvreajaxStopFonctions.Ça pourrait être dansajaxStopFonctioncallbackCaché au milieuloadingEffets

Les codes sont les suivants::

// J'écoute.ajaxÉvénements achevés
$(document).ajaxStop(function(){
$('#loading').hide()
})
Copier le Code

6. axios

6.1. Qu'est - ce queaxios

AxiosEst de se concentrer sur Demande de données réseauBibliothèque

Comparé à laXMLHttpRequestObjet,axiosFacile à utiliser

Par rapport àjQuery,axiosPlus léger

6.2. axiosLancementgetDemande

Syntaxe:

<script src="lib/axios.js"></script>
<button id="btn1">LancementgetDemande</button>
<script> document.querySelector('#btn1').addEventListener('click',function(){ var url='http://www.liulongbin.top:3006/api/get' var paramsObj={name:'zhangsan',age:20} axios.get(url,{params:paramsObj}).then(function(res){ // res L'objet n'est pas les données réelles que le serveur a répondu ,Mais...axios Objet emballé ,Inres Il y a toujours 6Propriétés:config data headers request status statusText Parmi euxdata Ce sont les données que le vrai serveur répond  console.log(res.data); }) }) </script>
Copier le Code

6.3. axiosLancementpostDemande

Code:

document.querySelector('#btn2').addEventListener('click',function(){
var url='http://www.liulongbin.top:3006/api/post'
var dataObj={name:'zhangsan',age:20}
axios.post(url,dataObj).then(function(res){
// res L'objet n'est pas les données réelles que le serveur a répondu ,Mais...axios Objet emballé ,Inres Il y a toujours 6Propriétés:config data headers request status statusText Parmi euxdata Ce sont les données que le vrai serveur répond 
console.log(res.data);
})
})
Copier le Code

6.4. Utilisation directeaxiosDemande d'initiation

axiosOffre égalementjQueryMoyenne$.ajax()Fonction de,La syntaxe est la suivante::

axios({
method:'Type de demande',
url:'URLAdresse',
data:{postDonnées},
params:{getParamètres}
}).then(callback)
Copier le Code

1. Utilisation directeaxiosLancementgetDemande

document.querySelector('#btn3').addEventListener('click', function () {
var url = 'http://www.liulongbin.top:3006/api/get'
var paramsData = {
name: 'zhangsan',
age: 20
}
axios({
method: 'get',
url: url,
params: paramsData
}).then(function (res) {
console.log(res.data);
})
})
Copier le Code

2. Utilisation directeaxiosLancementpostDemande

document.querySelector('#btn4').addEventListener('click', function () {
var url = 'http://www.liulongbin.top:3006/api/post'
var data = {
name: 'zhangsan',
age: 20
}
axios({
method: 'post',
url: url,
data: data
}).then(function (res) {
console.log(res.data);
})
})
Copier le Code
版权声明
本文为[Spongebob]所创,转载请带上原文链接,感谢
https://javamana.com/2021/11/20211125190501409V.html

  1. 图解 Kafka 线程模型及其设计缺陷
  2. Add data files for Oracle tablespaces or temporary tablespaces
  3. Intellij IDEA神器居然还有这些小技巧,mysql集群搭建视频
  4. IntelliJ IDEA(2019)之Web项目创建,掌门一对一java面试题
  5. InnoDB(2,如何访问Redis中的海量数据
  6. InheritableThreadLocal使用详解,java多线程面试题及答案整理
  7. How does Oracle modify the data type of a column
  8. Oracle 12C 12.1.0.1.0 management control file official document translation instructions
  9. Oracle 10g 10.2.0.1 in Oracle Linux 5.4 32bit RAC installation manual (Yimo Xiyang)
  10. Oracle 12C in Oracle Linux 6.5 64bit installation manual
  11. 一天十道Java面试题----第一天(面向对象-------》ArrayList和LinkedList)
  12. Schéma du modèle de fil Kafka et de ses défauts de conception
  13. Starting and shutting down Oracle RAC database cluster
  14. CRS_ Oracle CRS stack is already configured and will be running under init(1M)
  15. Common skills of Oracle stored procedure
  16. Check the number of CPUs, core books and threads of the Linux system
  17. jQuery-实例方法
  18. Oracle de duplicated data
  19. jQuery-dom和jQuery,入口函数(基本知识)
  20. Oracle creates unique constraints on columns that already have duplicate data
  21. JavaScript-拷贝
  22. JavaScript-this指向问题
  23.  There is ^ [[a garbled code problem in the up and down keys in Oracle sqlplus
  24. JavaScript-封装与继承(两种)
  25. JavaScript-包装类型
  26. JavaScript-传值(引用类型,基本类型)
  27. JavaScript-面向对象(构造函数,实例成员,静态成员)
  28. JavaScript-解构赋值
  29. JavaScript-箭头函数
  30. JavaScript-参数
  31. JavaScript-预解析(变量提升)
  32. JavaScript-闭包closure
  33. JavaScript-声明变量的关键字
  34. JavaScript - mot - clé pour déclarer une variable
  35. Fermeture de fermeture JavaScript
  36. JavaScript Pre - parse (promotion des variables)
  37. Paramètres JavaScript
  38. Fonction de flèche JavaScript
  39. JavaScript - déconstruction assignations
  40. Common annotations in springboot
  41. Building CentOS 7.6 with Linux
  42. JavaScript - orienté objet (constructeur, membre d'instance, membre statique)
  43. JavaScript value Transfer (reference type, Basic type)
  44. JavaScript - type d'emballage
  45. linux deepin/ubuntu安装flameshot火焰截图
  46. JavaScript - encapsulation et héritage (deux)
  47. JavaScript JS method for writing 99 multiplication table
  48. 從零開始學java - 第二十五天
  49. Apprendre Java à partir de zéro - jour 25
  50. Les voitures d'hiver, les voitures électriques et les voitures à essence ne sont pas les mêmes?
  51. JavaScript - ceci pointe vers le problème
  52. Copie JavaScript
  53. Spring boot quickly integrates swagger
  54. linux deepin/ubuntu安裝flameshot火焰截圖
  55. Capture d'écran de flamme de l'installateur de flamme Linux deepin / Ubuntu
  56. Jquery DOM et jquery, fonctions d'entrée (bases)
  57. Méthode d'instance jquery
  58. Méthode et démonstration de code dans l'interface de liste en Java
  59. Démarrage du Zookeeper
  60. Java oom Cognition