java dwr 漏洞_Java DWR内存泄漏问题解决方案
机器跑了一晚上,发现有崩溃现象,由于页面内有动态绘图功能,我怀疑是绘图原因,但是今天上午有人提醒我才想到,是不是间隔调用时DWR产生了内存泄漏问题?
网上查了一下貌似大家都在讨论这个问题,之前我也挺老手说过DWR有内存问题,可是没有遇到过。原来DWR在间隔调用这种情况下会有问题!
按照大家的说法,修改engine.js配置文件来解决问题,目前我也修改了一下,修改方法如下:
在
dwr.engine._sendData = function(batch) {}
内有,这样几行代码:
// Get setup for XMLHttpRequest if possible
if (batch.rpcType == dwr.engine.XMLHttpRequest) {
if (window.XMLHttpRequest) {
batch.req = new XMLHttpRequest();
}
// IE5 for the mac claims to support window.ActiveXObject, but throws an error when it's used
else if (window.ActiveXObject && !(navigator.userAgent.indexOf("Mac") >= 0 && navigator.userAgent.indexOf("MSIE") >= 0)) {
batch.req = dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);
}
}
看起来IE请求Ajax的对象每次都在创建
而根据网上的说法,IE在创建对象后,如果这个页面不关闭(包括不能最小化)时,其创建的对象是一直不销毁的。那么无限制的创建对象且不销毁,当然会内存泄漏
目前我改了一下,如下面代码:
var httprequest = null;
// Get setup for XMLHttpRequest if possible
if(null==httprequest){
// Get setup for XMLHttpRequest if possible
if (batch.rpcType == dwr.engine.XMLHttpRequest) {
if (window.XMLHttpRequest) {
httprequest = new XMLHttpRequest();
}
// IE5 for the mac claims to support window.ActiveXObject, but throws an error when it's used
else if (window.ActiveXObject && !(navigator.userAgent.indexOf("Mac") >= 0 && navigator.userAgent.indexOf("MSIE") >= 0)) {
httprequest = dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);
}
}
}
就是说第一次创建,之后不再创建,相当于单例模式。
由于内存泄漏时长时间运行引起的,目前尚不知该方法是否能解决问题。但是从任务管理器上看,好像有所改善,我们还需要进一步测试。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
java dwr 漏洞_Java DWR内存泄漏问题解决方案相关推荐
- java内存泄漏和内存溢出_Java和内存泄漏
java内存泄漏和内存溢出 总览 术语"内存泄漏"在Java中的使用方式不同于在其他语言中使用的方式. 通用术语中的"内存泄漏"是什么意思,在Java中如何使用 ...
- 监视和检测Java应用程序中的内存泄漏
因此,您的应用程序内存不足,您日夜不停地分析应用程序,以期捕获对象中的内存漏洞. 后续步骤将说明如何监视和检测您的内存泄漏,以确保您的应用程序安全. 1.怀疑内存泄漏 如果您怀疑有内存泄漏,可以使用一 ...
- Java应用程序中的内存泄漏和内存管理
Java平台最突出的功能之一是其自动内存管理. 许多人错误地将此功能转换为Java中没有内存泄漏 . 但是,事实并非如此,我给人的印象是,现代Java框架和基于Java的平台,尤其是Android平台 ...
- java内部类内存泄漏,Android中常见的内存泄漏和解决方案
什么是内存泄漏? 简单点说,就是指一个对象不再使用,本应该被回收,但由于某些原因导致对象无法回收,仍然占用着内存,这就是内存泄漏. 为什么会产生内存泄漏,内存泄漏会导致什么问题? 相比C++需要手动去 ...
- 开发过程中程序员非常烦恼的问题,3种内存泄漏的解决方案
程序员非常蛋疼问题,3种内存泄漏的解决方案 1. 内存池的实现以及原理 2. 为内存加上hook,精准内存定位泄露 3. gc的实现方案 视频讲解如下,点击观看: 开发过程中程序员非常烦恼的问题,3种 ...
- quartz java 线程 不释放_java Quartz 内存泄漏
我用定时器启动应用的时候发现内存泄漏,具体报错如下: 十月 30, 2015 2:30:12 下午 org.apache.catalina.startup.HostConfig undeploy 信息 ...
- Java开发者必须知道的内存泄漏问题
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 1. 简介 Java的核心优势之一是在内置垃圾收集器(简 ...
- 程序如何调堆内存_Java的内存泄漏
问题的提出 Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存.因此,很多程序员认为Java不存在内存泄漏问题 ...
- 【Java面试题】之内存泄漏
本文转载自:http://blog.csdn.net/anxpp/article/details/51325838 Java的一个重要特性就是通过垃圾收集器(GC)自动管理内存的回收,而不需要程序员自 ...
最新文章
- linux和windows双系统引导,windows和linux双系统引导问题
- 淘宝Fourinone分布式计算框架性能、压力、容灾测试报告
- iOS 10 SceneKit 新特性 – SceneKit 制作 3D 场景框架
- Leetcode 187. 重复的DNA序列 解题思路及C++实现
- FPGA大数据之我认为的明天
- Linux下的TCP Wrapper机制
- 平切分,分库,分表,主从,集群 数据库水平切分的实现原理解析
- 12种主要的Dropout方法:如何应用于DNNs,CNNs,RNNs中的数学和可视化解释
- 如何用Pygame写游戏(二)
- java代码获取gc信息,如何监视Java垃圾回收
- 文件--非连续空间存放方式
- JS学习总结(11)—— JSON
- 使用think_queue实现未支付订单半小时取消
- python神经网络模型调用后预测值不变_用R语言实现神经网络预测股票实例
- 你鼓舞了我是世界杯主题曲吗_20位鼓舞人心的科技女性
- 设置水平线高度html代码是size,html水平线样式 Width:设置水平线的宽度
- HY-SRF05 五针超声波测距模块 在stm32f4上实现 附代码 个人经验
- python爬虫安装教程_环境安装-Python 原生爬虫教程 | IT大叔
- PS亮度蒙版工具:Lumenzia for Mac(支持ps2022)
- 直播美颜sdk免费版有吗?为什么美颜sdk没有免费版?