Asynchronous JavaScript and XML
See: http://en.wikipedia.org/wiki/Ajax_(programming)
Module client code uses AJAX to make GET requests on server endpoints. Modules usually override the Splunk.Module base class getResults() method to request and handle search results. Most often, the data returned in the response is in JSON format.
Cross-site request forgery
See: http://en.wikipedia.org/wiki/CSRF
It is important to guarantee that POST requests are authentic to protect against CSRF attacks. The App Framework provides the csrf_hidden_input() template utility to insert a hidden form used to verify the validity of the POST request.
Cascading Style Sheets
See: http://en.wikipedia.org/wiki/Css
Default style sheets are located at $SPLUNK_HOME/share/splunk/search_mrsparkle/exposed/css/ and $SPLUNK_HOME/share/splunk/search_mrsparkle/exposed/css/skins. You can do simple app customizations using custom style sheets, as described in How to do simple app customizations.
Document Object Model
See: http://en.wikipedia.org/wiki/Document_Object_Model
As in common web programming, DOM is mostly used for binding handlers to DOM elements; preferably, using the jQuery $(document).ready(function() {...}); method. A number of App Framework APIs also provide access to DOM properties.
HyperText Markup Language
See: http://en.wikipedia.org/wiki/Html
Mako templates implement the app view component of the MVC pattern using HTML and Python-like constructs.
Hypertext Transfer Protocol
See: http://en.wikipedia.org/wiki/Http
App Framework uses CherryPy to implement the HTTP server.
JavaScript Object Notation
See: http://en.wikipedia.org/wiki/Json
The JSON data format is one of the formats supported for transferring data from the server to client. See render_json(). JSON is most often the format of the data returned in a module AJAX request.
Model-view-controller
See: http://en.wikipedia.org/wiki/Model_view_controller
The App Framework implements the MVC architecture pattern for functions that do not involve search, jobs, results, or events. See How to setup your app.
XMLHttpRequest
See: http://en.wikipedia.org/wiki/XMLHttpRequest
Code and documentation occasionally use XHR to refer to an AJAX HTTP request.
Extensible Markup Language
See: http://en.wikipedia.org/wiki/Xml
App view layout and navigation are specified using XML notation. Building apps using App Framework mostly involves using Advanced XML to describe your app view.