・现象
随着WD画面上的操作,Adobe Reader的进程(AcroRd32.exe)的内存使用量会随之增加.
并且在增加到某个点(现在的测试结果是330K左右)时,报Javascript错误.
由于上述原因, WD画面上的连续操作次数受到了限制.
・解决方案1 (×)
现象: PDF一旦关闭或是非表示的时候, AcroRd32.exe的内存使用量会清空一下
基于这个原理,想到若是在数据登陆或是更新成功后,将PDF画面关闭一下,不就解决问题了
关于PDF画面关闭,尝试了下面两种方法
① AcroRd Javascript (×)
this.closeDoc(true);
但上述的source只能在PDF用Acrobat Reader打开时才起作用,
如用IE等打开时会报「NotSuportedErr」错误.
② Web Dynpro -> view -> layout -> InteractiveForm的visible属性 (○)
与之绑定的Context属性,在数据登陆或是更新成功后,赋以01(非表示)
在数据量少的情况下,解决法案1还是起到了作用.
但是在数据量多的时候,PDF画面虽然已经关闭,但内存使用量还在不断的增加,在增加到1400K左右的使用,报陷入死循环错误.
・解决方案2 (○)
Web Dynpro -> view -> layout -> InteractiveForm的enable属性
与之绑定的Context属性,在数据登陆或是更新成功后,赋以abap_true(disable)
解决方案2虽然内存也在涨,但却是以一种非常缓慢的速度增加.
内存之所以会涨是因为,内存清空需要一定的时间,在内存还未清空之前,如果The next Job执行的话,那么就会在当前的内存量上增加.