零雨其蒙's Blog

做优秀的程序员
随笔 - 59, 文章 - 13, 评论 - 58, 引用 - 0
数据加载中……

PPR

PPR : oracle的一种局部页面刷新技术,在此之前只有javajs脚本可以实现此功能,现在ppr技术,并不是支持所有的浏览器,他现在仅仅支持的浏览器版本为IE 5.5 以上, Mozilla Netscape 7
基本原理:
1 PPR是提供给一个局部需要刷新的页面,所有不要使用PPR技术在一个大部分区域需要刷新的页面上,还有就是不要使用PPR技术在一个内容需要花费长时间去查询的区域上。
不同于整个页面的重载,PPR并不关注顶层的页面,只是对页面中的小部分分割区域进行刷新。
3 PPR技术中,提交按钮可以通过选择列表或者是radio group组件被忽略掉。
在导航到一个不同title的页面的时候,不要使用PPR,这时应该使用GO按钮。
浏览器的历史记录里面不会跟踪相关页面的PPR区域中的信息。
在不支持PPR技术的浏览器中,PPR区域在被下载到本地之后会自动失效。
在执行一个PPR的更新的时候,会有一段滞留时间:在这段时间内,页面会有一个沙漏出现,并且用户不能在对页面进行任何操作知道区域的内容被完全装载。如果更新失败的话,envent block将会被清空,然后页面并不发生任何更改(即数据没有被更新),用户可以进行操作。开发人员可以定义各个PPR的刷新时间。这样,每个区域就可以根据需要设定不同的刷新时间。event block很重要,由于PPR可以改变页面的状态,因此页面上的一些个并发的点击或者是关键的入口处的状态应该被保留下来。
PPR更新失败的时候,一个javascript的一个错误信息应该被抛出,例如更新失败,服务器没有相应,超时,或者网络堵塞等。这个时候BLAF的一些消息不应该用在这中条件下,如果应用程序这麽做的结果可能导致用户的数据丢失。所以用javascript是最安全的方法。
并不是所有的OAF控件都可以在PPR中发生变化的,具体如下
在页面中不会发生改变的页面元素
很多的页面元素通常关联到了页面上,而不关心
遵照一些开发准则,页面标题上的元素(除了Message Box)会保持不变,不会发生任何位置上的变化 ,与之不同的是在Ski下的一些元素会保持内容,但是在页面上的位置会发生变化,会上下移动来适应页面的内容,下面的一些元素永远不会发生变化在PPR中:
  • Branding
  • Global buttons
  • Tabs, Horizontal Navigation, SubTabs
  • Locator elements: Breadcrumbs, Train, Next/Back Locator
  • Quick links
  • Page titles (first level header)
  • Ski
  • Page footer
  • Separator lines between the Tabs and Page Title

大多数情况下下面的一些元素也不会发生变化,但是会上下移动,来适应页面的其他元素的变化不过,有一些特殊的情况下会导致他们也发生变化:
  • Side Navigation, unless it contains a Hide/Show control.
  • Subtabs
  • Contextual information
  • Page-level action/navigation buttons
  • Page-level Instruction text
  • Page-level Page stamps
  • Page-level Key Notation

 
可以在PPR中进行更改的页面元素
大多数页面上的其他的一些区域中的内容都会被独立的添加,更改或者是删除。包括:
  • Section and table titles (subheaders)
  • Section-level elements associated with a section title:
    • Hide/Show link
    • Instruction text
    • Key notation
    • Page stamps
  • Label/data layout, including Action/Nav buttons, choice lists, and links.
  • Tables and table elements
  • HGrids
  • Trees
  • Graphs
  • Content containers
  • Tips and Hints
要启用PPR功能在当前页面,你必须创建一个OAF标准的应用属性VO(PVO)该PVO包含了一个临时属性用来保存或者说是记录需要变化的区域的Rendered属性的状态,这个VO最终会包含一个单行,允许用户在和页面进行交互时进行初始化和更新,后面将会详细描述怎样将变化区域和该VO进行绑定,以检测时候该区域是否需要显示,你需要配置另外一个开关,通过改变该开关的值,来确定是否要触发PPR事件。
PVO应该同其更级别的am创建在一个包中,注意对于一个AM你只能创建一个POV,命名规则如下:相关的am的名称+PVO
这里要注意的是,创建之后的PVO在tuning属性中必须勾选启用钝化功能,还有For All Transient Attributes选项。

posted on 2011-08-02 13:32 零雨其蒙 阅读(311) 评论(0)  编辑  收藏 所属分类: Oracle EBS


只有注册用户登录后才能发表评论。


网站导航: