Analysis and Testing of Ajax-based Single-page Web Applications
Analysis and Testing of Ajax-based Single-page Web Applications
Analysis and Testing of Ajax-based Single-page Web Applications
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
1 if(navigator.appName == "Micros<strong>of</strong>t Internet Explorer") {<br />
2 var xmlHttpRequestObject = new ActiveXObject("Micros<strong>of</strong>t.XMLHTTP");<br />
3 } else {<br />
4 var xmlHttpRequestObject = new XMLHttpRequest ();<br />
5 }<br />
6<br />
7 var COMPLETED = 4;<br />
8 var SUCCESS = 200;<br />
9<br />
10 function loadFragment(method , url , params , target_element_id , callbackFunction) {<br />
11 xmlHttpRequestObject.open(method , url , true);<br />
12 xmlHttpRequestObject.onreadystatechange = function() {<br />
13 if (xmlHttpRequestObject.readyState == COMPLETED<br />
14 && xmlHttpRequestObject.status == SUCCESS) {<br />
15 callbackFunction(target_element_id , xmlHttpRequestObject.responseText);<br />
16 }<br />
17 }<br />
18<br />
19 if (method == "POST") {<br />
20 xmlHttpRequestObject.setRequestHeader("Content -type",<br />
21 "application/x-www -form -urlencoded");<br />
22 } else {<br />
23 xmlHttpRequestObject.setRequestHeader("Content -type",<br />
24 "text/plain");<br />
25 }<br />
26<br />
27 xmlHttpRequestObject.send(params);<br />
28 }<br />
29<br />
30 function insertIntoDOMElement(target_element_id , data) {<br />
31 var element = document.getElementById(target_element_id);<br />
32 element.innerHTML = data;<br />
33 }<br />
34<br />
35 function getData(url , target_element_id) {<br />
36 loadFragment(’GET ’, url , null , target_element_id , insertIntoDOMElement);<br />
37 }<br />
38<br />
39 function submitData(url , target_element_id) {<br />
40 var params = "val1=" + document.getElementById(’val1 ’).value +<br />
41 "&val2=" + document.getElementById(’val2 ’).value +<br />
42 "&calc=" + document.getElementById(’calc ’).value;<br />
43<br />
44 loadFragment(’POST ’, url , params , target_element_id , insertIntoDOMElement);<br />
45 }<br />
Figure A.3 The JAVASCRIPT code. XMLHttpRequest is used to asynchronously<br />
transfer data between the web server <strong>and</strong> the browser.<br />
Appendix A. A <strong>Single</strong>-<strong>page</strong> <strong>Ajax</strong> Example Application 165