[fusion-trac] #75: LoadMap performance issues

Fusion trac_fusion at osgeo.org
Fri Jun 6 07:08:49 EDT 2008


#75: LoadMap performance issues
---------------------------+------------------------------------------------
   Reporter:  pagameba     |       Owner:  madair
       Type:  enhancement  |      Status:  new   
   Priority:  P1           |   Milestone:  2.0   
  Component:  Core         |     Version:  1.0.6 
   Severity:  Major        |    Keywords:        
External_id:               |       State:  New   
    Browser:  All          |          Os:  All   
---------------------------+------------------------------------------------
 This affects both MapGuide and MapServer.  Currently, LoadMap.php (as
 called by loadMap and reloadMap) enumerates all the layers, scale ranges
 and styles/classes to generate a full list of the structure of the Map.
 But the Map widget only uses the layer list to manage layers, it is the
 Legend widget that needs the extra information.

 When you dynamically add or remove layers during a session, then, you need
 to call reloadMap which processes the whole map again and returns all that
 information to the client which again needs to parse it all.  This is slow
 and wasteful.

 This enhancement is to refactor the code in LoadMap.php, the Map widgets,
 the Legend widget and possibly the LayerManager widget to remove the scale
 range/style/class code from LoadMap into a separate php script that can be
 called from the Legend widget directly.  This new script could cache scale
 range information in the server-side session and other code that changes
 the representation of the layer can then just remove the information from
 the session to cause it to be rebuilt.

 This will allow LoadMap to run faster and return a LOT less information to
 the client, making initial load and reload faster.

 The Legend widget will need to be refactored to get the layer list from
 the Map (as it does now) and then make separate asynchronous requests to
 the server to load up scale range/style/class information per layer.  Then
 on reload, it can make more intelligent choices to get only the
 information that has changed.

 The Legend widget should also be refactored to not rebuild itself on
 reload but rather just restructure its existing tree if possible.

-- 
Ticket URL: <http://trac.osgeo.org/fusion/ticket/75>
Fusion <http://trac.osgeo.org/fusion>
Fusion is a web-mapping application development framework for MapServer and MapGuide OS.


More information about the fusion-trac mailing list