.. _startup-sequence:
****************************
The MathJax Startup Sequence
****************************
When you load ``MathJax.js`` into a web page, it configures itself and
immediately begins loading the components it needs. As MathJax starts
up, it uses its :ref:`signaling mechanism `
to indicate the actions that it is taking so that MathJax extensions
can tie into the initialization process, and so other applications
within the page can synchronize their actions with MathJax.
The startup process performs the following actions:
- It creates the ``MathJax`` variable, and defines the following
subsystems:
- ``MathJax.Object`` (object-oriented programming model)
- ``MathJax.Callback`` (callbacks, signals, and queues)
- ``MathJax.Ajax`` (file-loading and style-creation code)
- ``MathJax.HTML`` (support code for creating HTML elements)
- ``MathJax.Message`` (manages the menu line in the lower left)
- ``MathJax.Hub`` (the core MathJax functions)
..
- It then creates the base ``MathJax.InputJax``,
``MathJax.OutputJax``, and ``MathJax.ElementJax`` objects.
..
- MathJax sets up the default configuration, and creates the
signal objects used for the startup and hub actions.
..
- MathJax locates the ``