You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							71 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							71 lines
						
					
					
						
							1.8 KiB
						
					
					
				<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | 
						|
<html> | 
						|
<head> | 
						|
 | 
						|
<title>Dojo bind exception problem</title> | 
						|
 | 
						|
<script type="text/javascript"> | 
						|
 | 
						|
	var djConfig = {isDebug: true}; | 
						|
 | 
						|
</script> | 
						|
<script type="text/javascript" src="../../dojo.js"></script> | 
						|
<script type="text/javascript"> | 
						|
	dojo.require("dojo.io.BrowserIO"); | 
						|
</script> | 
						|
 | 
						|
<script type="text/javascript"> | 
						|
	var testvar = 0; | 
						|
 | 
						|
	function firstBind() { | 
						|
		dojo.io.bind({ | 
						|
			url: 'frag.xml', | 
						|
			method: 'get', | 
						|
			load: firstBindReply, | 
						|
			error: errorHandler | 
						|
		}); | 
						|
	} | 
						|
 | 
						|
	function firstBindReply(type, data, transport, bindArgs) { | 
						|
		testvar++; | 
						|
		dojo.debug("Error bind: testvar is now: " + testvar + ". About to throw an error now."); | 
						|
		throw new Error('ohhhh, an error happened!'); | 
						|
	} | 
						|
 | 
						|
	function secondBind() { | 
						|
		dojo.io.bind({ | 
						|
			url: 'frag.xml', | 
						|
			method: 'get', | 
						|
			load: secondBindReply, | 
						|
			error: errorHandler | 
						|
		}); | 
						|
	} | 
						|
 | 
						|
	function secondBindReply(type, data, transport, bindArgs) { | 
						|
		testvar++; | 
						|
		dojo.debug("Safe bind: testvar is now: " + testvar); | 
						|
	} | 
						|
 | 
						|
	function errorHandler(type, data, transport, bindArgs) { | 
						|
		var error = data; | 
						|
		if(data.message){ | 
						|
			error = data.message; | 
						|
		} | 
						|
		dojo.debug("errorHandler called with error: " + error); | 
						|
	} | 
						|
</script> | 
						|
 | 
						|
</head> | 
						|
<body style="padding: 50px;"> | 
						|
<p> | 
						|
This test makes sure that throwing an exception in the load callback will not stop further | 
						|
dojo.io.bind() requests from proceeding. If <b>Error bind</b> is pressed, an exception | 
						|
will be thrown in the load handler. <b>Safe bind</b> does not throw an error. In all cases, | 
						|
the value of <b>testvar</b> should increase by 1 any time either button is pressed. | 
						|
</p> | 
						|
 | 
						|
<input id="asdf" type="button" value="Error bind (throws error)" onclick="firstBind()"> | 
						|
<input type="button" value="Safe bind (does not throw error)" onclick="secondBind()"> | 
						|
 | 
						|
</body> | 
						|
</html>
 | 
						|
 |