XML Eğitimi

XML ANA SAYFA XML'e Giriş XML nasıl kullanılır XML Ağacı XML Sözdizimi XML Öğeleri XML Öznitelikleri XML Ad Alanları XML Görüntüleme XML HttpTalebi XML Ayrıştırıcı XML DOM'si XML XPath'i XML XSLT'si XML XQuery XML Bağlantısı XML Doğrulayıcı XML DTD'si XML Şeması XML Sunucusu XML Örnekleri XML Testi XML Sertifikası

XML AJAX'ı

AJAX Tanıtımı AJAX XMLHttp AJAX İsteği AJAX Yanıtı AJAX XML Dosyası AJAX PHP AJAX ASP AJAX Veritabanı AJAX Uygulamaları AJAX Örnekleri

XML DOM'si

DOM Tanıtımı DOM Düğümleri DOM Erişimi DOM Düğümü Bilgisi DOM Düğüm Listesi DOM Geçişi DOM Gezinme DOM Değerleri Al DOM Değişiklik Düğümleri DOM Düğümleri Kaldır DOM Düğümleri Değiştir DOM Oluşturma Düğümleri DOM Düğüm Ekle DOM Klon Düğümleri DOM Örnekleri

XPath Eğitimi

XPath Giriş XPath Düğümleri XPath Sözdizimi XPath Eksenleri XPath Operatörleri XPath Örnekleri

XSLT Eğitimi

XSLT'ye Giriş XSL Dilleri XSLT Dönüşümü XSLT <şablon> XSLT <değeri> XSLT <her biri için> XSLT <sıralama> XSLT <if> XSLT <seç> XSLT Uygula İstemcide XSLT Sunucuda XSLT XSLT Düzenleme XML'i XSLT Örnekleri

XQuery Eğitimi

XQuery Tanıtımı XQuery Örneği XQuery FLWOR'u XQuery HTML'si XQuery Terimleri XQuery Sözdizimi XQuery Ekle XQuery Seçimi XQuery İşlevleri

XML DTD'si

DTD Giriş DTD Yapı Taşları DTD Elemanları DTD Özellikleri DTD Elemanları vs Attr DTD Varlıkları DTD Örnekleri

XSD Şeması

XSD Tanıtımı XSD Nasıl Yapılır? XSD <şema> XSD Öğeleri XSD Özellikleri XSD Kısıtlamaları

XSD Kompleksi

XSD Öğeleri XSD Boş Yalnızca XSD Öğeleri Yalnızca XSD Metin XSD Karışık XSD Göstergeleri XSD <herhangi bir> XSD <anyÖzellik> XSD Değiştirme XSD Örneği

XSD Verileri

XSD Dizisi XSD Tarihi XSD Sayısal XSD Çeşitli XSD Referansı

Web Hizmetleri

XML Hizmetleri XML WSDL'si XML SABUN XML RDF'si XML RSS'si

Referanslar

DOM Düğüm Türleri DOM Düğümü DOM Düğüm Listesi DOM Adlandırılmış Düğüm Haritası DOM Belgesi DOM Öğesi DOM Özelliği DOM Metni DOM CDATA DOM Yorumu DOM XMLHttpRequest DOM Ayrıştırıcı XSLT Öğeleri XSLT/XPath İşlevleri

XMLHttpRequest Nesnesi _


Tüm modern tarayıcılarda, bir sunucudan veri istemek için yerleşik bir XMLHttpRequest nesnesi bulunur.

Tüm büyük tarayıcılarda, XML'e erişmek ve bunları işlemek için yerleşik bir XML ayrıştırıcısı bulunur.


XMLHttpRequest Nesnesi

XMLHttpRequest nesnesi, bir web sunucusundan veri istemek için kullanılabilir.

XMLHttpRequest nesnesi bir geliştiricinin hayalidir çünkü şunları yapabilirsiniz:

  • Sayfayı yeniden yüklemeden bir web sayfasını güncelleyin
  • Bir sunucudan veri iste - sayfa yüklendikten sonra
  • Bir sunucudan veri alın - sayfa yüklendikten sonra
  • Bir sunucuya veri gönder - arka planda

XMLHttpRequest Örneği

