环境: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. 在linux命令行下如何访问网址

    1. wget Ubuntu系统自带,会将访问的首页下载到本地 admin@iZj6c9c6vaqj1i0a9j7h78Z:~$ wget www.baidu.com --2019-04-20 17: ...

  2. Array - Remove Element

    /** * 无额外空间.顺序可以被改变.不需要修改后面的数字. * @param nums 数组 * @param val 目标值 * @return nums中移除val后的长度 */ public ...

  3. Beta冲刺(周四)

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1 这个作业要求在哪里 https://edu.cnblo ...

  4. pycharm 使用技巧

    格式化代码为pep8: ctrl+alt+l http://edu.51cto.com//index.php?do=lession&id=163794

  5. 关于removeFromSuperview

    关于  - (void)removeFromSuperview 苹果官网API中是这么描述的: Unlinks the view from its superview and its window, ...

  6. (67)windows安装zabbix监控

    在windows下安装zabbix agent,方法非常简单.首先到zabbix官方下载windows版本agent,地址:http://www.zabbix.com/download.php,找到“ ...

  7. 再生龙备份还原linux系统

    相关下载: Clonezilla再生龙:http://sourceforge.net/projects/clonezilla/files/clonezilla_live_stable/ tuxboot ...

  8. 利用wget 和 curl 监控网站是否正常

    监控网站URL是否正常最常见的方法莫过于wget和curl命令了,这两个命令都是非常强大,参数也非常多,下面列举几个常用的参数. wget  常用命令参数:--spider              ...

  9. 【mysql】【转发】Cannot proceed because system tables used by Event Scheduler were found damaged at server start

    本地:mac 10.12.3  mysql 5.6   远程:linux 7.3    mysql 5.7.18.  (远程数据库yum安装,又5.6升级到5.7)   步骤:从本地数据库导出数据到远 ...

  10. GPIO程序在PC上的模拟学习

    #include <stdio.h> #include <malloc.h> #include <memory.h> typedef struct gpio { i ...