[Mapbender-users] GUIs are loading very slowly in Mapbender v2.7.2

Verena Diewald verena.diewald at wheregroup.com
Mon Oct 15 02:45:01 PDT 2012


Hello list,


please try our workaround solution for a faster loading mechanism.
What did we do:
We created a kind of cache mechanism which stores the initial js 
mapobject produced by the WMC loading process. The cache file is being 
created loading the gui for the first time. As soon as it exists, the 
gui's mapobject is loaded from the cache file, not again from the WMC 
process. This makes the loading process faster. Changing the mapobject 
of the gui (adding WMS, deleting WMS, updating WMS...) deletes the cache 
file and the gui has to be loaded the slowly way once again for creating 
a new cache file.
Use of the cache file loading process can be controlled using the 
element var "loadFromCache" of the mapframe1 gui element.
This workaround should at least be suitable for all mapbender guis which 
are not ever-changing (e.g. portal guis).
If you want to use the newer GET params api [1] you can not use this 
woraround.
If you want to use the older GET params (e.g. mb_myBBOX, mb_myPOI2SCALE, 
visiblelayers, querylayers...) you can do this with activated cache 
solution.
What you have to do for integration of the workaround:
1) get all changed files from the Mapbender 2.7 SVN branch of changeset 
8491 [2]
2) create a cache directory in the Mapbender's root directory 
(mapbender/cache) and set the Apache user as owner of this directory
3) add the element var "loadFromCache" to gui element mapframe1 and set 
it to 1 if you want to use the cache mechanism:
INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, 
var_value, context, var_type) VALUES('<gui_id>', 'mapframe1', 
'loadFromCache', '1', 'define if mapObj should be loaded from cache if 
cache file already exists' ,'php_var');


Best regards,

Verena



[1] http://www.mapbender.org/GET-Parameter
[2] http://trac.osgeo.org/mapbender/changeset/8491



Am 22.08.2012 08:57, schrieb Verena Diewald:
> Hi list,
>
> we decided to start another analysis of the performance problem.
> Perhaps it is possible to do a preprocessing of the WMC loading 
> mechanism. We will think about it.
> Further ideas are welcome.
>
>
> Best regards,
>
> Verena
>
>
> Am 16.08.2012 16:22, schrieb Verena Diewald:
>> Hallo Liste,
>>
>> Am 16.08.2012 14:47, schrieb Armin Retterath:
>>> Hallo zusammen,
>>>
>>> es liegt leider nicht an der GUI. Wir müssen etwas am Grundprinzip 
>>> des Ladens anpassen. Seit der neuen Version dauert es einfach 
>>> länger. Das aktuelle Verfahren ist bei verteilten Strukturen mit 
>>> unterschiedlichen Nutzungsbedingungen leider notwendig und ist durch 
>>> unsere Weiterentwicklung in den Jahren 2010/2011 dort reingeflossen.
>>> Ggf. könnte man optional einen schnelleren Ladevorgang realisieren. 
>>> Ist aber ein bisschen Programmieraufwand ;-) . Wenn ich nach der 
>>> Umsetzung der INSPIRE Anforderungen für Downloaddienste was Zeit 
>>> bekomme, kann ich mich ja mal dransetzen.
>>> Problem liegt serverseitig im javascripts/initWmcObj.php Script 
>>> begründet.
>>> Kann man debuggen und dann mal testen wie die Verarbeitungszeit 
>>> ansteigt, wenn eine GUI immer mehr Dienste hinzubekommt :-( .
>> Ich habe mir vor einiger Zeit die Verarbeitungszeiten des WMC im 
>> Zusammenhang mit ansteigender Anzahl an WMS in einer GUI angeschaut. 
>> Es ist leider wirklich so, dass die Erstellung des initialen WMC pro 
>> hinzukommendem WMS immer länger dauert und sich dadurch die Ladezeit 
>> der GUI immer weiter erhöht.
>>
>>
>> Gruß,
>>
>> Verena
>>>
>>> Grüße
>>> Armin
>>>
>>> On 16.08.2012 14:38, Thomas Baschetti wrote:
>>>> Am 16.08.2012 09:28, schrieb Sebastian Schwarz:
>>>>> Hallo Liste,
>>>>>
>>>>> wir haben ein Problem mit Mapbender v2.7.2: Die GUIs, die wir bislang
>>>>> umgesetzt haben, weisen durchweg sehr lange Ladezeiten auf, vorallem
>>>>> dann, wenn sie über zahlreiche eingebundene WMS verfügen. Über diesen
>>>>> Effekt haben wir bereits mit der WhereGroup gesprochen, die dazu
>>>>> folgende Auskunft gab: Beim Laden einer GUI muss das Skript in 
>>>>> map.php
>>>>> warten, bis serverseitig aller WMS-Informationen zu einem 
>>>>> initialen WMC
>>>>> verarbeitet sind, bevor das Skript in die eigentliche GUI springen 
>>>>> und
>>>>> diese schließlich anzeigen kann. Dieses Laden dauert umso länger, je
>>>>> mehr WMS in die GUI eingebunden sind.
>>>> ja, das Laden kann mit komplexeren Anwendungen und vielen WMS 
>>>> leider recht langwierig werden :-(
>>>>
>>>>> Nun zur eigentlichen Frage: Gibt es eine Möglichkeit, diese Ladezeit
>>>>> bzw. das serverseitige Verarbeiten der WMS-Informationen zu einem
>>>>> initialen WMC zu verkürzen?
>>>> als Idee zum Testen:
>>>> Habt ihr die GUI schon mal manuell als WMC Dokument abgespeichert 
>>>> (modul saveWMC),
>>>> und versucht die dann in eine schlanke&schnelle GUI zu laden? Geht 
>>>> das dann schnell?
>>>> Falls ja kann man das sicherlich automatisieren, aber falls auch 
>>>> das nicht schnell genug
>>>> ist müsste man versuchen die Verarbeitung des WMC generell zu 
>>>> beschleunigen...
>>>>
>>>> Mit freundlichen Grüßen
>>>>
>>>> Thomas Baschetti
>>>>
>>>
>>>
>>
>

-- 




More information about the Mapbender_users mailing list