DHTML Real-time debugger/productivity aid
Original Publication Date: 2002-Apr-13
Included in the Prior Art Database: 2003-Jun-21
This invention (hereafter called NID—Non-Invasive Debugger) runs alongside your html pages to provide real-time, non-invasive debugging. It allows you to view the code behind the pages, it allows you to interact with the html application by querying and modifying global variables, it allows you to debug event handling without interfering with the event, and it logs messages written from within the html program and from within NID and allows you to save them to an output file. The invention can be added to your application in such a way that it runs with or without the NID files available, so that it doesn't require you to modify your application whether in development or production mode. The browser allows you to view the source of an html page. The problem with this feature is that it doesn't account for dynamic html – html that changes after the page is loaded. When you view a page—in the IE browser in particular—you see the html as it existed when the page loaded. NID allows you to view the source at any point in time. It contains a drop-down that is populated with all the pages in your application (it accommodates frames and iframes). From that drop-down you select the page that you wish to view. With this feature, you can ensure that the DHTML in your pages is written out as expected. NID also allows you to interact with the running application, by allowing you to query global variables and execute statements in the application window from NID's interface. These interactions are recorded as messages in the onscreen log. The statements you execute are limitless—they make use of the browser's DOM. This feature, combined with the use of debug messages in your program, allow you to fully debug around event handling, a difficult task using conventional debugging methods. NID makes use of debugging statements in your program via a debug variable. This variable is initialized to false in your application so that your application can run without NID available. If NID is available, the same debug Boolean variable can be modified within NID to write out messages as soon as your application begins running, or as soon as NID is opened (NID will save up any messages your application is generating if told to and write them out to its screen when it opens). You qualify any debug messages you write from within your application with the debug variable. You can also write messages from NID to NID's console, to aid your debugging session with comments. For example, if you want to test an event, you can write a message telling the browser that you are beginning that test, so that you know that any messages following your message are related to that test. Without NID, your only options for debug statements are the use of alert boxes (invasive when testing event handling because they interrupt the event) and the browser's status bar (which can only show one message at a time and your useful message is often quickly rewritten by another or is replaced by a browser interaction such as hovering over a hyperlink).