[TYPO3-v4] Idea how to speed up Backend with ExtJS

Ernesto Baschny [cron IT] ernst at cron-it.de
Tue May 3 09:09:51 CEST 2011


Kay Strobach schrieb am 02.05.2011 19:05:
> Hello Guys,
> Hello Xaviar,
> 
> as written some time ago i have some ideas to make TYPO3 Backend feeling
> faster.
> 
> The startingpoint of all this stuff is the user story of an editor.
> 
> Current Technologie of TYPO3v4:
> =================================
>  - Extbase nested Border Layout with some areas
>    (north, center, east west, ..)
>  - Iframe for modules
>  - Viewport for pagetree which hides conditionally
>  - Module change with the following JS Code:
>    top.goToModule = function(modName, cMR_flag, addGetVars) {
> 	TYPO3.ModuleMenu.App.showModule(modName, addGetVars);
>    }
>    e.g. top.goToModuel('tx-sitemgr-mod1');
> 
>   Pro of this Approach
>   =================================
>    - save some kb on load
>    - keep dom small
>    - relativ fast (safe ram on client)
> 
>   Cons of this Approach
>   =================================
>    - Switching modules is slow
>    - you often see the loading indicator
>      -> some people hate it already ;)
>      -> even if it was technically correct
> 
> 
> Better way of Doing it - still being compatible with old approach ;) [1]
> =================================
>  - Use an CardLayout
>  - Let the first card be the current iframe (compatibility)
>  - Use the following Hook to include JS to Backend
>    $GLOBALS['TYPO3_CONF_VARS']['typo3/backend.php']
>            ['additionalBackendItems'][] = <...>
>  - The module needs to register to a specific TYPO3-Modulemanager
>  - If a page is selected in the pagetree an event is thrown, which is
>    bubbled to the current active card
>     - if the iframe is active -> reload with new param
>     - if a different card is active just fire an event for the module
>       (then stores can be reloaded  ...)
> 
>   Pro of this Approach
>   =================================
>    - Switching modules is fast if new approach is used
>    - you won't see the loading indicator in new modules, as the module
>      is not realy loaded again
>    - changing existing modules should be quite easy
>      (it's just some extjs)
>    - existing functions can determine easily if it's an old or an new
>      module -> needs some work
>    - tine20.org and other software work with this idea
>    - more desktop like feeling
>    - rapid reaction
>    - new modules just need a JS / settings and a lang file and finally
>      some EXTDirect functions

Sounds great, and this is basically the goal to reach for new modules.

>   Cons of this Approach
>   =================================
>    - need some more kb on load
>    - dom is blown up
>    - needs more ram at client, can be slow with very old browsers

Don't you need to rewrite the modules itself if they are not extJS
components yet? You can do that right away with the WS-module, recycler
and the new EM (extJS already), but the "most needed" modules for this
would be the List and Page modules. You cannot simply send a "signal" to
the page module, you need to reload the IFRAME (and it contains
thousands of "links" with parameters, FORMs that might get submitted,
etc...).

Can this be solved there too?

Cheers,
Ernesto


More information about the TYPO3-project-v4 mailing list