Where nothing caches, {nocache} is invisible: its content renders as any content does. It matters inside a {cache} section (or a tag's cache= option) that is rendering, and on a page the page cache may keep. There the part is stored as its source rather than as its output; a hit hands back the stored rendering with each part rendered again for this request.

A part inside a loop gets the fields of its rows back as they were when the section was stored, so {topProducts}...{nocache}{stock $id}{/nocache}... looks up the live stock of each cached product. In a section the part renders where the section stands, with the page's fields. A variable or store the cached text made before the part is not there on a hit - a section keeps its text, not its effects - so what a part reads is made before the section or in the part itself.

A page-cache hit runs no PHP - not the page's, nor an _inits.php - so a part there sees what a request has without it: request and session values, the configuration, the _lib functions and the application's tags. A page-cache entry with parts is never answered with a 304 from the entry alone, nor does a hit renew it.

A {form}'s CSRF token or a {nonce} inside a part no longer keeps a section out of the fragment cache: the part renders for each visitor. {nocache} takes no parameter, and is always a pair - a single {nocache} is an error under the strict check.