XMLHttpRequest

XMLHttpRequest (genellikle XHR olarak kısaltılır ), JavaScript'te erişilebilen ve XML , JSON , ancak aynı zamanda HTML ve hatta HTTP isteklerini kullanarak basit metinler elde etmenizi sağlayan bir tarayıcı nesnesidir .

Avantajlar ve dezavantajlar

Ana avantaj, eşzamansız taraftadır. Artık bir parçanın değiştirilmesi gerektiğinde tüm sayfanın tamamen yeniden yüklenmesi gerekmiyor, bu da zamandan tasarruf sağlıyor ve sunucu ve dolayısıyla müşteri ile etkileşimi iyileştiriyor.

Dezavantajları ise:

JavaScript kullanımıyla görüntülenen dinamik içerik, tarayıcının neden bütünüyle yüklenmiş bir html sayfasıyla aynı davranışı gösteremediğini açıklar (kaydetme bağlantıları, yer imi, geri düğmesi).

Diğer farklılıklar var:

Programcının bakış açısı

XMLHttpRequest nesnesi oluşturma

Tarayıcı ne olursa olsun:

function createXhrObject() { if (window.XMLHttpRequest) return new XMLHttpRequest(); if (window.ActiveXObject) { var names = [ "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP" ]; for(var i in names) { try{ return new ActiveXObject(names[i]); } catch(e){} } } window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest."); return null; // non supporté } xhr = createXhrObject();

Yürütülebilir kod yükleniyor

XMLHttpRequest aracılığıyla yüklenen sayfada bulunan JavaScript kodu, yükleme sırasında çalıştırılmayacaktır.

Yüklenen JavaScript kodunu, yürütülmesi için geçerli sayfaya eklemelisiniz.

Aşağıdaki kod, daha önce açıklandığı gibi yükledikten sonra alt sayfadaki <script> </script> etiketleri arasında bulunan JavaScript'i de çalıştırabilir:

if (XHR.readyState == 4) { document.getElementById('contenu').innerHTML = XHR.responseText; var js = document.getElementById('contenu').getElementsByTagName('script'); for( var i in js ) { eval(js[i].text); } }

Tarihi

XMLHttpRequest ilk olarak Microsoft tarafından Internet Explorer 5.0 için bir ActiveX nesnesi olarak geliştirilmiştir . (Eylül 1998 ). Daha sonra devralındı ​​ve Mozilla 1.0 (Mayıs 2002), Safari 1.2 (Şubat 2004), Opera 7.60 TP1 (Ağustos 2004) sonra Konqueror 3.4 (Mart 2005).

Nisan 2006'da bir W3C Tavsiyesi olması önerildi .

XMLHttpRequest kullanımı, JavaScript dilinin kullanılmasını gerektirir.

Tarayıcılar bunu farklı şekillerde uygular: Internet Explorer için ActiveX, diğerleri için nesne. Nesnenin oluşturulması bu nedenle tarayıcıya bağlı olarak farklı şekilde yapılır. Ek olarak, Internet Explorer'da ActiveX oluşturmak için birkaç sürümü test etmek gerekir. Bununla birlikte, nesneyi oluşturduktan sonra, yöntemler ve nitelikler tüm tarayıcılar için aynıdır.

Microsoft, XMLHttp işlevini MSXML adı altında bir ActiveX (Internet Explorer <7) biçiminde Internet Explorer (5 ila 7) web tarayıcısına dahil eden (Eylül 1998 ) ilk kişidir .

Mozilla projesinin geliştiricileri daha sonra XMLHTTP sürümlerini Mozilla sürüm 1.0'da XMLHttpRequest adı altında uyguladılar (Mayıs 2002). Diğer tarayıcılar daha sonra sırayla XMLHttp uyguladı: Safari 1.2 (Şubat 2004), Konqueror 3.4 (Mart 2005), Opera 8.0 (Nisan 2005), icab 3.0b352.

World Wide Web Consortium sonra standardize etmeye çalışır (Arayüz Programlama) API adı XMLHttpRequest üzerinde altında sürüm 1'de API spesifikasyonları yayınlayarak15 Nisan 2007 ve sürüm 2 25 Şubat 2008. Bu nedenle, XMLHttpRequest'in çeşitli uygulamaları mevcuttur. Tüm bu sürümleri desteklemek için, yüksek seviyeli bir javascript API ( AJAX ), XMLHttpRequest'in farklı uygulamalarını ve sürümlerini göz ardı etmenize olanak tanır.

Ancak şu anda (2007'de) XMLHttpRequest, web'in erişilebilirliğini etkilediği için eleştirildi .

XMLHttpRequest standardının bir halefi vardır, XMLHttpRequest Düzey 2 ve diğer teknolojiler de onun yerini alır:

  • W3C, farklı etki alanlarındaki sunucularla veri alışverişi yapmak için Erişim kontrolü önermişti.
  • Microsoft, XDomainRequest'i sunmuştu çünkü Internet Explorer 8 artık standardın 2. sürümü ile değiştirildi.
  • WebSocket, nesnenin olanaklarını ve daha fazlasını sunar.

Ayrıca görmek için

İlgili Makaleler

Dış bağlantılar

Notlar ve referanslar

  1. Mozilla sitesi (MDN) - XMLHttpRequest API
  2. Yönetilen bir widget'taki öğeler, örneğin XMLHttpRequest nesnesi aracılığıyla yüklenirse ve DOM'da her zaman mevcut değilse, yazarlar aria-level, aria-posinset ve aria-setsize kullanmalı ve aria-owns Widget ile üyeliği iletmek gerekmez.
  3. "Windows için Opera 7.60 Teknik Önizleme 1 için Değişiklik Günlüğü" ( İnternet Arşivi'nde 21 Ocak 2012 sürümü ) ,21 Ocak 2012
  4. (en) XMLHttpRequest nesnesi veya (en) W3C - XMLHttpRequest Çalışma Taslağı