piątek, 15 stycznia 2010

XMLHttpRequest w 5 minut

Kod który najlepiej wstawić do pliku js i podpiąć do strony:
var xmlHttp;
function ExecuteCall(url) {
try { xmlHttp = GetXmlHttpObject(CallbackMethod); SendXmlHttpRequest(xmlHttp, url); }
catch (e) { }
}





function GetXmlHttpObject(handler) {
var objXmlHttp = null;
if (!window.XMLHttpRequest) {
// Microsoft

objXmlHttp = GetMSXmlHttp();
if (objXmlHttp != null) {
objXmlHttp.onreadystatechange = handler;
}
} else {
// Mozilla | Netscape | Safari

objXmlHttp = new XMLHttpRequest();
if (objXmlHttp != null) {
objXmlHttp.onload = handler;
objXmlHttp.onerror = handler;
}
} return objXmlHttp;
}
function GetMSXmlHttp() {
var xmlHttp = null;
var clsids = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0",
"Msxml2.XMLHTTP.4.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP.2.6", "Microsoft.XMLHTTP.1.0", "Microsoft.XMLHTTP.1", "Microsoft.XMLHTTP"];
for (var i = 0; i < clsids.length && xmlHttp == null; i++) {
xmlHttp = CreateXmlHttp(clsids[i]);
}
return xmlHttp;
}

function CreateXmlHttp(clsid) {
var xmlHttp = null;
try {
xmlHttp = new ActiveXObject(clsid);
lastclsid = clsid;
return xmlHttp;
}
catch (e) { }
}




function SendXmlHttpRequest(xmlhttp, url) { xmlhttp.open('GET', url, true); xmlhttp.send(null); }




//metoda odbierajaca
function CallbackMethod() {
try {

if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete') {
var response = xmlHttp.responseText; if (response.length > 0) {
//update page

document.getElementById("result").innerHTML = response;
}
}
}
catch (e) { }
}

Tym wywołujemy:
ExecuteCall('http://www.MUCHSOFT.pl/strona.aspx?par=test');

strona.aspx - ta strona generujemy tresc jaka chcemy podstawic, nalezy pamietac o wycieciu calej tresci z pliku aspx i pozostawieniu tylko pierwszego wiersza tj:
<%@ Page Title="" Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="Web.home" %>


W poważniejszych rozwiązaniach zamiast strona.aspx stosuje się handlery , ale to grubszy temat.

Brak komentarzy:

Prześlij komentarz