Latest web development tutorials

DOM XML - HttpRequest objets

Grâce à l'objet XMLHttpRequest, vous pouvez mettre à jour une partie d'une page Web sans recharger la page entière.


XMLHttpRequest Object

objet XMLHttpRequest est utilisé pour échanger des données avec le serveur dans les coulisses.

objet XMLHttpRequest estle rêve d'un développeur, parce que vous pouvez:

  • Mettre à jour la page Web sans recharger la page
  • Après que la page est chargée à partir des données de demande de serveur
  • Une fois la page chargée des données reçues du serveur
  • L'envoi de données vers le serveur en arrière-plan

Créer un objet XMLHttpRequest

Tous les navigateurs modernes (IE7 +, Firefox, Chrome, Safari et Opera) a un objet intégré XMLHttpRequest.

Créer syntaxe d'objet XMLHttpRequest

xmlhttp=new XMLHttpRequest();

Les anciennes versions d'Internet Explorer (IE5 et IE6) en utilisant des objets ActiveX:

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

Pour gérer tous les navigateurs modernes, y compris IE5 et IE6, s'il vous plaît vérifier si le navigateur prend en charge l'objet XMLHttpRequest. Si oui, alors créer un objet XMLHttpRequest, si elle ne le fait pas, créer un objet ActiveX:

Exemples

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

Essayez »


Envoyer une demande au serveur

Pour envoyer une demande au serveur, nous utilisons l'ouverture de l'objet XMLHttpRequest () et send () méthode:

xmlhttp.open("GET","xmlhttp_info.txt",true);
xmlhttp.send();

方法 描述
open(method,url,async) 规定请求的类型,URL,请求是否应该进行异步处理。

method:请求的类型:GET 或 POST
url:文件在服务器上的位置
async:true(异步)或 false(同步)
send(string) 发送请求到服务器。

string:仅用于 POST 请求


GET ou POST?

GET simple que POST et rapide et peut être utilisé dans la plupart des cas.

Cependant, toujours utiliser une requête POST dans les circonstances suivantes:

  • les fichiers mis en cache est pas une option (ou un fichier de base de données sur le serveur de mise à jour)
  • La quantité de données envoyées au serveur (POST aucune limite de taille) grand
  • Envoi d'entrée de l'utilisateur (peut contenir des caractères inconnus), POST forte et plus sûre que GET

URL - fichier sur le serveur

l'argument url de méthode open (), est l'adresse d'un fichier sur le serveur:

xmlhttp.open("GET","xmlhttp_info.txt",true);

Le fichier peut être tout type de fichier (comme .txt et .xml), ou des fichiers de script serveur (comme .html et .php, peut effectuer des actions sur le serveur avant de renvoyer la réponse).


Asynchronous - Vrai ou Faux?

Pour toute demande de transmission asynchrone, méthode ouverte argument async () doit être définie sur true:

xmlhttp.open("GET","xmlhttp_info.txt",true);

Envoyer une demande asynchrone pour un développeur Web est un grand pas en avant. Sur le serveur pour effectuer la plupart des tâches sont très chronophage.

Grâce envoyé de manière asynchrone, JavaScript n'a pas besoin d'attendre la réponse du serveur, mais peut être remplacé par:

  • En attendant la réponse du serveur, d'exécuter des scripts supplémentaires
  • Prêt à gérer la réponse lorsque la réponse

Async = true

Lorsque vous utilisez async = true, alors qu'en réponse à un événement de fonction onreadystatechange prédéterminée prêt à être exécuté:

Exemples

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","xmlhttp_info.txt",true);
xmlhttp.send();

Essayez »


Async = false

Pour le troisième paramètre async = false, changer la méthode open () est fausse:

xmlhttp.open("GET","xmlhttp_info.txt",false);

Non recommandé async = false, mais si manipulé plusieurs petites demande ou peut.

Rappelez-vous, JavaScript dans la réponse du serveur ne continue pas jusqu'à ce que vous êtes prêt. Si le serveur est occupé ou lent, l'application sera suspendue ou arrêtée.

Remarque: Lorsque vous utilisez le async = false, ne pas écrire onreadystatechange fonction - juste besoin de placer le code après l'envoi () déclarations:

Exemples

xmlhttp.open("GET","xmlhttp_info.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

Essayez »


Réponse du serveur

Pour obtenir une réponse du serveur, utilisez responseText ou responseXML la propriété de l'objet XMLHttpRequest.

属性 描述
responseText 获取响应数据作为字符串
responseXML 获取响应数据作为 XML 数据


propriété responseText

Si la réponse du serveur ne sont pas XML, s'il vous plaît utiliser la propriété responseText.

propriété responseText renvoie la réponse sous forme de chaîne, vous pouvez l'utiliser en conséquence:

Exemples

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

Essayez »


propriété responseXML

Si la réponse est non XML à partir du serveur, et que vous voulez le résoudre à un objet XML, utiliser les propriétés responseXML:

Exemples

Demander fichier cd_catalog.xml et analyser la réponse:

xmlDoc=xmlhttp.responseXML;
var txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "
";
}
document.getElementById("myDiv").innerHTML=txt;

Essayez »


événement onreadystatechange

Lorsque la demande est envoyée au serveur, il faut effectuer une action basée sur la réponse.

événement onreadystatechange est déclenché chaque fois que les changements readyState.

propriété XMLHttpRequest readyState détient le statut.

Trois propriétés importantes de l'objet XMLHttpRequest:

属性 描述
onreadystatechange 存储函数(或函数的名称)在每次 readyState 属性变化时被自动调用
readyState 存放了 XMLHttpRequest 的状态。从 0 到 4 变化:
0:请求未初始化
1:服务器建立连接
2:收到的请求
3:处理请求
4:请求完成和响应准备就绪
status 200:"OK"
404:找不到页面

Dans le cas onreadystatechange, nous précisons ce qui se passera lorsque le temps est prêt à traiter la réponse du serveur.

Lorsque le readyState est 4 ou 200 état, la réponse préparée:

Exemples

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}

Essayez »

Remarque: onreadystatechange événement est déclenché chaque fois que les changements de readyState, a déclenché un total de quatre fois.


Exemples s

D'autres exemples

Par getAllResponseHeaders () pour récupérer des informations d' en- tête
Pour récupérer la ressource (document) des informations d'en-tête.

() Récupère les informations d' en- tête spécifié getResponseHeader
Pour récupérer la ressource (fichier) pour spécifier les informations d'en-tête.

récupération de contenu fichier ASP
Lorsque les utilisateurs tapent des caractères dans le champ de saisie, comment les pages Web communiquent avec le serveur Web.

Récupérer le contenu de la base de données
page Web comment extraire des informations à partir de la base de données via l'objet XMLHttpRequest.

fichier XML de récupération de contenu
Créer un XMLHttpRequest pour récupérer des données à partir du fichier XML et afficher les données dans un tableau HTML.