【问题标题】:Common region for two pages in an 100 page application100 页应用程序中两个页面的公共区域
【发布时间】:2019-11-19 06:21:48
【问题描述】:

我正在尝试找到一种最佳方式来实现一个公共区域,该区域对大型多页面应用程序中的多个页面(但不是所有页面)都是通用的。

我理解页面 0 的概念。公共区域可以包含在页面 0 中,并且可以使用适当的服务器端条件来停止在所有页面中呈现这些区域。但我担心的是,每次加载页面时都会评估每个页面的服务器端条件,而这些区域仅用于 500 页应用程序中的两个页面。这不是每个页面的开销吗?

请注意,公共区域与任何其他区域一样具有动态操作、PL/SQL 代码等,因此在页面模板中包括该区域将不是一个选项。

请帮我找出一个最佳方法。

谢谢

【问题讨论】:

    标签: oracle-apex oracle-apex-5


    【解决方案1】:

    会有开销,但如果您仍然使用声明性“低代码”选项,它就像另一个“if”语句,而不是实时解释的代码。

    http://www.grassroots-oracle.com/2013/05/performance-of-apex-conditions.html

    这会很慢,原因与我们将插件代码编译成包的原因相同。

    http://www.grassroots-oracle.com/2016/04/improving-plsql-performance-in-apex.html

    我认为使用这样的条件,您可以对全局页面上的应用程序性能充满信心

    如果您真的很担心,请在每个页面上复制该组件 - 您只需复制两次。它只是元数据,对吧?由于 PL/SQL 只是对包的调用...?

    【讨论】:

    • 谢谢@scott。我知道服务器端的情况。我太吝啬了,甚至不允许这种开销。关于复制,公共区域中的每个项目都有很多 JavaScript 和 PL/SQL,将来对该区域的任何更改都将意味着所有页面的更改。
    • 很多内容似乎嵌入在 APEX 组件中,而不是抽象到包或 JS 文件中。除非是 APEX 属性更改,否则应该是一次更改。
    • 是的@scott 我同意更高级别的抽象(JS 文件和 PLSQL 过程)将解决由于在所有页面中复制区域而导致的问题。
    • 从今天可用的情况来看,我认为我们将不得不使用第 0 页来实现此类公共区域,并在组件未使用的每个其他页面上可能产生的少量开销上妥协.
    • 根据我的经验,使用声明性选项时,妥协是名义上的。它使用的 PL/SQL 表达式可能会给您带来麻烦。
    猜你喜欢
    • 2013-02-05
    • 1970-01-01
    • 2020-03-12
    • 2021-09-04
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多