设置会话状态-APEX 21.1 [英] Setting Session State - APEX 21.1

查看:14
本文介绍了设置会话状态-APEX 21.1的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

根据我遇到的文档和示例,似乎在页面之间设置/传递会话状态的方法是通过URL。这让我思考,是否可以直接从不同的页面引用页面项目?或者,这样做有没有一些APEX新手(比如我)一开始可能没有意识到的缺点。

例如:

  • 有一个APP有两个页面PAGE 1PAGE 2
  • PAGE 1集合P1_SOME_VALUE = 'GREEN'(P1_SOME_VALUE现在处于会话状态)
  • PAGE 2需要访问P1_SOME_VALUE的值
是否有任何理由不在集合P2_SOME_VALUE = :P1_SOME_VALUEPAGE 2上设置BEFORE HEADER计算?(假设给定的P1_SOME_VALUEPAGE 2的会话中始终可用)

如果从PAGE 1PAGE 2是使用超链接完成的,那么我理解使用我看到的重定向URL属性方法设置会话状态会更容易。我在我的应用程序中遇到过这样一种情况,即URL是在一系列动态操作之后动态生成的,对于我给定的情况,使用BEFORE HEADER计算似乎是更干净/更简单的解决方案。我只想确认我没有忽略任何东西。

推荐答案

您所描述的行为,使用引用另一个页面中的页面项的pl/sql进程可以很好地工作,但有一些事情需要考虑。不确定此列表是否详尽,其他人可能会评论:

  • 就我个人而言,我尽量避免引用页面内其他页面上的项,因为这会使开发变得更加困难--在处理页面x时,您通常只在页面内搜索项的出现。如果出现在其他页面上,应用程序就会变得不那么干净。我试着将其作为最佳实践来遵循。应用程序越干净,维护就越容易。2年后,当您必须使用此应用程序时,您不会记得第2页中引用了P1_SOME_VALUE,否则使用它的其他开发人员将永远讨厌您;)
  • 这可能会使调试变得更加困难。假设通过选项&Clear cache for page";设置为";page 1";的URL或分支访问页面,则P1_SOME_VALUE的值将被清除,因为该项目是在第1页上定义的。调试此问题将是一项挑战。
  • 在url中传送值非常安全。如果使用校验和,用户将无法手动操作页面项的值。
  • 请注意,页面的DOM仅包含在该页面上定义的页面项。这意味着您不能使用第2页上引用P1_SOME_VALUE的javascript,也不能使用第2页上的javascript设置P1_SOME_VALUE的值。这在您的用例中无关紧要。

引用页面项目所属页面以外的其他页面中的另一种方法是将数据存储在集合中,该集合将在会话期间存在。

这篇关于设置会话状态-APEX 21.1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