25.07.2014 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!