Hi Vladislav,

On Sun, 05 Oct 2008 03:42:41 +0200, Vladislav Vorobiev wrote:

> Hello, i write a kupu plugin for zope (without plone).

Is this code publicly available somewhere?

 
> My plugin works by now and Zope startup without problems. The matter is,
> if I request my plugin  for a first time
> "http://localhost/mySiteWithKupuPlugin"; zope makes overhead something
> like follows for 3 minutes.
> 
> asks: 136 total,   1 running, 135 sleeping,   0 stopped,   0 zombie Cpu0
>  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si, 
> 0.0%st Cpu1  :  1.0%us,  0.0%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi, 
> 0.3%si,  0.0%st Mem:   1035848k total,  1008016k used,    27832k free,  
>  26100k buffers Swap:  3927884k total,       92k used,  3927792k free,  
> 471416k cached
> 
> PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 24350
> zope      20   0 81144  41m 3464 S   99  4.1   2:11.56 python2.4
> 
> My files
> 
> -rw-r--r-- 1 vavvav vavvav    549 2008-10-05 02:07 configure.zcml
> -rw-r--r-- 1 root   root        0 2008-10-05 02:07 configure.zcml~
> -rw-r--r-- 1 vavvav vavvav      0 2008-10-05 01:54 __init__.py
> -rw-r--r-- 1 vavvav vavvav     38 2008-10-05 01:53
> ksstutorial-configure.zcml -rw-r--r-- 1 vavvav vavvav    110 2008-10-05
> 03:11 tutorial.kss -rw-r--r-- 1 vavvav vavvav 296412 2008-10-05 02:58
> tutorialplugin.js -rw-r--r-- 1 vavvav vavvav  25571 2008-10-05 03:16
> tutorial.pt
> 
> My tutorialplugin.js file is very big because it includes all kupu(*).js
> libreries.
> It seems to be that zope analyze all this javascript code. Are there
> methods to turn of the analyzing, for example outsourcing the libereries
> in other file? 

I don't understand this. I'm not aware of zope analizing any js code. Can 
you please provide some more details?

> I only want to load the libraries dynamically if somebody
> requests kupu. Whats the standard method if I have to load big *.js
> static libreries?

There is no standard method. Most js library provide this, in various 
different ways.

I myself, wrote an on-demand js loader, that works with kss (it uses the 
RequestManager for the actual request). It works on all the browsers I 
tried on. Basically, it accepts a set of javascript resources to load.
Loading is done in parallel, with the limitation of maximal requests
and timeout handling provided by kss natively.
When these are all loaded and evaluated, it calls the specified callback 
where you can continue execution. If the resources are already present, 
or have been included in the static headers, they are not loaded again.

For loading kss components (like, plugins) this may not work very well: 
first it could actually make page load slower because the resources 
loaded on demand are acquired much later during the page load, than in 
the static way. Second, kss should be able to freeze its engine until 
these resources are loaded and resume processing later from the callback; 
this is currently not supported in the way that would be necessary
for this use.

However it can be a viable solution for loading thirdparty javascript 
code like in your case. This is what I used it for: loading the jsMath 
library, that is pretty big, from a kss action that needs it. 
If the code is there the  action executes immediately, if not, the 
resource is loaded and the action continues after it became available. 
In my use case delay caused by the load was no problem either, for the usage.

The code that does this is part of the kss.plugin.jsmath: please feel 
free to copypaste it to your own code and experiment with it. In case 
more people find it useful, it can go to a component on its own.

http://bazaar.launchpad.net/~kissbooth/kss.plugin.jsmath/trunk/annotate/21?file_id=kss_jsmath.js-20071127201149-79dx2pzwy2ftq08k-32

Best wishes,

-- 
Balazs Ree

_______________________________________________
Kss-devel mailing list
Kss-devel@codespeak.net
http://codespeak.net/mailman/listinfo/kss-devel

Reply via email to