Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Complex JavaScript. What called me?

Project I'm working on uses jQuery.

I have a series of Ajax calls being made that load() other HTML fragments which in turn load() other fragments. The whole thing is confusing. I didn't write the code.

Is there any tool which will allow me to walk the callstack so I can figure what is calling a method? any browser tools that would help me figure this out?

Resolution:
In the end this was being caused because a <script src="..." was being injected in the server-side code. Your suggestions really helped - it was a combination of those and temporarily setting Ajax to sync instead async that helped me track down the issue.

$.ajaxSetup({
    async: false
});
like image 276
BuddyJoe Avatar asked May 17 '10 20:05

BuddyJoe


People also ask

What does $() mean in JavaScript?

Usually when you encounter $() , that means the developer is using a javascript library, such as jQuery. The $ symbol is the namespace for those libraries. All the functions they define begin with $. , such as $. get() .

What is the JavaScript stack called?

The call stack is used by JavaScript to keep track of multiple function calls. It is like a real stack in data structures where data can be pushed and popped and follows the Last In First Out (LIFO) principle. We use call stack for memorizing which function is running right now.

What does this refer to in JavaScript?

In JavaScript, the this keyword refers to an object. Which object depends on how this is being invoked (used or called). The this keyword refers to different objects depending on how it is used: In an object method, this refers to the object. Alone, this refers to the global object.

What is the problem with JavaScript?

These days, most cross-browser JavaScript problems are seen: When poor-quality browser-sniffing code, feature-detection code, and vendor prefix usage block browsers from running code they could otherwise use just fine. When developers make use of new/nascent JavaScript features, modern Web APIs, etc.)


1 Answers

Firebug is capable of this.

When the debugger is paused, Firebug shows you the call stack, which is the set of nested function calls that are currently running and waiting to return.

The call stack is represented as a compact strip of buttons in the toolbar, each with the name of a function on the stack. You can click any button to jump to the line where that function is paused, and look at the local variables inside that function.

like image 141
Robert Harvey Avatar answered Oct 09 '22 18:10

Robert Harvey