View Single Post
ישן 10-06-07, 16:43   # 1
sUP
משתמש תחת חוזה ניסיון.
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: אזור חיפה
הודעות: 1,948

sUP לא מחובר  

בעיה רצינית עם AJAX וTimeout

אהלן
אני בונה פה ללקוח עמוד סטטוס שמציג את המצב של האתר שלו
ואמור להתעדכן כל 30 שניות דרך AJAX

אני פשוט מציג span id="xx" ולשם מעדכן את התוכן

הבעיה היחידה - זה לא מעדכן

זה מריץ את זה פעם אחת אבל לא מעדכן

הנה הקוד של העדכון והקריאה:
HTML קוד:
var detailID = 0;


function UpdateDetails() {
   if(detailID) {
      clearTimeout(detailID);
      detailID  = 0;
   }

   ajax("details.php?show=onlinemembers", "onlinemembers");
   ajax("details.php?show=onlinevips", "onlinevips");
   ajax("details.php?show=onlinevips", "onlinevips2");
   ajax("details.php?show=onlineguests", "onlineguests");
   ajax("details.php?show=onlinetotal", "onlinetotal");

   ajax("details.php?show=uniquetoday", "uniquetoday");
   ajax("details.php?show=uniquetotal", "uniquetotal");
   ajax("details.php?show=pagestoday", "pagestoday");
   ajax("details.php?show=pagestotal", "pagestotal");

   ajax("details.php?show=membersregular", "membersregular");
   ajax("details.php?show=membersvip", "membersvip");
   ajax("details.php?show=membersvip", "membersvip2");
   ajax("details.php?show=membersedit", "membersedit");
   ajax("details.php?show=memberstotal", "memberstotal");

   ajax("details.php?show=financetoday", "financetoday");
   ajax("details.php?show=financeyesterday", "financeyesterday");
   ajax("details.php?show=financetotal", "financetotal");

   ajax("details.php?show=arrows", "arrows");

   ajax("details.php?show=last10", "last10");

   detailID = setTimeout("UpdateDetails()", 30000);

}
והנה הקוד של ה AJAX:

HTML קוד:
function GetXmlHttpObject(handler) { 
var objXmlHttp=null

	if (navigator.userAgent.indexOf("MSIE")>=0) { 
		var strName="Msxml2.XMLHTTP"

		if (navigator.appVersion.indexOf("MSIE 5.5")>=0) {
			strName="Microsoft.XMLHTTP"
		} 

		try { 
			objXmlHttp=new ActiveXObject(strName)
			objXmlHttp.onreadystatechange=handler 
			return objXmlHttp
		} 

		catch(e) { 
			alert("Error. Scripting for ActiveX might be disabled") 
			return 
		} 
	} 


	if (navigator.userAgent.indexOf("Mozilla")>=0) {
		objXmlHttp=new XMLHttpRequest()
		objXmlHttp.onload=handler
		objXmlHttp.onerror=handler 
		return objXmlHttp
	}

} 


function ajax(url,targ) {

targe = targ;

	xmlHttp = GetXmlHttpObject(stateChanged);
	xmlHttp.open("GET", url , true);
	xmlHttp.send(null);
}

function stateChanged() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		document.getElementById(targe).innerHTML=xmlHttp.responseText;
	} 
}
תודה מראש
__________________

לפרטים נוספים dani3l@gmail.com (אימייל)
  Reply With Quote