Dorado 5 : 3.复杂界面顺序化预热优化 (WP)

DORADO中目前有5种标准的下拉框类型:ListDropDown、DateDropDown、DatasetDropDown、DynamicDropDown、CustomDropDown。
其中DynamicDropDown和CustomDropDown这两种是利用HTML中的IFrame元素实现的。也就是说他们的本质是一个独立的页面,DORADO将它显示在下拉框的IFrame中,并且赋予了它向主页面返回信息的功能。使用这两种下拉框可以有效的减小主页面的尺寸和负载,因为下拉框中的数据并不会随着主页面的打开而被一并下载。在一个页面中大量使用DynamicDropDown和CustomDropDown并不会明显的增加主页面加载过程的负担。不过,这样的机制也会带来一些问题。DynamicDropDown和CustomDropDown第一次打开的速度会明显慢于其它三种下拉框,因为打开下拉框的过程相当请求一个独立的JSP页面。
为了解决这一问题,DORADO中特别为DynamicDropDown和CustomDropDown提供了一个warmUpDelay属性。warmUpDelay是一个数字型的属性,表示自动预热的延时时间。预热的内部操作过程就是利用一个隐含的IFrame,预先访问一下下拉框中的页面并将该IFrame缓存起来,以起到加快相应的下拉框第一次使用是的速度的目的。不设置此属性或设置为0,表示不启用此功能。warmUpDelay单位是0.1秒。例如:20表示2秒,设置了此属性就可以在页面打开之后2秒钟左右在浏览器的状态栏中看到类似下图的字样闪现,这代表某下拉框正在预热。

使用warmUpDelay属性时需要注意一个问题,warmUpDelay属性不能用在不支持缓存的下拉框上,即不能用在cachable属性为false的下拉框上。如果在cachable属性为false的下拉框上设置了warmUpDelay属性,那么该属性是不会生效的。
在对一个页面上的多个下拉框设置warmUpDelay属性时,应注意尽量使用不同的warmUpDelay数值,以避免在同一时刻发起大量请求造成服务器的负担过重,最好能够将时间错开,例如每隔0.5秒激活一个到两个下拉框。
另外还应该注意一点,不要不假思索的把页面中所有的DynamicDropDown和CustomDropDown类型的下拉框设为自动预热。最好只把页面上那些常被用到的下拉框设为自动预热,这样可以避免一些无谓的资源浪费。