[yast-devel] Webyast - speed up
Hi, I with miso result that parsing doesn't slow down webyast I check what take so much time and I found that we have increadible amount of unnecessary communication in webyast. So I propose these two changes which should speed up webyast: in webclient store together with site, login and auth_token also resources for such site and permission for site and user. advantages: - reduce communication between webclient and rest-service so It should speed up webyast - client side caching ( now permissions and resources is cached at rest-service) has advantage that it doesn't require communication and parsing of result disadvantage: - permissions which affect which form is disabled is refreshed only during login (of course it doesn't affect permission checking in rest-service). So if user change permission for itself, then he must relogin to affect forms. I plan to experimental implementation in own branch, so if you have any comments and ideas I welcome it. Josef JFYI: communication for one show of time page (all request is quite quick, but each of them need some communication overload): Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:20) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 119ms (View: 10, DB: 1) | 200 OK [http://localhost/resources.xml] Processing NtpController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:20) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"ntp"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 greped server list is europe.pool.ntp.org Completed in 274ms (View: 12, DB: 0) | 200 OK [http://localhost/ntp.xml] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:21) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 51ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml] Processing SystemtimeController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:21) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"systemtime"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Action: org.opensuse.yast.modules.yapi.time.read User: jreidinger Result: ok Completed in 935ms (View: 8, DB: 0) | 200 OK [http://localhost/systemtime.xml] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:23) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 35ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml] Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:24) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.time", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Cache write: permissions:timestamp Action: org.opensuse.yast.modules.yapi.time.read User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.time.write User: jreidinger Result: ok Completed in 94ms (View: 13, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.time&user_id=jreidinger] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:24) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 35ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml] Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:24) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.ntp", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.ntp.synchronize User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.ntp.setserver User: jreidinger Result: ok Completed in 92ms (View: 10, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.ntp&user_id=jreidinger] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:25) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 35ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml] Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:25) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.services", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.services.read User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.services.execute User: jreidinger Result: ok Completed in 94ms (View: 10, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.services&user_id=jreidinger] Processing NtpController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:25) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"ntp"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 greped server list is europe.pool.ntp.org Completed in 108ms (View: 12, DB: 0) | 200 OK [http://localhost/ntp.xml] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:26) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 35ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml] Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:26) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.ntp", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.ntp.synchronize User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.ntp.setserver User: jreidinger Result: ok Completed in 88ms (View: 10, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.ntp&user_id=jreidinger] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:26) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 34ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml] Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:26) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.services", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.services.read User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.services.execute User: jreidinger Result: ok Completed in 90ms (View: 10, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.services&user_id=jreidinger] Processing NtpController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:27) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"ntp"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 greped server list is europe.pool.ntp.org Completed in 108ms (View: 12, DB: 0) | 200 OK [http://localhost/ntp.xml] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:27) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 34ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml] Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:27) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.ntp", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.4ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.ntp.synchronize User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.ntp.setserver User: jreidinger Result: ok Completed in 96ms (View: 8, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.ntp&user_id=jreidinger] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:28) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 35ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml] Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:28) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.services", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.services.read User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.services.execute User: jreidinger Result: ok Completed in 85ms (View: 10, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.services&user_id=jreidinger] Processing NtpController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:28) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"ntp"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 greped server list is europe.pool.ntp.org Completed in 189ms (View: 93, DB: 0) | 200 OK [http://localhost/ntp.xml] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:28) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 99ms (View: 71, DB: 0) | 200 OK [http://localhost/resources.xml] Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:29) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.ntp", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.ntp.synchronize User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.ntp.setserver User: jreidinger Result: ok Completed in 167ms (View: 91, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.ntp&user_id=jreidinger] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:29) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 99ms (View: 71, DB: 0) | 200 OK [http://localhost/resources.xml] Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:29) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.services", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.services.read User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.services.execute User: jreidinger Result: ok Completed in 167ms (View: 88, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.services&user_id=jreidinger] Processing NtpController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:29) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"ntp"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 greped server list is europe.pool.ntp.org Completed in 114ms (View: 13, DB: 0) | 200 OK [http://localhost/ntp.xml] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:30) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 113ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml] Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:30) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.ntp", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.ntp.synchronize User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.ntp.setserver User: jreidinger Result: ok Completed in 167ms (View: 13, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.ntp&user_id=jreidinger] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:30) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 110ms (View: 8, DB: 0) | 200 OK [http://localhost/resources.xml] Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:31) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 105ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml] -- Josef Reidinger YaST team maintainer of perl-Bootloader, YaST2-Repair, parts of webyast -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
On 06/30/2010 03:36 PM, Josef Reidinger wrote:
Hi, I with miso result that parsing doesn't slow down webyast I check what take so much time and I found that we have increadible amount of unnecessary communication in webyast.
http://mzugec.blogspot.com/2010/06/webyast-switch-from-xml-into-json-day_30....
So I propose these two changes which should speed up webyast:
in webclient store together with site, login and auth_token also resources for such site and permission for site and user.
advantages: - reduce communication between webclient and rest-service so It should speed up webyast - client side caching ( now permissions and resources is cached at rest-service) has advantage that it doesn't require communication and parsing of result
disadvantage: - permissions which affect which form is disabled is refreshed only during login (of course it doesn't affect permission checking in rest-service). So if user change permission for itself, then he must relogin to affect forms.
I plan to experimental implementation in own branch, so if you have any comments and ideas I welcome it.
Josef
JFYI: communication for one show of time page (all request is quite quick, but each of them need some communication overload):
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:20) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 119ms (View: 10, DB: 1) | 200 OK [http://localhost/resources.xml]
Processing NtpController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:20) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"ntp"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 greped server list is europe.pool.ntp.org Completed in 274ms (View: 12, DB: 0) | 200 OK [http://localhost/ntp.xml]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:21) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 51ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing SystemtimeController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:21) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"systemtime"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Action: org.opensuse.yast.modules.yapi.time.read User: jreidinger Result: ok Completed in 935ms (View: 8, DB: 0) | 200 OK [http://localhost/systemtime.xml]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:23) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 35ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:24) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.time", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Cache write: permissions:timestamp Action: org.opensuse.yast.modules.yapi.time.read User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.time.write User: jreidinger Result: ok Completed in 94ms (View: 13, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.time&user_id=jreidinger]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:24) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 35ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:24) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.ntp", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.ntp.synchronize User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.ntp.setserver User: jreidinger Result: ok Completed in 92ms (View: 10, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.ntp&user_id=jreidinger]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:25) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 35ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:25) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.services", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.services.read User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.services.execute User: jreidinger Result: ok Completed in 94ms (View: 10, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.services&user_id=jreidinger]
Processing NtpController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:25) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"ntp"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 greped server list is europe.pool.ntp.org Completed in 108ms (View: 12, DB: 0) | 200 OK [http://localhost/ntp.xml]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:26) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 35ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:26) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.ntp", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.ntp.synchronize User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.ntp.setserver User: jreidinger Result: ok Completed in 88ms (View: 10, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.ntp&user_id=jreidinger]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:26) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 34ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:26) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.services", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.services.read User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.services.execute User: jreidinger Result: ok Completed in 90ms (View: 10, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.services&user_id=jreidinger]
Processing NtpController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:27) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"ntp"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 greped server list is europe.pool.ntp.org Completed in 108ms (View: 12, DB: 0) | 200 OK [http://localhost/ntp.xml]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:27) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 34ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:27) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.ntp", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.4ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.ntp.synchronize User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.ntp.setserver User: jreidinger Result: ok Completed in 96ms (View: 8, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.ntp&user_id=jreidinger]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:28) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 35ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:28) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.services", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.services.read User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.services.execute User: jreidinger Result: ok Completed in 85ms (View: 10, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.services&user_id=jreidinger]
Processing NtpController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:28) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"ntp"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 greped server list is europe.pool.ntp.org Completed in 189ms (View: 93, DB: 0) | 200 OK [http://localhost/ntp.xml]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:28) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 99ms (View: 71, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:29) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.ntp", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.ntp.synchronize User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.ntp.setserver User: jreidinger Result: ok Completed in 167ms (View: 91, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.ntp&user_id=jreidinger]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:29) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 99ms (View: 71, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:29) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.services", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.services.read User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.services.execute User: jreidinger Result: ok Completed in 167ms (View: 88, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.services&user_id=jreidinger]
Processing NtpController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:29) [GET] Parameters: {"format"=>"xml", "action"=>"show", "controller"=>"ntp"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 greped server list is europe.pool.ntp.org Completed in 114ms (View: 13, DB: 0) | 200 OK [http://localhost/ntp.xml]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:30) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 113ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing PermissionsController#show to xml (for 127.0.0.1 at 2010-06-30 15:28:30) [GET] Parameters: {"format"=>"xml", "action"=>"show", "filter"=>"org.opensuse.yast.modules.yapi.ntp", "user_id"=>"jreidinger", "controller"=>"permissions"} Account Load (0.3ms) SELECT * FROM "accounts" WHERE ("accounts"."remember_token" = 'bd6b32f31292d1f91dd2e1269f8fa98e4f92b905') LIMIT 1 Cache read: permissions:timestamp Action: org.opensuse.yast.modules.yapi.ntp.synchronize User: jreidinger Result: ok Action: org.opensuse.yast.modules.yapi.ntp.setserver User: jreidinger Result: ok Completed in 167ms (View: 13, DB: 0) | 200 OK [http://localhost/permissions.xml?filter=org.opensuse.yast.modules.yapi.ntp&user_id=jreidinger]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:30) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 110ms (View: 8, DB: 0) | 200 OK [http://localhost/resources.xml]
Processing ResourcesController#index to xml (for 127.0.0.1 at 2010-06-30 15:28:31) [GET] Parameters: {"format"=>"xml", "action"=>"index", "controller"=>"resources"} Completed in 105ms (View: 7, DB: 0) | 200 OK [http://localhost/resources.xml]
-- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
Josef Reidinger write:
Hi, I with miso result that parsing doesn't slow down webyast I check what take so much time and I found that we have increadible amount of unnecessary communication in webyast. So I propose these two changes which should speed up webyast:
in webclient store together with site, login and auth_token also resources for such site and permission for site and user.
advantages: - reduce communication between webclient and rest-service so It should speed up webyast - client side caching ( now permissions and resources is cached at rest-service) has advantage that it doesn't require communication and parsing of result
disadvantage: - permissions which affect which form is disabled is refreshed only during login (of course it doesn't affect permission checking in rest-service). So if user change permission for itself, then he must relogin to affect forms.
I plan to experimental implementation in own branch, so if you have any comments and ideas I welcome it.
Josef
Hi, working solution created (affected is now only models which use YastModel (almost all plugins). You can found it in branch reduce_communication. Feel free to report any issue which occur. My results for time is (old/new) 10.5-11.2/3.2-3.8 ( 5.6 when run as first module) network: 5.5-6.5/2.8-3.5 * tested in development mode so it speed up webyast at least twice (of course it depends on module and what rest-service it needs to own run) I welcome any suggestions, complains, issues or comments Josef -- Josef Reidinger YaST team maintainer of perl-Bootloader, YaST2-Repair, parts of webyast -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
I welcome any suggestions, complains, issues or comments
Josef
Chromium browser -> Development tools ->Audit (tested with localhost:54984/groups page): There are multiple resources served from same domain. Consider combining them into as few files as possible. 1. 7 CSS resources served from localhost. 18 JavaScript resources served from localhost. Compressing the following resources with gzip could reduce their transfer size by about two thirds (~415.85KB): 1. groups <http://localhost:54984/groups> could save ~96.24KB 2. yast.css <http://localhost:54984/stylesheets/yast.css?1272550209> could save ~2.45KB 3. grid.css <http://localhost:54984/stylesheets/grid.css?1272029891> could save ~3.07KB 4. style.css <http://localhost:54984/stylesheets/style.css?1277972267> could save ~12.23KB 5. jquery.jqplot.css <http://localhost:54984/stylesheets/jquery.jqplot.css?1277799699> could save ~2.45KB 6. jquery-ui-1.7.2.custom.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom.css?1272029891> could save ~17.16KB 7. jquery-ui-1.7.2.custom-accordion.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom-accordion.css?1277972267> could save ~2.19KB 8. jquery-ui-1.7.2.custom-tabs.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom-tabs.css?1277972267> could save ~2.38KB 9. jquery.js <http://localhost:54984/javascripts/jquery.js?1272888180> could save ~78.22KB 10. jquery.query.js <http://localhost:54984/javascripts/jquery.query.js?1272888180> could save ~4.98KB 11. jquery.timers.js <http://localhost:54984/javascripts/jquery.timers.js?1272888180> could save ~2.31KB 12. jquery.ui.custom.js <http://localhost:54984/javascripts/jquery.ui.custom.js?1272888180> could save ~125.12KB 13. jquery.validate.js <http://localhost:54984/javascripts/jquery.validate.js?1277730056> could save ~24.18KB 14. jqbrowser-compressed.js <http://localhost:54984/javascripts/jqbrowser-compressed.js?1272029891> could save ~1.77KB 15. jquery.badbrowser.js <http://localhost:54984/javascripts/jquery.badbrowser.js?1272029891> could save ~1.44KB 16. jquery.jqModal.js <http://localhost:54984/javascripts/jquery.jqModal.js?1272888180> could save ~2.19KB 17. jquery.ui.core.js <http://localhost:54984/javascripts/jquery.ui.core.js?1272888180> could save ~9.08KB 18. jquery.ui.tabs.js <http://localhost:54984/javascripts/jquery.ui.tabs.js?1272888180> could save ~12.42KB 19. yast.widgets.js <http://localhost:54984/javascripts/yast.widgets.js?1272888180> could save ~1.94KB 20. yast.helpers.js <http://localhost:54984/javascripts/yast.helpers.js?1272888180> could save ~113B 21. browser_fixes.js <http://localhost:54984/javascripts/browser_fixes.js?1272888180> could save ~1.77KB 22. script.js <http://localhost:54984/javascripts/script.js?1273218390> could save ~1.66KB 23. users.js <http://localhost:54984/javascripts/users.js> could save ~3.71KB 24. select_dialog.js <http://localhost:54984/javascripts/select_dialog.js?1275549424> could save ~4.71KB 25. jquery.quicksearch.js <http://localhost:54984/javascripts/jquery.quicksearch.js?1272029891> could save ~2.10KB 1. The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers: 1. users.js <http://localhost:54984/javascripts/users.js> 2. bg-head-gradient.png <http://localhost:54984/stylesheets/images/bg-head-gradient.png> 3. yast-groups.png <http://localhost:54984/icons/yast-groups.png> 4. working.gif <http://localhost:54984/images/working.gif> 5. ui-bg_glass_75_ffffff_1x400.png <http://localhost:54984/stylesheets/images/ui-bg_glass_75_ffffff_1x400.png> 6. ui-icons_222222_256x240.png <http://localhost:54984/stylesheets/images/ui-icons_222222_256x240.png> 7. ui-bg_glass_65_ffffff_1x400.png <http://localhost:54984/stylesheets/images/ui-bg_glass_65_ffffff_1x400.png> 8. ui-icons_454545_256x240.png <http://localhost:54984/stylesheets/images/ui-icons_454545_256x240.png> 9. ui-bg_glass_75_e6e6e6_1x400.png <http://localhost:54984/stylesheets/images/ui-bg_glass_75_e6e6e6_1x400.png> 10. ui-icons_888888_256x240.png <http://localhost:54984/stylesheets/images/ui-icons_888888_256x240.png> 2. The following resources are explicitly non-cacheable. Consider making them cacheable if possible: 1. groups <http://localhost:54984/groups> 2. yast.css <http://localhost:54984/stylesheets/yast.css?1272550209> 3. grid.css <http://localhost:54984/stylesheets/grid.css?1272029891> 4. style.css <http://localhost:54984/stylesheets/style.css?1277972267> 5. jquery.jqplot.css <http://localhost:54984/stylesheets/jquery.jqplot.css?1277799699> 6. jquery-ui-1.7.2.custom.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom.css?1272029891> 7. jquery-ui-1.7.2.custom-accordion.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom-accordion.css?1277972267> 8. jquery-ui-1.7.2.custom-tabs.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom-tabs.css?1277972267> 9. jquery.js <http://localhost:54984/javascripts/jquery.js?1272888180> 10. jquery.query.js <http://localhost:54984/javascripts/jquery.query.js?1272888180> 11. jquery.timers.js <http://localhost:54984/javascripts/jquery.timers.js?1272888180> 12. jquery.ui.custom.js <http://localhost:54984/javascripts/jquery.ui.custom.js?1272888180> 13. jquery.validate.js <http://localhost:54984/javascripts/jquery.validate.js?1277730056> 14. jqbrowser-compressed.js <http://localhost:54984/javascripts/jqbrowser-compressed.js?1272029891> 15. jquery.badbrowser.js <http://localhost:54984/javascripts/jquery.badbrowser.js?1272029891> 16. jquery.jqModal.js <http://localhost:54984/javascripts/jquery.jqModal.js?1272888180> 17. jquery.ui.core.js <http://localhost:54984/javascripts/jquery.ui.core.js?1272888180> 18. jquery.ui.tabs.js <http://localhost:54984/javascripts/jquery.ui.tabs.js?1272888180> 19. yast.widgets.js <http://localhost:54984/javascripts/yast.widgets.js?1272888180> 20. yast.helpers.js <http://localhost:54984/javascripts/yast.helpers.js?1272888180> 21. browser_fixes.js <http://localhost:54984/javascripts/browser_fixes.js?1272888180> 22. script.js <http://localhost:54984/javascripts/script.js?1273218390> 23. application.js <http://localhost:54984/javascripts/application.js?1263559246> 24. select_dialog.js <http://localhost:54984/javascripts/select_dialog.js?1275549424> 25. jquery.quicksearch.js <http://localhost:54984/javascripts/jquery.quicksearch.js?1272029891> 26. webyast-logo.png <http://localhost:54984/images/webyast-logo.png?1263559246> 27. working.gif <http://localhost:54984/images/working.gif?1266482366> Consider adding a "Cache-Control: public" header to the following resources: bg-head-gradient.png yast-groups.png working.gif ui-bg_glass_75_ffffff_1x400.png ui-icons_222222_256x240.png ui-bg_glass_65_ffffff_1x400.png ui-icons_454545_256x240.png ui-bg_glass_75_e6e6e6_1x400.png ui-icons_888888_256x240.png The following external CSS files were included after an external JavaScript file in the document head. To ensure CSS files are downloaded in parallel, always include external CSS before external JavaScript. 1 inline script block was found in the head between an external CSS file and another resource. To allow parallel downloading, move the inline script before the external CSS file, or after the next resource. 68% of CSS (estimated) is not used by the current page. yast.css: 66% (estimated) is not used by the current page. grid.css: 95% (estimated) is not used by the current page. style.css: 47% (estimated) is not used by the current page. jquery.jqplot.css: 100% (estimated) is not used by the current page. jquery-ui-1.7.2.custom.css: 74% (estimated) is not used by the current page. jquery-ui-1.7.2.custom-accordion.css: 30% (estimated) is not used by the current page. jquery-ui-1.7.2.custom-tabs.css: 100% (estimated) is not used by the current page. Inline block #1: 66% (estimated) is not used by the current page.
Michal Zugec write:
I welcome any suggestions, complains, issues or comments
Josef
Chromium browser -> Development tools ->Audit (tested with localhost:54984/groups page):
Again, my question is what mode you use? I think that same test you can do on appliance based on SP1 which runs in production and explicit no-cache is removed ( but I agree with combination of resources to only few files. )
There are multiple resources served from same domain. Consider combining them into as few files as possible.
1.
7 CSS resources served from localhost. 18 JavaScript resources served from localhost.
Compressing the following resources with gzip could reduce their transfer size by about two thirds (~415.85KB):
1. groups <http://localhost:54984/groups> could save ~96.24KB 2. yast.css <http://localhost:54984/stylesheets/yast.css?1272550209> could save ~2.45KB 3. grid.css <http://localhost:54984/stylesheets/grid.css?1272029891> could save ~3.07KB 4. style.css <http://localhost:54984/stylesheets/style.css?1277972267> could save ~12.23KB 5. jquery.jqplot.css <http://localhost:54984/stylesheets/jquery.jqplot.css?1277799699> could save ~2.45KB 6. jquery-ui-1.7.2.custom.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom.css?1272029891> could save ~17.16KB 7. jquery-ui-1.7.2.custom-accordion.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom-accordion.css?1277972267> could save ~2.19KB 8. jquery-ui-1.7.2.custom-tabs.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom-tabs.css?1277972267> could save ~2.38KB 9. jquery.js <http://localhost:54984/javascripts/jquery.js?1272888180> could save ~78.22KB 10. jquery.query.js <http://localhost:54984/javascripts/jquery.query.js?1272888180> could save ~4.98KB 11. jquery.timers.js <http://localhost:54984/javascripts/jquery.timers.js?1272888180> could save ~2.31KB 12. jquery.ui.custom.js <http://localhost:54984/javascripts/jquery.ui.custom.js?1272888180> could save ~125.12KB 13. jquery.validate.js <http://localhost:54984/javascripts/jquery.validate.js?1277730056> could save ~24.18KB 14. jqbrowser-compressed.js <http://localhost:54984/javascripts/jqbrowser-compressed.js?1272029891> could save ~1.77KB 15. jquery.badbrowser.js <http://localhost:54984/javascripts/jquery.badbrowser.js?1272029891> could save ~1.44KB 16. jquery.jqModal.js <http://localhost:54984/javascripts/jquery.jqModal.js?1272888180> could save ~2.19KB 17. jquery.ui.core.js <http://localhost:54984/javascripts/jquery.ui.core.js?1272888180> could save ~9.08KB 18. jquery.ui.tabs.js <http://localhost:54984/javascripts/jquery.ui.tabs.js?1272888180> could save ~12.42KB 19. yast.widgets.js <http://localhost:54984/javascripts/yast.widgets.js?1272888180> could save ~1.94KB 20. yast.helpers.js <http://localhost:54984/javascripts/yast.helpers.js?1272888180> could save ~113B 21. browser_fixes.js <http://localhost:54984/javascripts/browser_fixes.js?1272888180> could save ~1.77KB 22. script.js <http://localhost:54984/javascripts/script.js?1273218390> could save ~1.66KB 23. users.js <http://localhost:54984/javascripts/users.js> could save ~3.71KB 24. select_dialog.js <http://localhost:54984/javascripts/select_dialog.js?1275549424> could save ~4.71KB 25. jquery.quicksearch.js <http://localhost:54984/javascripts/jquery.quicksearch.js?1272029891> could save ~2.10KB
1. The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers: 1. users.js <http://localhost:54984/javascripts/users.js> 2. bg-head-gradient.png <http://localhost:54984/stylesheets/images/bg-head-gradient.png> 3. yast-groups.png <http://localhost:54984/icons/yast-groups.png> 4. working.gif <http://localhost:54984/images/working.gif> 5. ui-bg_glass_75_ffffff_1x400.png <http://localhost:54984/stylesheets/images/ui-bg_glass_75_ffffff_1x400.png> 6. ui-icons_222222_256x240.png <http://localhost:54984/stylesheets/images/ui-icons_222222_256x240.png> 7. ui-bg_glass_65_ffffff_1x400.png <http://localhost:54984/stylesheets/images/ui-bg_glass_65_ffffff_1x400.png> 8. ui-icons_454545_256x240.png <http://localhost:54984/stylesheets/images/ui-icons_454545_256x240.png> 9. ui-bg_glass_75_e6e6e6_1x400.png <http://localhost:54984/stylesheets/images/ui-bg_glass_75_e6e6e6_1x400.png> 10. ui-icons_888888_256x240.png <http://localhost:54984/stylesheets/images/ui-icons_888888_256x240.png> 2. The following resources are explicitly non-cacheable. Consider making them cacheable if possible: 1. groups <http://localhost:54984/groups> 2. yast.css <http://localhost:54984/stylesheets/yast.css?1272550209> 3. grid.css <http://localhost:54984/stylesheets/grid.css?1272029891> 4. style.css <http://localhost:54984/stylesheets/style.css?1277972267> 5. jquery.jqplot.css <http://localhost:54984/stylesheets/jquery.jqplot.css?1277799699> 6. jquery-ui-1.7.2.custom.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom.css?1272029891> 7. jquery-ui-1.7.2.custom-accordion.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom-accordion.css?1277972267> 8. jquery-ui-1.7.2.custom-tabs.css <http://localhost:54984/stylesheets/jquery-ui-1.7.2.custom-tabs.css?1277972267> 9. jquery.js <http://localhost:54984/javascripts/jquery.js?1272888180> 10. jquery.query.js <http://localhost:54984/javascripts/jquery.query.js?1272888180> 11. jquery.timers.js <http://localhost:54984/javascripts/jquery.timers.js?1272888180> 12. jquery.ui.custom.js <http://localhost:54984/javascripts/jquery.ui.custom.js?1272888180> 13. jquery.validate.js <http://localhost:54984/javascripts/jquery.validate.js?1277730056> 14. jqbrowser-compressed.js <http://localhost:54984/javascripts/jqbrowser-compressed.js?1272029891> 15. jquery.badbrowser.js <http://localhost:54984/javascripts/jquery.badbrowser.js?1272029891> 16. jquery.jqModal.js <http://localhost:54984/javascripts/jquery.jqModal.js?1272888180> 17. jquery.ui.core.js <http://localhost:54984/javascripts/jquery.ui.core.js?1272888180> 18. jquery.ui.tabs.js <http://localhost:54984/javascripts/jquery.ui.tabs.js?1272888180> 19. yast.widgets.js <http://localhost:54984/javascripts/yast.widgets.js?1272888180> 20. yast.helpers.js <http://localhost:54984/javascripts/yast.helpers.js?1272888180> 21. browser_fixes.js <http://localhost:54984/javascripts/browser_fixes.js?1272888180> 22. script.js <http://localhost:54984/javascripts/script.js?1273218390> 23. application.js <http://localhost:54984/javascripts/application.js?1263559246> 24. select_dialog.js <http://localhost:54984/javascripts/select_dialog.js?1275549424> 25. jquery.quicksearch.js <http://localhost:54984/javascripts/jquery.quicksearch.js?1272029891> 26. webyast-logo.png <http://localhost:54984/images/webyast-logo.png?1263559246> 27. working.gif <http://localhost:54984/images/working.gif?1266482366>
Consider adding a "Cache-Control: public" header to the following resources: bg-head-gradient.png yast-groups.png working.gif ui-bg_glass_75_ffffff_1x400.png ui-icons_222222_256x240.png ui-bg_glass_65_ffffff_1x400.png ui-icons_454545_256x240.png ui-bg_glass_75_e6e6e6_1x400.png ui-icons_888888_256x240.png
The following external CSS files were included after an external JavaScript file in the document head. To ensure CSS files are downloaded in parallel, always include external CSS before external JavaScript. 1 inline script block was found in the head between an external CSS file and another resource. To allow parallel downloading, move the inline script before the external CSS file, or after the next resource.
68% of CSS (estimated) is not used by the current page. yast.css: 66% (estimated) is not used by the current page. grid.css: 95% (estimated) is not used by the current page. style.css: 47% (estimated) is not used by the current page. jquery.jqplot.css: 100% (estimated) is not used by the current page. jquery-ui-1.7.2.custom.css: 74% (estimated) is not used by the current page. jquery-ui-1.7.2.custom-accordion.css: 30% (estimated) is not used by the current page. jquery-ui-1.7.2.custom-tabs.css: 100% (estimated) is not used by the current page. Inline block #1: 66% (estimated) is not used by the current page.
-- Josef Reidinger YaST team maintainer of perl-Bootloader, YaST2-Repair, parts of webyast -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
participants (2)
-
Josef Reidinger
-
Michal Zugec