You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Hudson (Commented) (JIRA)" <ji...@apache.org> on 2011/10/15 00:40:13 UTC
[jira] [Commented] (TAP5-1539) Optimize document scans used by
Tapestry.FieldEventManager to not locate the label or icon until actually
needed
[ https://issues.apache.org/jira/browse/TAP5-1539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13127933#comment-13127933 ]
Hudson commented on TAP5-1539:
------------------------------
Integrated in tapestry-trunk-freestyle #577 (See [https://builds.apache.org/job/tapestry-trunk-freestyle/577/])
TAP5-1539: Update a few places to use Runnable not (deprecated) RegistryShutdownListener
TAP5-1539: Add registry will shutdown notifications
Deprecated RegistyDidShutdownListener ... a Runnable will due as well
Added methods to registry Runnables as "did" and "will" shutdown listeners
hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1183527
Files :
* /tapestry/tapestry5/trunk/tapestry-hibernate-core/src/main/java/org/apache/tapestry5/hibernate/HibernateCoreModule.java
* /tapestry/tapestry5/trunk/tapestry-hibernate-core/src/main/java/org/apache/tapestry5/internal/hibernate/HibernateSessionSourceImpl.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/JustInTimeObjectCreator.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/cron/PeriodicExecutorImpl.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/TapestryIOCModule.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/JustInTimeObjectCreatorTest.java
* /tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/internal/jmx/MBeanSupportImpl.java
* /tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/EntityManagerSourceImpl.java
* /tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/JpaModule.java
* /tapestry/tapestry5/trunk/tapestry-spring/src/main/java/org/apache/tapestry5/internal/spring/SpringModuleDef.java
* /tapestry/tapestry5/trunk/tapestry-upload/src/main/java/org/apache/tapestry5/upload/services/UploadModule.java
hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1183526
Files :
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/RegistryShutdownHubImpl.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/cron/PeriodicExecutorImpl.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/RegistryShutdownHub.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/RegistryShutdownListener.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/RegistryShutdownHubImplTest.java
> Optimize document scans used by Tapestry.FieldEventManager to not locate the label or icon until actually needed
> ----------------------------------------------------------------------------------------------------------------
>
> Key: TAP5-1539
> URL: https://issues.apache.org/jira/browse/TAP5-1539
> Project: Tapestry 5
> Issue Type: Improvement
> Components: tapestry-core
> Affects Versions: 5.3, 5.2.4
> Reporter: Pedro Ayala
> Assignee: Howard M. Lewis Ship
> Labels: ie, perfomance
> Fix For: 5.3, 5.2.6
>
>
> While creating the Field Event Manager we are initializing not only the basic features but also extra information for being use later, like label and icon.
> For getting the icon we need to search for the element in the DOM (using a $) and for the label it is searching the DOM for a specific label, which is a very expensive operation in ie7.
> If we move the initialization of these elements until they are really needed, we are saving some client side timing.
> ### Eclipse Workspace Patch 1.0
> #P tapestry-core
> Index: src/main/resources/org/apache/tapestry5/tapestry.js
> ===================================================================
> --- src/main/resources/org/apache/tapestry5/tapestry.js (revision 1131061)
> +++ src/main/resources/org/apache/tapestry5/tapestry.js (working copy)
> @@ -1667,13 +1667,6 @@
> initialize : function(field) {
> this.field = $(field);
>
> - var id = this.field.id;
> -
> - var selector = "label[for='" + id + "']";
> -
> - this.label = this.field.up("form").down(selector);
> - this.icon = $(id + '_icon');
> -
> this.translator = Prototype.K;
>
> var fem = $(this.field.form).getFormEventManager();
> @@ -1698,7 +1691,24 @@
> this.validateInput.bindAsEventListener(this));
> }
> },
> +
> + getLabel : function() {
> + if (!this.label) {
> + var id = this.field.id;
> + var selector = "label[for='" + id + "']";
> + this.label = this.field.form.down(selector);
> + }
> + return this.label;
> + },
>
> + getIcon : function() {
> + if (!this.icon) {
> + var id = this.field.id;
> + this.icon = $(id + '_icon');
> + }
> + return this.icon;
> + },
> +
> /**
> * Removes validation decorations if present. Hides the ErrorPopup, if it
> * exists.
> @@ -1706,11 +1716,11 @@
> removeDecorations : function() {
> this.field.removeClassName("t-error");
>
> - if (this.label)
> - this.label.removeClassName("t-error");
> + if (this.getLabel())
> + this.getLabel().removeClassName("t-error");
>
> - if (this.icon)
> - this.icon.hide();
> + if (this.getIcon())
> + this.getIcon().hide();
>
> if (this.errorPopup)
> this.errorPopup.hide();
> @@ -1730,12 +1740,12 @@
>
> this.field.addClassName("t-error");
>
> - if (this.label)
> - this.label.addClassName("t-error");
> + if (this.getLabel())
> + this.getLabel().addClassName("t-error");
>
> - if (this.icon) {
> - if (!this.icon.visible())
> - new Effect.Appear(this.icon);
> + if (this.getIcon()) {
> + if (!this.getIcon().visible())
> + new Effect.Appear(this.getIcon());
> }
>
> if (this.errorPopup == undefined)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira