Return-Path: X-Original-To: apmail-myfaces-dev-archive@www.apache.org Delivered-To: apmail-myfaces-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3D194DC7A for ; Tue, 11 Dec 2012 02:29:22 +0000 (UTC) Received: (qmail 2231 invoked by uid 500); 11 Dec 2012 02:29:21 -0000 Delivered-To: apmail-myfaces-dev-archive@myfaces.apache.org Received: (qmail 2169 invoked by uid 500); 11 Dec 2012 02:29:21 -0000 Mailing-List: contact dev-help@myfaces.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "MyFaces Development" Delivered-To: mailing list dev@myfaces.apache.org Received: (qmail 2064 invoked by uid 99); 11 Dec 2012 02:29:21 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 02:29:21 +0000 Date: Tue, 11 Dec 2012 02:29:21 +0000 (UTC) From: "Leonardo Uribe (JIRA)" To: dev@myfaces.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (MYFACES-3659) Conditional include of scripts and stylesheets MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/MYFACES-3659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13528621#comment-13528621 ] Leonardo Uribe commented on MYFACES-3659: ----------------------------------------- First of all, set this web config param: org.apache.myfaces.STRICT_JSF_2_REFRESH_TARGET_AJAX to true. See: http://myfaces.apache.org/core21/myfaces-impl/webconfig.html#org_apache_myfaces_STRICT_JSF_2_REFRESH_TARGET_AJAX Note this option does not play well with other libraries that overrides the default partial response writer. Related issues: MYFACES-3630, MYFACES-3462, MYFACES-3367, MYFACES-3106 I think the behavior described is expected, because you can't really remove a js file from memory once loaded, unless you reload the whole page. The code that is in place in myfaces core is for detect when a dynamic part requires some resources and add them in ajax operations. For example, if you have a collapsible panel bound to an c:if block, the idea is when is set to true, detect the addition of the resource and force submit head or body fragment rendering. Set a "transient" just works for the server side, but on the client the resource is not unloaded, so it does not have any effect. The ordering of the resources is only respected once the page is loaded. It does not matter if X.js is set in the header before of after jQuery in an ajax refresh, because once the page is loaded, in theory jQuery is set on top, but note JSF does not make any assumption about the loading order of javascript files. > Conditional include of scripts and stylesheets > ----------------------------------------------- > > Key: MYFACES-3659 > URL: https://issues.apache.org/jira/browse/MYFACES-3659 > Project: MyFaces Core > Issue Type: Bug > Affects Versions: 2.1.6 > Environment: MyFaces 2.1.6, Tomahawk20 1.1.11 > Reporter: dennis hoersch > > I am inserting a script 'X.js' dependent on a condition (c:if). The default case is to include it. If I change the underlying value within an action so that the condition evaluates to false, the script is still included. Also after any other following action. > Using F5 in Firefox the page is now rendered without the script. > The script 'X.js' was added to the view root and is never 'forgot' or removed. It is the same if the script is included in a composite component. In that case I even observed that the order of the scripts changes and the script 'X.js' is included before other basic scripts like jQuery on which 'X.js' depends. > ---- > > > > rendered="#{empty sessionScope.__isActive_ or sessionScope.__isActive_}"> > > > rendered="#{not empty sessionScope.__isActive_ and not sessionScope.__isActive_}"> > > > > > > > > > BLA > > > > ---- > Am I doing something wrong? Is there another (or better) way to include scripts conditionally? > ( > If I change 'HtmlOutputScriptHandler' to set the script transient, it works in the first glance, but I don't know the impact... > @Override > public void onComponentPopulated(FaceletContext ctx, UIComponent c, UIComponent parent) { > super.onComponentPopulated(ctx, c, parent); > c.setTransient(true); > } > ) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira