• Medlem
  • Västerås
  • 2008-03-05 21:45

Sitter och håller på med en widget som kommer att visa status för Apple Store, dvs om den är uppe eller nere. Status hämtas från en php fil på webben och widgeten ska sedan visa ett lager för uppe, ett för nere och ett annat om det uppstår något problem.

Självklart ska den också uppdateras med en viss intervall.

Till problemet, jag får det inte att fungera så att timern uppdaterar den samt att det verkar vara problem med felhanteringen. Jag är själv ingen programmerare så koden kommer från olika ställen. Håller på och tar fram en design så nu används kod från ett exempel från Apple, slutgiltlig design kommer antagligen likna detta: http://royal.pingdom.com/?p=251

Någon som ser vad jag gjort för galet och hur man kan lösa det?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transi...">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>
	body {
		margin: 0;
		background: url("Default.png");
	}
	#content|content {
		font: 24px "Lucida Grande";
		font-weight: bold;
		color: white;
		text-align: center;
		position: absolute;
		top: 41px;
		left: 18px;
		width: 180px;
	}
		
</style>
<script type='text/javascript'>
var xmlHttpRequestHandler = new Object();
var requestObject = null;
var url = "http://applestorestatus.pingdom.com/widgetsta...";

if (window.widget) {
    widget.onhide = onhide;
    widget.onshow = onshow;
}

function onshow() {
    if (timerInterval == null) {
        timerInterval = setInterval('updateStatus();', 1000);
    }
}

function onhide() {
    if (timerInterval != null) {
        clearInterval(timerInterval);
        timerInterval = null;
    }
}

function updateStatus()
{

	requestObject = new XMLHttpRequest();
	requestObject.onreadystatechange = onReadyStateChangeResponse;
	requestObject.open("Get",url, true);
	requestObject.send(null);
}

function onReadyStateChangeResponse()
{
	var ready, status;
	try
	{
		ready = requestObject.readyState;
		status = requestObject.status;
	}
	catch(e) 
	{
		setStatus("error");
	}
	
	if(ready == 4 && status == 200)
	{
		if(status == 200)
		{
		
			if (requestObject.responseText == "0")
			{
				setStatus("up");
			}
			else if (requestObject.responseText == "1")
			{
				setStatus("down");
			}
			else
			{
				setStatus("error");
			}

		}
		else
		{
			setStatus("error");
		}
	}
}

function setStatus(status)
{
			if (status == "up")
			{
				document.getElementById('up').style.display="";
				document.getElementById('down').style.display="none";
				document.getElementById('error').style.display="none";
			}
			else if (status == "down")
			{
				document.getElementById('up').style.display="none";
				document.getElementById('down').style.display="";
				document.getElementById('error').style.display="none";
			}
			else
			{
				document.getElementById('up').style.display="none";
				document.getElementById('down').style.display="none";
				document.getElementById('error').style.display="";
			}

}

updateStatus();
</script>
</head>

<body>

<div id="up" style="display:none">Apple store UP</div>
<div id="down" style="display:none">Apple store Down</div>

<div id="error" style="display:none">Could not connect</div>

</body>
</html>