环境: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. Array - RemoveDuplicatesfromSortedArray

    /** * 无额外空间,只要前n个是不重复的就行,不需要修改后面的数字 * @param nums 已排序的数组 * @return 去除重复数字后的长度 */ public int removeDu ...

  2. 2018.4.10 Ubuntu cat命令解答、用法

    cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: 1.一次显示整个文件. $ cat filename 2.从键盘创建一个文件. $ cat > ...

  3. 标签input的value属性和placeholderde 区别

    placeholder 顾名思义是一个占位符 在你的value为空的时候他才会显示出来,但是他本身并不是value,也不会被表单提交.

  4. 文件下载(NSURLConnection/NSURLSession)

    最基本的网络文件下载(使用原生的网络请求) #pragma mark - 小文件下载 // 方法一: NSData dataWithContentsOfURL - (void)downloadFile ...

  5. javascript (六)DOM

    学习后的总结: DOM:document object model 关于DOM的简介:http://www.w3school.com.cn/htmldom/dom_intro.asp 本文说的是HTM ...

  6. svn提交报错,提示:locked,需要cleanup

    版权声明:本文为博主原创文章,未经博主允许不得转载. 原文地址: https://www.cnblogs.com/poterliu/p/9285137.html 在使用SVN提交代码或更新代码时经常会 ...

  7. CentOS 7 忘记root密码解决方法

    CentOS 7  root密码的重置方式和CentOS 6完全不一样,CentOS 7与之前的版本6变化还是比较大的,以进入单用户模式修改root密码为例: 1.重启机器,进入grub菜单的时候按e ...

  8. Oracle rownum的理解

    核心过程分三步: 从表中取出行(无索引的话,顺序取出). 根据当前结果集,为当前行添加rownum. 条件筛选,如通过则添加到结果集中. 完.

  9. python爬虫基础12-selenium大全6/8-等待

    Selenium笔记(6)等待 本文集链接:https://www.jianshu.com/nb/25338984 简介 在selenium操作浏览器的过程中,每一次请求url,selenium都会等 ...

  10. win10安装pytorch——前面有坑,快跳进去鸭

    嗯!花费了不少时间才把pytorch安装成功.主要原因就是: 清华和中科大的Anaconda国内镜像源关闭了 activate.bat 不是内部或外部命令(这个真实奇怪) 1. 安装过程 可以去Ana ...