Taken from http://en.wikipedia.org/wiki/Idempotency:
Definition:
In mathematics, an idempotent element (or simply an idempotent) is something that when multiplied by (for a function, composed with) itself, gives itself as a result. For example, the only two real numbers which are idempotent under multiplication are 0 and 1.
Formally, if S is a set with a binary operation * on it, then an element s of S is said to be idempotent (with respect to *) if
s * s = s.
Computer science:
In computing, idempotence is the quality of something that has the same effect if used multiple times as it does if used only once. In particular, C header files are often designed to be idempotent, that is, if the header file is included more than once (as can easily happen with nested #includes), then nothing untoward happens - the effect is the same as if it had been included only once.
Idempotent behaviour is the basis for the caching ability of the web; if the same request delivers the same response one can also work with a copy instead of requiring the original page.
In user interface design, a button can be called "idempotent" if pressing it more than once will have the same effect as pressing it once. For example, a "Pause" button is not idempotent if it toggles the paused state. On the other hand, if pressing it multiple times keeps the system paused and pressing "Play" resumes, then "Pause" is idempotent. This is useful in interfaces such as infrared remote controls and touch screens where the user may not be sure of having pressed the button successfully and may press it again. Elevator call buttons are also idempotent, though many people think they are not.