Sayfa yenilenmeden sunucudan veri almak (Javascript)

Ceviz Viki, özgür ansiklopedi

Git ve: kullan, ara

[değiştir] Amaç

Sayfamızda bulunan belli bir elementi düzenli aralıklarla (örneğin 10 saniyede bir) bir dosyanın içeriğini kontrol ederek yanıtı o elemente yansıtmasını sağlamaktır. Buradaki örnekte aynı klasörde bulunan bir text dosyanın içeriği kontrol edilerek, onun içeriğine göre davranılması sağlanmıştır.

[değiştir] Sunucu etkileşimi

Bu örnekte özellikle belli bir sunucu tabanlı uzantı belirtilmemiştir (asp, php, cgi gibi) Bu .html dosyamızın üzerine çift tıklayıp çalıştırabilmemizi ve bu işlemin dilden bağımsız olduğunu anlamamıza yardımcı olmayı amaçlamaktadır.

yeni_mesaj_varmi.html

<html>
<head><title>Yeni mesaj bildirimi</title>
<script type="text/javascript">
//3 Ocak 2008, İstanbul
//anov
function kontrol_et()
{
 
scr=document.createElement("SCRIPT");
scr.type = "text/javascript";
scr.src = "yeni_mesaj_varmi.txt";
document.body.appendChild(scr);
var hidden = document.getElementById('yeni_mesaj_varmi');
if(hidden.value=="0")
{
document.getElementById("spanMesajDurumu").innerHTML = "Mesaj yok";
}
if(hidden.value!="0" && hidden.value.length>0)
{
document.getElementById("spanMesajDurumu").innerHTML = "<b>" + hidden.value + "</b> Mesajınız var!";
}
setTimeout("kontrol_et()", 10000); //10 saniyede bir
}
 
</script>
</head>
<body onload="kontrol_et()">
<input type="hidden" id="yeni_mesaj_varmi"/>
Mesaj durumu : <span id="spanMesajDurumu">Yeni mesaj yok</span>
</body>
</html>

yeni_mesaj_varmi.txt

document.getElementById('yeni_mesaj_varmi').value = "7";
//alert("kontrol ediliyor");
//not : sayfa bir kere yüklendikten sonra bu dosyayı
//değiştirip kaydederek esas sayfaya nasıl yansıdığını görebilirsin.

Not: Önce http://forum.ceviz.net/showthread.php?t=51712 adresindeki konu için yazılmış, sonra buraya taşınmıştır.