LuCI - OpenWrt Configuration Interface
Find a file
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
applications applications/luci-firewall: fix turning off nat reflection 2011-07-30 20:02:58 +00:00
build build: add i18n-init.sh, a helper script to initalize missing *.po files 2011-05-21 21:22:47 +00:00
contrib contrib/meshwizard: fix for last commit 2011-08-05 17:21:26 +00:00
i18n i18n: add hebrew language module 2011-06-24 11:51:14 +00:00
libs [PATCH] Allow smarter node creation based on visibility during createtree 2011-08-12 11:05:59 +00:00
modules modules/freifunk: Add profile for carbodebit (fr) 2011-08-05 17:24:27 +00:00
po Commit from LuCI Translation Portal by user soma.: 2 of 4 messages translated (0 fuzzy). 2011-08-07 15:04:50 +00:00
themes smaller fonts for mobile use 2011-07-04 18:10:15 +00:00
.buildpath * new project: ff-luci - Freifunk Lua Configuration Interface 2008-03-02 21:52:58 +00:00
.cproject More C-Functions (luci.cutil.instanceof, luci.cutil.pcdata) 2008-11-20 19:22:05 +00:00
.gitignore Added "apidocs" target to Makefile 2008-07-29 21:16:12 +00:00
.project LuCI Core C-Rewrite: First steps 2008-11-19 23:02:36 +00:00
INSTALL HTTP is sufficient for plain checkouts, Schäuble could also do checkouts before by himself 2009-01-02 21:42:49 +00:00
LICENSE * new project: ff-luci - Freifunk Lua Configuration Interface 2008-03-02 21:52:58 +00:00
Makefile build: add nixiodocs make target, remove uvldocs target 2011-02-16 20:14:25 +00:00
NOTICE Add axTLS sourcecode 2009-02-22 23:19:25 +00:00
THANKYOU * luci: replace all "OpenWRT" occurences with "OpenWrt" 2008-10-27 15:19:58 +00:00