Dynamic Oracle APEX动态操作页面加载处理

Dynamic Oracle APEX动态操作页面加载处理,dynamic,action,oracle-apex,pageload,oracle-apex-5,Dynamic,Action,Oracle Apex,Pageload,Oracle Apex 5,情况:我当前有一个属于仪表板页面类型的页面。它包含几个图表和报告。此页面是应用程序的主页。当页面首次加载时,请求类型first被传递到页面中。当页面呈现调用Oracle包的多个页面进程时,将执行设置值等。一旦页面处理完成,我相信动态操作就会启动。PageLoad上可能会触发10个DA。第一个DA在PageLoad上激发,但其条件为REQUEST='first'。如果满足条件,则重新提交页面,请求类型为:search 问题:APEX如何处理动态操作,特别是页面加载?如果有10个动态动作,所有序列都

情况:我当前有一个属于仪表板页面类型的页面。它包含几个图表和报告。此页面是应用程序的主页。当页面首次加载时,请求类型first被传递到页面中。当页面呈现调用Oracle包的多个页面进程时,将执行设置值等。一旦页面处理完成,我相信动态操作就会启动。PageLoad上可能会触发10个DA。第一个DA在PageLoad上激发,但其条件为REQUEST='first'。如果满足条件,则重新提交页面,请求类型为:search

问题:APEX如何处理动态操作,特别是页面加载?如果有10个动态动作,所有序列都比另一个大,那么APEX或页面处理是一次处理一个动作,还是不管序列和条件如何,它们都同时执行


问题原因:我创建了一个DA,以便在DB表中执行insert语句。此DA在页面加载时无条件执行,顺序为#:0。然后,我创建了另一个DA来执行同样的操作,但这是最后一个序列。当登录到应用程序,然后查看插入DB表的数据时,两条记录都显示了4次。当请求类型=first时插入前两个。然后,检察官已经提到,他启动并重新提交了页面,然后又插入了两条记录。我只希望DB表中有三条记录。一个用于请求类型优先,两个用于请求类型搜索。

为什么要使用动态操作?为什么不使用在页面呈现期间执行的进程

动态动作执行顺序不能以这种方式得到保证,同样,JavaScript循环的行为与您想象的完全不同。JavaScript做它自己的事情

如果您在动态操作中执行PL/SQL,这将以同步或异步方式进行。无论哪种方式,它们都将通过x个单独的进程启动。控制顺序的唯一方法是让它们处于相同的动态操作中,并将“等待结果”设置为“是”


这让我回到:为什么要使用动态操作?

您看过调试日志了吗?你能寄一份申请表样本吗?我怀疑您的DAs的条件不合适。如果不使用动态操作,您将如何从页面进程重新提交页面?第一次加载页面时,需要使用值设置项。一旦这些项具有值,页面将重新提交以基于这些项值运行查询。还有,我没有开发这个。。。我继承了它,我想提高页面的性能。我不喜欢重新提交页面的动态操作,因为它会使页面加载时间增加2到3秒。感谢您的帮助。您不能刷新必要的区域而不是重新提交页面吗?通过Ajax调用,您无需重新提交页面。仅供参考,我找到了一种通过页面处理重新提交页面的方法。我做了一个重定向url调用并传递了新的请求类型。这种不使用动态操作的建议似乎改善了页面加载的性能。谢谢你的建议。如果您有任何其他加快页面加载的技巧,我很乐意阅读。@hmarques,我不擅长AJAX调用。您能否提供一个示例,说明如何实现AJAX调用以刷新区域?您可以通过向区域添加ID并运行以下js:$('#').trigger('aperxrefresh')来刷新区域;