环境:websphere 7

一个流程主页,里面include了上面这个页面,内部有一个iframe;

现象:项目发布在测试环境中,打开流程主页时,里面iframe内页显示不出来;

同样的jsp页面,在生产环境时,页面显示正常;

同样的jsp页面,在本地环境websphere7时,页面显示正常

测试环境中调试记录:

上图js方法是设置iframe高度的,在var subweb下方紧接着通过alert取subweb.body.scrollheight或者

Subweb.documentElement.scrollHeight都为0,所以设置iframe高度为0导致显示不出来;

调试1

  删除ie页面缓存,再次请求,发现可以显示iframe,但是再次请求,iframe还是显示不出来高度为0;判断是缓存问题导致。

调试2

在线修改项目中iframe里面的jsp,保存;第一次请求页面,可以正常显示,后面再次请求,iframe又不能显示了。

调试3

查资料改websphere里面的相关xml,删除temp,修改测试环境pc的时间,无效。

调试4

Iframe内页jsp添加dtd申明,外框页对body.scrollheight先alert,再对documentElement.scrollHeight alert,发现,body为0,documentElement有值;

Ps:正常情况下,iframe内页不加dtd申明时,body高度有值,documentElement高度为0;Iframe内页添加dtd申明时,documentElemnt高度有值;

调试4的后期总结是,对body的高度alert的 时候,阻塞页面,页面有足够的时间加载异步加载的iframe内页,所以body的alert人工点击确定后,此时可以取到已加载完成的iframe内页高度;

但把2个alert都去掉的时候,iframe不显示,此时没有取到内页iframe的加载后实际高度,取的是没加载完成的高度0;(要么是0,要么是实际高度,不会是中间的只加载一部分的高度)

调试5

根据调试4,判断是外页onload执行设置iframe高度的时候,内页没有加载完成,所以此时没有取到内页的实际高度,取的是0;

解决方法是给这个js方法设置一个延迟,setTimeout,问题解决,页面可以正常显示,但是这种方法并不完美,如果内页数据量很大或者因为某种原因导致内页加载很慢的时候,比如说内页要加载5s,而你外页这个js设置的延迟是3s,那么3s到的时候执行设置iframe高度,此时取的高度不是内页实际高度;

调试6

准备在iframe内页的body的window.onload事件上,再写一个js方法,当内页onload完成时,从内页设置外页iframe的高度,这样可以保存设置iframe时取的是内页实际高度,此方法准备做未做,但是还是想从根本上解决,一样的代码,为什么所有环境都行,就测试环境这个不行?

调试7:

发现测试环境打开了启用servlet高速缓存,而生产环境和本地发布的环境都没有启用这一项,与一开始判断的缓存问题一致,然后在测试机上不要启用高速缓存,重启项目,不修改代码,问题解决。

websphere启用高速缓存导致问题的更多相关文章

  1. windows 8.1 启用hyper-v导致vmware 无法使用的问题解决方案(兼顾WP8.1模拟器和vmware)

    最近搭建了windows phone 8.1开发环境,为了开机就可以进行WP8.1开发,就使用了 bcdedit /set {BCD ID} hypervisorlaunchtype auto 命令将 ...

  2. 启用代理导致 有道云笔记未知错误、网络错误和OneDrive断线

    最近有道云笔记和OneDrive时不时的连接不上服务器,不知道什么原因?后来到有道官网上看了下,才发现,和IE浏览器的设置有关系: 我本地因为之前设置了代理,然后自己忘记了,代理的软件没开,导致IE上 ...

  3. centos7 未启用swap导致内存使用率过高。

    情况描述: 朋友在阿里云上有一台系统为CentOS7的VPS,内存为2GB,用于平时开发自己的项目时测试使用: 他在上面运行了5个docker实例,运行java程序:还有一个mysql服务: 上述5个 ...

  4. 11gR2 RAC启用iptables导致节点宕机问题处理

    通常,在安装数据库时,绝大多数都是要求把selinux及iptables关闭,然后再进行安装的.但是在运营商的系统中,很多安全的因素,需要将现网的数据库主机上的iptables开启的. 在开启ipta ...

  5. Result Cache结果高速缓存 (转)

    1.1 概述 SQL 查询结果高速缓存可在数据库内存中对查询结果集和查询碎片启用显式高速缓存.存储在共享池(Share Pool)中的专用内存缓冲区可用于存储和检索高速缓存的结果.对查询访问的数据库对 ...

  6. Informatica 常用组件Lookup缓存之二 使用永久查找高速缓存

    可以将"查找"转换配置为使用非永久或永久高速缓存.基于"查找高速缓存永久"属性的会话成功后,PowerCenter 将保存或删除查找高速缓存文件. 如果查找表在 ...

  7. 嵌入式设备上的 Linux 系统开发

    转载:http://www.ibm.com/developerworks/cn/linux/embed/embdev/index.html   如果您刚接触嵌入式开发,那么大量可用的引导装载程序(bo ...

  8. nginx cache的玩法

      一.简介 Nginx版本从0.7.48开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当做Key,用Md5算法对Key进行哈希,得到硬盘上对应的哈希目录路径,从而将缓存内容保存在 ...

  9. CEPH集群操作入门--配置

      参考文档:CEPH官网集群操作文档   概述 Ceph存储集群是所有Ceph部署的基础. 基于RADOS,Ceph存储集群由两种类型的守护进程组成:Ceph OSD守护进程(OSD)将数据作为对象 ...

随机推荐

  1. stixel world论文总结

    1.The Stixel World - A Compact Medium Level Representation of the 3D-World:http://pdfs.semanticschol ...

  2. Url Rewrite 重写

    前几天看到园子里一篇关于 Url 重写的文章<获取ISAPI_Rewrite重写后的URL>, URL-Rewrite 这项技术早已不是一项新技术了,这个话题也已经被很多人讨论过多次.搜索 ...

  3. Bootstrap标签页(Tab)插件事件

    事件 下表列出了标签页(Tab)插件中要用到的事件.这些事件可在函数中当钩子使用. 事件 描述 实例 show.bs.tab 该事件在标签页显示时触发,但是必须在新标签页被显示之前.分别使用 even ...

  4. C语言预处理_05

    凡是以 “#”开头的均为预处理命令! 其定义的一般形式为: #define  标示符  字符串 对于宏定义说明以下几点: 1.宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种 ...

  5. 洛谷 P3328 【[SDOI2015]音质检测】

    这题我做的好麻烦啊... 一开始想分块来着,后来发现可以直接线段树 首先考虑一个性质,我们如果有数列的相邻两项f[i]和 f[i+1]那么用这两项向后推k项其线性表示系数一定(表示为f[i+k]=a∗ ...

  6. CentOS7练习

    为编译安装的httpd服务,实现service unit文件破解centos7 口令修改默认的启动内核为新编译内核启动时临时禁用SELinux启动时进入emergency模式卸载编译安装的新内核

  7. 根据参数优化nginx的服务性能

    一.优化nginx服务的worker进程数 在高并发.高访问量的Web服务场景,需要事先启动好更多的nginx进程,以保证快速响应并处理大量并发用户的请求. 1).优化nginx进程对应的配置 优化n ...

  8. destoon 信息发布表单提交验证

    sell 模块的form表单如下: <form method="post" id="dform" action="?" target= ...

  9. java中的final关键字(2013-10-11-163 写的日志迁移

     final关键字:修饰符,表示最后的.最终的    修饰类: 表示该类不能派生子类(不能被继承)   1.当不希望父类的的某个方法被子类覆盖(override)时,可以用final关键字来修饰.   ...

  10. linux下安装mysql并设置远程连接

    腾讯云环境为Centos7.4   mysql版本为5.6 本次安装使用yum安装 检查是否已有mysql: yum list installed | grep mysql 下载yum源文件: wge ...