# Connection Manager Transaction Timeout

The following code example provides a step-by-step approach to presetting a transaction timeout.

### Source file and dependencies

Load the YAHOO namespace and connection manager source file:

    <script src="yahoo.js"></script>
    <script src="connection.js"></script>

### The Callback Object

The callback object includes a new property: timeout. To enable a transaction to automatically timeout, the timeout property must be defined wih a value in millseconds. This example defines timeout with a value of 5000(milliseconds). If the transaction is not complete by 5000ms, it will be aborted.

    var handleSuccess = function(o){
    	if(o.responseText !== undefined){
    		div.innerHTML = "Transaction id: " + o.tId;
    		div.innerHTML += "HTTP status: " + o.status;
    		div.innerHTML += "Server response: " + o.responseText;
    		div.innerHTML += "Argument object: property foo = " + o.argument.foo +
    						 "and property bar = " + o.argument.bar;
    	}
    }

    var handleFailure = function(o){
    	div.innerHTML += "<li>Transaction id: " + o.tId + "</li>";
    	div.innerHTML += "<li>HTTP status: " + o.status + "</li>";
    	div.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
    }

    var callback =
    {
      success:handleSuccess,
      failure: handleFailure,
      argument: { foo:"foo", bar:"bar" },
      timeout: 5000
    };

### Initiate the Transaction

Call YAHOO.util.Connect.asyncRequest to send the request to sync.php. The PHP file will return a string message after a random delay of 0 to 10 seconds, if the transaction was not aborted. If the transaction was successfully aborted, the response object's status property will report -1 and the statusText property will report "transaction aborted".

    var sUrl = "php/sync.php";
    var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);