Aşağıdaki giriş alanına bir karakter yazdığınızda, sunucuya bir XMLHttpRequest gönderilir ve bazı ad önerileri (sunucudan) döndürülür:

Örnek

Start typing a name in the input field below:

Name:

Suggestions:


XMLHttpRequest Gönderme

Tüm modern tarayıcılarda yerleşik bir XMLHttpRequest nesnesi bulunur.

Bunu kullanmak için yaygın bir JavaScript sözdizimi şuna benzer:

Örnek

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
       // Action to be performed when the document is read;
    }
};
xhttp.open("GET", "filename", true);
xhttp.send();

Bir XMLHttpRequest Nesnesi Oluşturma

Yukarıdaki örnekteki ilk satır bir XMLHttpRequest nesnesi oluşturur:

var xhttp = new XMLHttpRequest();

onreadystatechange olayı

ReadyState özelliği, XMLHttpRequest'in durumunu tutar .

onreadystatechange olayı, readyState her değiştiğinde tetiklenir .

Bir sunucu isteği sırasında readyState 0'dan 4'e değişir:

0: istek başlatılmadı
1: sunucu bağlantısı kuruldu
2: istek alındı
3: istek işleniyor
4: istek tamamlandı ve yanıt hazır

onreadystatechange özelliğinde, readyState değiştiğinde yürütülecek bir işlev belirtin:

xhttp.onreadystatechange = function()

ReadyState 4 ve status 200 olduğunda, yanıt hazırdır:

if (this.readyState == 4 && this.status == 200)

XMLHttpRequest Özellikleri ve Yöntemleri

Method Description
new XMLHttpRequest() Creates a new XMLHttpRequest object
open(method, url, async) Specifies the type of request
method: the type of request: GET or POST
url: the file location
async: true (asynchronous) or false (synchronous)
send() Sends a request to the server (used for GET)
send(string) Sends a request string to the server (used for POST)
onreadystatechange A function to be called when the readyState property changes
readyState The status of the XMLHttpRequest
0: request not initialized
1: server connection established
2: request received
3: processing request
4: request finished and response is ready
status 200: OK
404: Page not found
responseText The response data as a string
responseXML The response data as XML data

Etki Alanları Arasında Erişim

Güvenlik nedeniyle, modern tarayıcılar etki alanları arasında erişime izin vermez.

Bu, hem web sayfasının hem de yüklemeye çalıştığı XML dosyasının aynı sunucuda bulunması gerektiği anlamına gelir.

W3Schools'daki örnekler, W3Schools etki alanında bulunan tüm açık XML dosyalarıdır.

Yukarıdaki örneği kendi web sayfalarınızdan birinde kullanmak istiyorsanız yüklediğiniz XML dosyalarının kendi sunucunuzda bulunması gerekir.


ResponseText Özelliği

ResponseText özelliği, yanıtı bir dize olarak döndürür.

Yanıtı bir metin dizesi olarak kullanmak istiyorsanız, answerText özelliğini kullanın:

Örnek

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

tepkiXML Özelliği

ResponseXML özelliği, yanıtı bir XML DOM nesnesi olarak döndürür.

Yanıtı bir XML DOM nesnesi olarak kullanmak istiyorsanız, answerXML özelliğini kullanın:

Örnek

cd_catalog.xml dosyasını isteyin ve yanıtı bir XML DOM nesnesi olarak kullanın:

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

GET veya POST?

GET, POST'tan daha basit ve daha hızlıdır ve çoğu durumda kullanılabilir.

