AJAX refresh div

Programovacie jazyky, rady, poradňa...
Snacker
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 362
Registrovaný: 08 jún 2009, 22:42
Kontaktovať používateľa:

AJAX refresh div

Príspevok od používateľa Snacker »

Zdravim,
Robil som chat cez iframe no je s tym problem pri refreshnuti -> v IE pri refreshe to vzdy tak tukne/klikne a beriem to za dost rusivy element, ktory sa neda odstranit tak som sa rozhodol ze to prerobim cez AJAX ->div ktory sa bude refreshovat. Hladal som dost dlho no s kazdym bol nejaky problem, potrebujem aby to hlavne bolo funkce aj v IE6ke
Ak by se o niecom vedeli pastnite to sem alebo hodte link

Dakujem pekne
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Môžeš sem hodiť čo konkrétne ti nešlo? Nejak sa mi nechce veriť že nedokážeš nájsť/spraviť niečo funkčné, veď je to iba obyčajný refresh divu. Nikdy som s ajaxom nemal takéto problémy (ak boli problémy, tak iba s kodovanim a pod. ale aj tie sa dajú riešiť)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Čo presne si skúšal?
Snacker
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 362
Registrovaný: 08 jún 2009, 22:42
Kontaktovať používateľa:

Príspevok od používateľa Snacker »

Co sa mi zdalo celkom fajn bolo :

Kód: Vybrať všetko

<html>
<head>
<title>nieco</title>
<script type="text/javascript"> 
<!-- 
//Create a boolean variable to check for a valid Internet Explorer instance. 
var xmlhttp = false; 
//Check if we are using IE. 
try { 
//If the Javascript version is greater than 5. 
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
} catch (e) { 
//If not, then use the older active x object. 
try { 
//If we are using Internet Explorer. 
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} catch (E) { 
//Else we must be using a non-IE browser. 
xmlhttp = false; 
} 
} 
//If we are using a non-IE browser, create a javascript instance of the object. 
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { 
xmlhttp = new XMLHttpRequest(); 
} 

function makerequest(serverPage, objID) { 
var obj = document.getElementById(objID); 
serverPage = "nove.php"; 
xmlhttp.open("GET", serverPage); 
xmlhttp.onreadystatechange = function() { 
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
obj.innerHTML = xmlhttp.responseText; 
} 
} 
xmlhttp.send(null); 
setTimeout("makerequest('nove.php', 'nove')", 30000); 
} 
//--> 
</script>
</head>
<body onload="makerequest('nove.php','nove')"> 

<div id="nove"></div> 

</body>
</html>
a v nove.php echnem nejaky retazec.
Cez Operu. FF, Safari je to funkcne no neviem to rozchodit v IE
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

ak to skúsaš lokálne (potom som ale zmenil že mi načítavalo html do toho divu) , tak bude status 0 a nie 200. Čiže podmienka bude

Kód: Vybrať všetko

if (xmlhttp.readyState == 4 ) {
alebo

Kód: Vybrať všetko

if (xmlhttp.readyState == 4 && xmlhttp.status ==  0) {
ale potom sa čudujem prečo ti to v opere a ff išlo. Keď som tú podmienku zmenil takto tak mi to ide vo všetkých prehliadačoch. To je jediná vec čo ma napadla, lebo na serveri mi to ide presne tak ako to máš.
Snacker
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 362
Registrovaný: 08 jún 2009, 22:42
Kontaktovať používateľa:

Príspevok od používateľa Snacker »

Ja mam len IE8, skusal som to aj lokalne aj na mojom VPS vsetky kombinacie a nejde. Asi skusim iny skript
Napísať odpoveď