DokuWiki

It's better when it's simple

User Tools

Site Tools


devel:caching

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
devel:caching [2022-09-29 14:43] – [Purging the cache] Order does not matter. schplurtzdevel:caching [2023-09-02 16:31] (current) Klap-in
Line 19: Line 19:
 To purge the editor toolbar (and other cached JavaScript) call To purge the editor toolbar (and other cached JavaScript) call
   http://www.example.com/lib/exe/js.php?purge=true   http://www.example.com/lib/exe/js.php?purge=true
-and clean up your browser's cache as well. This especially helps if a new button introduced by a plugin does not show up.+and clean up your browser's cache (Ctrl+F5) as well. This especially helps if a new button introduced by a plugin does not show up.
  
 You can also clear the CSS cache in the same way: You can also clear the CSS cache in the same way:
   http://www.example.com/lib/exe/css.php?purge=true   http://www.example.com/lib/exe/css.php?purge=true
 +
 ===== Two-Stage-Caching ===== ===== Two-Stage-Caching =====
  
Line 58: Line 59:
   * add an [[action plugin]] component to handle the ''[[devel:event:parser_cache_use|PARSER_CACHE_USE]]'' event.   * add an [[action plugin]] component to handle the ''[[devel:event:parser_cache_use|PARSER_CACHE_USE]]'' event.
  
-Caching itself is handled by the cache object((''inc/Cache/Cache.php'')). The key parts of that object of interest to plugins are:+Caching itself is handled by the Cache object((''inc/Cache/Cache.php'')). The key parts of that object of interest to plugins are:
   * the ''depends'' array --- DokuWiki fills this all the known dependencies of the page and then uses standard routines to process them. Plugins can add/modify these dependencies before they are processed. The different types of dependencies are:   * the ''depends'' array --- DokuWiki fills this all the known dependencies of the page and then uses standard routines to process them. Plugins can add/modify these dependencies before they are processed. The different types of dependencies are:
     * ''purge'' --- expire the cache     * ''purge'' --- expire the cache
     * ''age'' --- expire the cache if its older than age (affected by the metadata value 'date valid')     * ''age'' --- expire the cache if its older than age (affected by the metadata value 'date valid')
-    * ''files'' --- expire the cache if it is older than any of the files in this array.  Only local files may be added.  Take a look at ''[[xref>inc/Cache/Cache.php]]'' and it’s subclasses for a list of the files.  Perhaps most interestingly the cached xhtml is dependent on the page's metadata.+    * ''files'' --- expire the cache if it is older than any of the files in this array.  Only local files may be added.  Take a look at ''[[xref>dokuwiki\Cache\Cache]]'' and it’s subclasses for a list of the files.  Perhaps most interestingly the cached xhtml is dependent on the page's metadata.
   * the cache name, ''cache'' --- a unique identifier under which the cache is stored.  Normally it is dependent on the page name, ''%%HTTP_HOST%%'' and the server port. Plugins can generate more complex identifiers, by extending the key with a certain identifier and recreate the cache name e.g. the [[:plugin:include]] generates identifiers using included page names and whether or not the current user has read access to those pages.    * the cache name, ''cache'' --- a unique identifier under which the cache is stored.  Normally it is dependent on the page name, ''%%HTTP_HOST%%'' and the server port. Plugins can generate more complex identifiers, by extending the key with a certain identifier and recreate the cache name e.g. the [[:plugin:include]] generates identifiers using included page names and whether or not the current user has read access to those pages. 
  
Line 70: Line 71:
 /* code to expire the cached xhtml of page ns:page /* code to expire the cached xhtml of page ns:page
  * $id = 'ns:page';  * $id = 'ns:page';
- * $data = array('cache' => 'expire');  // the metadata being added + * $data = array('cache' => 'expire'); // the metadata being added 
- * $render = false;                     // no need to re-render metadata now + * $render = false;     // no need to re-render metadata now 
- * $persistent = false;                 // this change doesn't need to persist passed the next metadata render.+ * $persistent = false; // this change doesn't need to persist passed 
 +                         the next metadata render.
  */  */
 p_set_metadata($id, $data, $render, $persistent); p_set_metadata($id, $data, $render, $persistent);
devel/caching.txt · Last modified: 2023-09-02 16:31 by Klap-in

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki