Postanowiłem napisać prosty preloader w ajax i stworzyłem coś takiego:
plik index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" /> <link rel="stylesheet" href="style.css" type="text/css" />
First Name:
<input type="text" id="txt1" onkeyup="ajax('time.php', stateChanged)">
plik ajax.js
var xmlHttp
function ajax(plik, nazwa)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Twoja przegladarka nie obsluguje AJAX!");
return;
}
xmlHttp.onreadystatechange=nazwa;
xmlHttp.open("GET",plik,true);
xmlHttp.send(null);
}
function stateChanged()
{
body=document.getElementsByTagName('body');
x=document.getElementById('wait');
if (xmlHttp.readyState != 4)
{
if(x == null){
wait = document.createElement('div');
wait.id='wait';
wait.align='center';
wait.style.border='solid 1px';
wait.style.height='60px';
wait.style.width='250px';
wait.style.margin='auto';
wait.innerHTML='Proszę czekać...';
body[0].appendChild(wait);
}
}
if (xmlHttp.readyState == 4)
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
body[0].removeChild(x);
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
plik time.php
<?
//cokolwiek wyswietlane na stronie np:
?>
Jako, że zacząłem poznawać ajaxa 2 dni temu, zastanawiam się czy takie rozwiązanie jest dobre. Nie wiem czy to jest dobre więc nie umieszczam tego w dziale ocen.
Ten post edytował slammer 24.02.2007, 12:07:09