Ancak, aşağıdaki durumlarda her zaman POST isteklerini kullanın:

  • Önbelleğe alınmış dosya bir seçenek değildir (sunucudaki bir dosyayı veya veritabanını güncelleyin)
  • Sunucuya büyük miktarda veri gönderme (POST'un boyut sınırlaması yoktur)
  • Kullanıcı girişi göndererek (bilinmeyen karakterler içerebilir), POST, GET'den daha sağlam ve güvenlidir

url - Sunucudaki Bir Dosya

open() yönteminin url parametresi, sunucudaki bir dosyanın adresidir:

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

Dosya, .txt ve .xml gibi herhangi bir dosya türü veya .asp ve .php gibi sunucu komut dosyası dosyaları olabilir (yanıtı geri göndermeden önce sunucuda eylemler gerçekleştirebilir).


Eşzamansız - Doğru mu Yanlış mı?

İsteği eşzamansız olarak göndermek için, open() yönteminin eşzamansız parametresi true olarak ayarlanmalıdır:

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

Eşzamansız istek göndermek, web geliştiricileri için büyük bir gelişmedir. Sunucuda gerçekleştirilen görevlerin çoğu çok zaman alıcıdır.

Eşzamansız olarak gönderildiğinde, JavaScript'in sunucu yanıtını beklemesi gerekmez, bunun yerine şunları yapabilir:

  • sunucu yanıtını beklerken diğer komut dosyalarını yürütün
  • yanıt hazır olduğunda yanıtla ilgilen

zaman uyumsuz = doğru

async = true kullanırken, onreadystatechange olayında yanıt hazır olduğunda yürütülecek bir işlev belirtin:

Örnek

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

zaman uyumsuz = yanlış

async = false kullanmak için open() yöntemindeki üçüncü parametreyi false olarak değiştirin:

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

async = false kullanılması önerilmez, ancak birkaç küçük istek için bu uygun olabilir.

Sunucu yanıtı hazır olana kadar JavaScript'in yürütülmeye DEVAM ETMEYECEĞİNİ unutmayın. Sunucu meşgul veya yavaşsa, uygulama askıda kalacak veya duracaktır.

Not: async = false kullandığınızda, bir onreadystatechange işlevi YAZMAYIN - kodu send() ifadesinden sonra koymanız yeterlidir:

Örnek

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

XML Ayrıştırıcı

Tüm modern tarayıcıların yerleşik bir XML ayrıştırıcısı vardır.

XML Belge Nesne Modeli (XML DOM), XML'e erişmek ve XML'i düzenlemek için birçok yöntem içerir.

Ancak, bir XML belgesine erişilebilmesi için önce bir XML DOM nesnesine yüklenmesi gerekir.

Bir XML ayrıştırıcı, düz metni okuyabilir ve onu bir XML DOM nesnesine dönüştürebilir.


Bir Metin Dizesini Ayrıştırma

Bu örnek, bir metin dizesini bir XML DOM nesnesine ayrıştırır ve ondan JavaScript ile bilgileri çıkarır:

Örnek

<html>
<body>

<p id="demo"></p>

<script>
var text, parser, xmlDoc;

text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";

parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");

document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
</script>

</body>
</html>

Eski Tarayıcılar (IE5 ve IE6)

Internet Explorer'ın eski sürümleri (IE5 ve IE6), XMLHttpRequest nesnesini desteklemez.

IE5 ve IE6'yı işlemek için tarayıcının XMLHttpRequest nesnesini destekleyip desteklemediğini kontrol edin veya bir ActiveXObject oluşturun:

Örnek

if (window.XMLHttpRequest) {
    // code for modern browsers
    xmlhttp = new XMLHttpRequest();
 } else {
    // code for old IE browsers
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

Internet Explorer'ın eski sürümleri (IE5 ve IE6) DOMParser nesnesini desteklemez.

IE5 ve IE6'yı işlemek için tarayıcının DOMParser nesnesini destekleyip desteklemediğini kontrol edin veya bir ActiveXObject oluşturun:

Örnek

if (window.DOMParser) {
  // code for modern browsers
  parser = new DOMParser();
  xmlDoc = parser.parseFromString(text,"text/xml");
} else {
  // code for old IE browsers
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = false;
  xmlDoc.loadXML(text);

Daha fazla örnek


başlık bilgilerini alın Bir kaynağın (dosya) başlık bilgilerini alın.


belirli başlık bilgilerini alın Bir kaynağın (dosya) belirli başlık bilgilerini alın.


Kullanıcı bir giriş alanına karakterleri yazarken bir web sayfası bir web sunucusuyla nasıl iletişim kurabilir.


Bir web sayfası XMLHttpRequest nesnesiyle bir veritabanından nasıl bilgi alabilir.


alın Bir XML dosyasından veri almak ve verileri bir HTML tablosunda görüntülemek için bir XMLHttpRequest oluşturun.