You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2010/01/06 21:25:55 UTC

[jira] Assigned: (TAP5-765) Includes JavaScript libraries are not properly uniqued within an Ajax partial update response

     [ https://issues.apache.org/jira/browse/TAP5-765?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship reassigned TAP5-765:
-----------------------------------------

    Assignee: Howard M. Lewis Ship

> Includes JavaScript libraries are not properly uniqued within an Ajax partial update response
> ---------------------------------------------------------------------------------------------
>
>                 Key: TAP5-765
>                 URL: https://issues.apache.org/jira/browse/TAP5-765
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.1.0.5
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>
> Noticed this while working on a lab; a component that is repeatedly rendered will result in a long series of duplicated scripts being included in the response. The code that ensures that a given JS file is included only once is broken in some way.
> {"scripts":["/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox
> /modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords
> .js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js"
> ,"/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox
> .js","/assets/scriptaculous/5.1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","
> /assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js","/assets
> /ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","
> /assets/scriptaculous/5.1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets
> /ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js","/assets/ctx
> /ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","/assets
> /scriptaculous/5.1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1
> .0-SNAPSHOT/js/modalbox/modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT
> /js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","/assets/scriptaculous/5
> .1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT
> /js/modalbox/modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js"],"script":"Tapestry.init({\"editKeywords
> \":[[\"edit-122529b387e\",\"keywords-122529b387e\"],[\"edit-122529b387e_0\",\"keywords-122529b387e_0
> \"],[\"edit-122529b387e_1\",\"keywords-122529b387e_1\"],[\"edit-122529b387e_2\",\"keywords-122529b387e_2
> \"],[\"edit-122529b387e_3\",\"keywords-122529b387e_3\"],[\"edit-122529b387e_4\",\"keywords-122529b387e_4
> \"],[\"edit-122529b387e_5\",\"keywords-122529b387e_5\"],[\"edit-122529b387e_6\",\"keywords-122529b387e_6
> \"],[\"edit-122529b387e_7\",\"keywords-122529b387e_7\"],[\"edit-122529b387e_8\",\"keywords-122529b387e_8
> \"]]});\n","stylesheets":[{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"
> /assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox
> /modalbox.css"},{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"/assets/ctx
> /ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox
> .css"},{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"/assets/ctx/ajax-1
> .0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"
> },{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"}],"content":"<div><h2>Recent Postings
> <\/h2><div class='post'><h3>We are now using the Autocomplete mixin<\/h3><p class='meta'>\nPosted by
> \n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nJul 2, 2009 1:42:33 PM\n- \n<a href='/post/podium/we_are_now_using_the_autocomplete_mixin'
> >\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e' class='keywords'
> ><span class='keyword'><a href='/blog/keyword/podium/yui'>yui\n<\/a><\/span><span class='keyword'><a
>  href='/blog/keyword/podium/screencast'>screencast\n<\/a><\/span><span class='keyword'><a href='/blog
> /keyword/podium/success'>success\n<\/a><\/span><a id='edit-122529b387e' title='Click to edit keywords'
>  href='/blog/index.outputposting.edit/16?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1
> .0-SNAPSHOT/images/pencil.png'/><\/a><\/div><br style='clear: both;'/><div class='entry'>Also, the new
>  YUI-based rich text area.&nbsp; Turns out FCKEditor was behaving poorly.&nbsp;&nbsp;&nbsp;<\/div><div
>  class='post'><h3>Still setting up for the screen capture<\/h3><p class='meta'>\nPosted by\n<a href='
> /blogger/hlship'>\nhlship\n<\/a>\non\nJul 2, 2009 1:34:35 PM\n- \n<a href='/post/podium/still_setting_up_for_the_screen_capture'
> >\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e_0' class='keywords'
> ><span class='keyword'><a href='/blog/keyword/podium/yui'>yui\n<\/a><\/span><span class='keyword'><a
>  href='/blog/keyword/podium/success'>success\n<\/a><\/span><a id='edit-122529b387e_0' title='Click to
>  edit keywords' href='/blog/index.outputposting.edit/15?t:ac=podium'><img alt='Edit Keywords' src='/assets
> /ctx/ajax-1.0-SNAPSHOT/images/pencil.png'/><\/a><\/div><br style='clear: both;'/><div class='entry'>Still
>  setting up for the screen capture. <em>YUI Editor<\/em> is looking quite nice. It's slightly different
>  from FCKEditor in that it doesn't implcitly surround the content provided in a &lt;p&gt; element.<\
> /div><div class='post'><h3>Now using YUI<\/h3><p class='meta'>\nPosted by\n<a href='/blogger/hlship'
> >\nhlship\n<\/a>\non\nJul 2, 2009 10:55:33 AM\n- \n<a href='/post/podium/now_using_yui'>\nFULL LISTING
> \n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e_1' class='keywords'><span class='keyword'
> ><a href='/blog/keyword/podium/yui'>yui\n<\/a><\/span><span class='keyword'><a href='/blog/keyword/podium
> /success'>success\n<\/a><\/span><a id='edit-122529b387e_1' title='Click to edit keywords' href='/blog
> /index.outputposting.edit/14?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1.0-SNAPSHOT
> /images/pencil.png'/><\/a><\/div><br style='clear: both;'/><div class='entry'>Abandoned <strong>FCKEditor
> ?<\/strong> for <strong>YUI Editor<\/strong>.<\/div><div class='post'><h3>Worked!<\/h3><p class='meta'
> >\nPosted by\n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nJul 1, 2009 4:08:41 PM\n- \n<a href='/post
> /podium/worked'>\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e_2'
>  class='keywords'><span class='keyword'><a href='/blog/keyword/podium/success'>success\n<\/a><\/span
> ><span class='keyword'><a href='/blog/keyword/podium/ajax'>ajax\n<\/a><\/span><a id='edit-122529b387e_2'
>  title='Click to edit keywords' href='/blog/index.outputposting.edit/13?t:ac=podium'><img alt='Edit Keywords'
>  src='/assets/ctx/ajax-1.0-SNAPSHOT/images/pencil.png'/><\/a><\/div><br style='clear: both;'/><div class
> ='entry'><p>Check in the database and the data looks to have gone in fine.<\/p><\/div><div class='post'
> ><h3>First experiment with keywords<\/h3><p class='meta'>\nPosted by\n<a href='/blogger/hlship'>\nhlship
> \n<\/a>\non\nJul 1, 2009 4:08:00 PM\n- \n<a href='/post/podium/first_experiment_with_keywords'>\nFULL
>  LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e_3' class='keywords'><span
>  class='keyword'><a href='/blog/keyword/podium/keywords'>keywords\n<\/a><\/span><span class='keyword'
> ><a href='/blog/keyword/podium/ajax'>ajax\n<\/a><\/span><span class='keyword'><a href='/blog/keyword
> /podium/labs'>labs\n<\/a><\/span><a id='edit-122529b387e_3' title='Click to edit keywords' href='/blog
> /index.outputposting.edit/12?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1.0-SNAPSHOT
> /images/pencil.png'/><\/a><\/div><br style='clear: both;'/><div class='entry'><p>This is the first attempt
>  to store keywords in the database. I've implemented a KeywordDAO service and am collecting the keywords
>  (as text) on page BlogIndex.<\/p><\/div><div class='post'><h3>Setting up the Grid lab<\/h3><p class
> ='meta'>\nPosted by\n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nAug 28, 2008 3:13:43 PM\n- \n<a href
> ='/post/podium/setting_up_the_grid_lab'>\nFULL LISTING\n<\/a>\n- \n1\ncomments\n<\/p><\/div><div id='keywords-122529b387e_4'
>  class='keywords'><a id='edit-122529b387e_4' title='Click to edit keywords' href='/blog/index.outputposting
> .edit/11?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1.0-SNAPSHOT/images/pencil.png'
> /><\/a><\/div><br style='clear: both;'/><div class='entry'><p>Starting to set up a new lab nominally
>  about the <strong>Grid<\/strong> component, but will touch on a bunch of other areas as well.<\/p><
> \/div><div class='post'><h3>Debugging a problem with posting<\/h3><p class='meta'>\nPosted by\n<a href
> ='/blogger/hlship'>\nhlship\n<\/a>\non\nJul 9, 2008 7:13:52 PM\n- \n<a href='/post/podium/debugging_a_problem_with_posting'
> >\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e_5' class='keywords'
> ><a id='edit-122529b387e_5' title='Click to edit keywords' href='/blog/index.outputposting.edit/10?t
> :ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1.0-SNAPSHOT/images/pencil.png'/><\/a><\/div
> ><br style='clear: both;'/><div class='entry'><p>Now that I've completed the mungTitle() code in BlogIndex
> , I'm getting a <em>NullPointerException<\/em>.<\/p><\/div><div class='post'><h3>Session 3 : Components
> <\/h3><p class='meta'>\nPosted by\n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nJul 7, 2008 4:26:43
>  PM\n- \n<a href='/post/podium/session_3_components'>\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div
> ><div id='keywords-122529b387e_6' class='keywords'><a id='edit-122529b387e_6' title='Click to edit keywords'
>  href='/blog/index.outputposting.edit/8?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1
> .0-SNAPSHOT/images/pencil.png'/><\/a><\/div><br style='clear: both;'/><div class='entry'><p>In this session
> , we'll be learning about components: how to create them, how they work, and how they communicate with
>  the outside world.<\/p><\/div><div class='post'><h3>Clear the browser history<\/h3><p class='meta'>
> \nPosted by\n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nJul 7, 2008 11:08:44 AM\n- \n<a href='/post
> /podium/clear_the_browser_history'>\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e_7'
>  class='keywords'><a id='edit-122529b387e_7' title='Click to edit keywords' href='/blog/index.outputposting
> .edit/7?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1.0-SNAPSHOT/images/pencil.png'/
> ><\/a><\/div><br style='clear: both;'/><div class='entry'><p>Note to self: in the future, remember to
>  clear browser history before doing a screencast.&nbsp; It's too easy to accidentally jump to an unwanted
>  site just because you've visited it recently.<\/p>\r\n<p>Creating sessions and screencasts is <em>so
> <\/em> full of unwanted surprises!<\/p>\r\n<p>&nbsp;<\/p><\/div><div class='post'><h3>Picking up the
>  pace<\/h3><p class='meta'>\nPosted by\n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nJul 4, 2008 11
> :11:54 AM\n- \n<a href='/post/podium/picking_up_the_pace'>\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p
> ><\/div><div id='keywords-122529b387e_8' class='keywords'><a id='edit-122529b387e_8' title='Click to
>  edit keywords' href='/blog/index.outputposting.edit/6?t:ac=podium'><img alt='Edit Keywords' src='/assets
> /ctx/ajax-1.0-SNAPSHOT/images/pencil.png'/><\/a><\/div><br style='clear: both;'/><div class='entry'>
> <p>By the end of session #2, we'll have covered using PageLink, BeanEditForm and Grid along with a number
>  of the Tapestry annotations.<\/p><\/div><\/div>"}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.