Presentation is loading. Please wait.

Presentation is loading. Please wait.

Debugging and Ajax Session 7 INFM 718N Web-Enabled Databases.

Similar presentations


Presentation on theme: "Debugging and Ajax Session 7 INFM 718N Web-Enabled Databases."— Presentation transcript:

1 Debugging and Ajax Session 7 INFM 718N Web-Enabled Databases

2 Agenda Debugging Teams Ajax

3 Database Server-side Programming Interchange Language Client-side Programming Web Browser Client Hardware Server Hardware (PC, Unix) (MySQL) (PHP) (HTML, XML) (JavaScript) (IE, Firefox) (PC) Business rules Interaction Design Interface Design Relational normalization Structured programming Software patterns Object-oriented design Functional decomposition

4 Types of Errors Syntax errors –Detected at compile time Run time exceptions –Cause system-detected failures at run time Logic errors –Cause unanticipated behavior (detected by you!) Design errors –Fail to meet the need (detected by stakeholders)

5 Debugging Syntax Errors Focus on the first error message –Fix one thing at a time The line number is where it was detected –It may have been caused much earlier Understand the cause of “warnings” –They may give a clue about later errors If all else fails, comment out large code regions –If it compiles, the error is in the commented part

6 Run Time Exceptions Occur when you try to do the impossible –Use a null variable, divide by zero, … The cause is almost never where the error is –Why is the variable null? Exceptions often indicate a logic error –Find why it happened, not just a quick fix!

7 Debugging Run-Time Exceptions Run the program to get a stack trace –Where was this function called from? Print variable values before the failure Reason backwards to find the cause –Why do they have these values? If necessary, print some values further back

8 Logic Errors Evidenced by inappropriate behavior Can’t be automatically detected –“Inappropriate” is subjective Sometimes very hard to detect –Sometimes dependent on user behavior –Sometimes (apparently) random Cause can be hard to pin down

9 Debugging Logic Errors First, look where the bad data was created If that fails, print variables at key locations –if (DEBUG) echo “\$foobar = $foobar”; Examine output for unexpected patterns Once found, proceed as for run time errors –define (“DEBUG”, FALSE); to clean the output

10

11

12 Ajax Applications Google Maps –http://maps.google.com Google Suggest –http://www.google.com/webhp?complete=1&hl=en Sajax Tables –http://labs.revision10.com/?p=5 Sajax –http://www.modernmethod.com/sajax/

13 <? require("Sajax.php"); function multiply($x, $y) { return $x * $y; } sajax_init(); // $sajax_debug_mode = 1; sajax_export("multiply"); sajax_handle_client_request(); ?> Sajax Example

14 Multiplier <? sajax_show_javascript(); ?> function do_multiply_cb(z) { document.getElementById("z").value = z; } function do_multiply() { // get the folder name var x, y; x = document.getElementById("x").value; y = document.getElementById("y").value; x_multiply(x, y, do_multiply_cb); } * = <input type="button" name="check" value="Calculate" onclick="do_multiply(); return false;">

15 Code Walkthrough Syntax How layout helps reading How variables are named How strings are used How forms are used How output is created MySQL Integration Opening a database Handling slashes Posing queries Using result sets Structured Programming How things are nested How arrays are used Modular Programming Functional decomposition How functions are invoked How arguments work How scope is managed How errors are handled How results are passed


Download ppt "Debugging and Ajax Session 7 INFM 718N Web-Enabled Databases."

Similar presentations


Ads by Google