Rychlý tip:XMLHttpRequest a innerHTML

XMLHttpRequest je jedním z nejlépe střežených tajemství moderního DHTML. Pokud jste se s tím ještě nesetkali, je to metoda zpětného volání HTTP na hostitelský webový server bez obnovování celé stránky – jakési vzdálené skriptování na steroidech. Původně rozšíření společnosti Microsoft bylo upraveno jak rodinou prohlížečů Mozilla, tak (od verze 1.2) Safari. Knihovna Sarissa, o které jsme dříve hovořili, nabízí abstrakční vrstvu pro různé prohlížeče, nebo pro odlehčený přístup tento kód z jibbering.com (který využívá podmíněnou kompilaci JScript IE) funguje perfektně.

Získání maxima z XMLHttpRequest obecně zahrnuje použití XML generovaného na straně serveru, který může být načten vaší JavaScriptovou aplikací, analyzován a použit ve složitější logice. Pro rychlou opravu však následující kód načte fragment HTML z adresy URL a vloží jej přímo na stránku:


function loadFragmentInToElement(fragment_url, element_id) {
    var element = document.getElementById(element_id);
    element.innerHTML = '<p><em>Loading ...</em></p>';
    xmlhttp.open("GET", fragment_url);
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            element.innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.send(null);
}

Zavolejte výše uvedenou funkci s adresou URL fragmentu HTML, který má být vložen, a ID prvku, ve kterém se má objevit. Při nastavování proměnné xmlhttp se spoléhá na kód jibbering.com.

Je to rozhodně rychlé a špinavé, ale je to také skvělá rychlá ukázka síly rozšíření XMLHttpRequest.