luci/libs
Jo-Philipp Wich 0cb0742818 [PATCH] Allow smarter node creation based on visibility during createtree
As I've brought up on the mailing list thread "High latency caused by full tree creation", there is a large amount of delay per LuCI request which is spent building the node tree in createtree(). Most nodes created aren't 
needed for the view presented to the user and only serve to consume memory and CPU time during a page load.

My idea is to provide an easy mechanism for index()ers to determine which needs to be created and what isn't. Due to the constraints of the standard LuCI web interface, this optimization needs to establish a few rules:

 * The page requested must have its node created
 * All parents of the page being requested must be created, so the children inherit the track
 * All the top-level nodes "Status", "System", "Services", "Network" (and others added by extensions) must be created in order to have their top-level tabs in the UI
 * All peers of second-level nodes need to be created as well for the same reason, to display their links on the subindexes 
                
To make this easy to implement in each controller, the attached patch adds an "inreq" field to each created node to indicate if it lies on the request path. To satisfy the "top level node" requirement, we always 
add the top level node, then check its inreq property if the top-level node is not "in request", then the controller can exit index() early.
2011-08-12 11:05:59 +00:00
..
core libs/core: fix multiple errors in zone delete handling of firewall model 2011-07-11 12:14:55 +00:00
fastindex * Rewrote Luci to be coroutine-safe allowing the use of non-forking webservers 2008-06-14 14:12:12 +00:00
httpclient libs/httpclient: return server response line in error case (#249) 2011-06-25 22:57:18 +00:00
ipkg libs/ipkg: capture stdout, stderr when running opkg commands 2011-06-23 10:12:03 +00:00
json libs/json: Fix a typo and a logic error in json.lua to make luci.json.encode() work like expected (#220) 2011-04-17 11:39:17 +00:00
lmo libs/lmo: skip all entries with identical key and value when generating lmo archives 2011-01-02 18:16:54 +00:00
lucid libs/lucid: fix process function leak (#285) 2011-08-11 23:23:11 +00:00
lucid-http libs/lucid-http: fix regressions with recent git uci 2009-12-29 17:50:35 +00:00
lucid-rpc GSoC: Documentation #2 2009-06-14 08:51:43 +00:00
nixio libs/nixio: add missing file in previous commit, revert unrelated change 2011-08-12 10:27:48 +00:00
px5g libs/px5g: fix compilation on OpenWrt trunk 2010-11-16 16:30:07 +00:00
rpcc GSoC: Add RPC client 2009-06-14 09:02:40 +00:00
sgi-cgi Add possibility to show execution time in the footer 2010-11-23 01:02:21 +00:00
sgi-luci Make LuCIttpd work OOTB 2008-12-07 11:47:59 +00:00
sgi-uhttpd libs/sgi-uhttpd: move exectime inside handle_request 2010-12-15 01:04:38 +00:00
sgi-wsapi Made SGIs even more standards compliant (respect EOF command from LuCI) 2008-07-23 18:52:12 +00:00
sys libs/sys: redirect stdout to /dev7null when calling initscripts 2011-05-21 16:29:31 +00:00
web [PATCH] Allow smarter node creation based on visibility during createtree 2011-08-12 11:05:59 +00:00