<?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>
 
 
 |