Location: PHPKode > scripts > pAjax > pajax/tests/basic_timer.php
<?php

require_once "../class.pAjax.php";


if (isset($_GET['mode']))
	$mode = strtoupper($_GET['mode']);
else
	$mode = "ASYNC";


function bkgColor() {
	$hexa = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");

	srand(time());
	
	$color = "";
	for ($i = 0; $i < 6; $i++) {
		$rand = rand(0, count($hexa) - 1);
		
		// Could not start with 0, otherwise I'll loose the char while converting the number to JS
        if ($color == "" && $hexa[$rand] == 0)
            $i--;
        else
            $color .= $hexa[$rand];
	}
	
	return $color;
}


$AJAX = new pAjax;
$AJAX->disableDomainProtection();
$AJAX->enableExportProtection();
$AJAX->export("bkgColor");
$AJAX->handleRequest();

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
	<head>
		<title>Background Color changer</title>
		<?php pAjax::showJavaScript(".."); ?>
        <script type="text/javascript">
            function BackgroundColorChanger() {
				pAjax.call(this);
				pAjax.setDebugMode(false);

                this.timer = null;
				this.executions = 0;
				this.okay = 0;
			}
			
			
			var _p = BackgroundColorChanger.prototype = new pAjax;
			

			_p.tick = function () {
				this.executions++;
			
				var oRequest = this.prepare("bkgColor", pAjaxRequest.GET);
				oRequest.execute(pAjaxRequest.<?php echo $mode; ?>);
			}
			

			_p.onLoad = function () {
				var data = this.getResponse();
				
				document.getElementById("recieved").innerHTML = "#" + data;				
				if ((String(data)).length == 6 || (String(data)).length == 3) {
					document.body.style.backgroundColor = "#" + data;
					this.okay++;
					
					document.getElementById('states').innerHTML += " [Success: " + this.okay + "]";
				}
				
				document.getElementById('states').innerHTML += "<br />";	
				
				var oThis = this;
				if (!this.timer)
					this.timer = window.setInterval(function () { oThis.tick(); }, 3000);
			}
			

			_p.onChange = function () {
				document.getElementById('states').innerHTML += "Called " + this.executions + " times => readyState value: " + this.getReadyState();
				
				if (this.readyState != 4)
					document.getElementById('states').innerHTML += "<br />";
			}
			
			
			var bkg = new BackgroundColorChanger;
		</script>
	</head>
	
	<body onload="bkg.tick();">
		Background Color is changed each 3000 miliseconds, via <?=$mode?> mode.<br />
		Data recieved: <span id="recieved"></span><br />
		<br />
		You can run the same page using Synchronized or Assynchronized mode. Use ?mode=sync or ?mode=async to test.<br />
		<br />
        <div id="states" style="width: auto; height: 300px; overflow: auto; background-color: #fff; border: 1px solid #000"></span>
	</body>
</html>
Return current item: pAjax