【问题标题】:Combining different javascript objects rendered by multiple components组合由多个组件呈现的不同 javascript 对象
【发布时间】:2010-09-16 19:25:50
【问题描述】:

我有一个从服务器端渲染器编写/生成 javascript 的组件。该组件可以在同一个页面中多次使用。但是,一旦页面被加载,我必须收集页面中这个多个组件编写的所有变量或 JSO。我该怎么做才能拥有所有变量或 JSO 的集合? 例如如果这个组件(比如说)在页面中使用了两次,那么它会在客户端/浏览器上发出两个 javascript 块 - var arr1 = new Array['First', 'Second'] 和 var arr2 = new Array['Third', 'Fourth'].

为了进行最终渲染,我必须合并这两个数组。

【问题讨论】:

    标签: javascript jsf


    【解决方案1】:

    您需要更具体地了解您的问题,也许有一个示例页面,但这里有一些想法。

    如果您有一个在页面生成期间编写 JavaScript 的服务器端组件,我会每次生成一个函数调用,例如:

    Component_appendArray(['First', 'Second']);
    ...
    Component_appendArray(['Third', 'Fourth']);
    

    然后确保您在这些调用之前定义了您的函数Component_appendArray()

    var globalArray = [];
    function Component_appendArray(array)
    {
         globalArray = globalArray.concat(array);
    }
    

    最后,globalArray 应包含:

    ['First', 'Second', 'Third', 'Fourth']
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      虽然我不了解整个场景,但我建议如果您在整个 HTML 中打印出变量以便在页面加载后使用它们,那么您应该使用隐藏的输入字段。我经常看到这种情况,其中变量用于将值传递给页面底部的函数或脚本,但使用隐藏输入字段的值可以让您将所有脚本移出内容区域。它是一种更清洁的解决方案。

      【讨论】:

        猜你喜欢
        • 2019-03-13
        • 1970-01-01
        • 1970-01-01
        • 2021-06-08
        • 1970-01-01
        • 2015-11-11
        • 1970-01-01
        • 2016-06-29
        • 2019-07-30
        相关资源
        最近更新 更多