JS实现强制回收内存方法两则
来源:互联网 发布:verizon的网络制式全网 编辑:程序博客网 时间:2024/05/29 17:58
其实标题挺吸引人的,不过无非是发现IE内核的浏览器在最小化时,会自动回收内存
那么,所要做的理论上挺简单:先把目标页面窗最小化,然后再最大化或还原。
挺难的。。。。其实挺难的
本想一步到位,用clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11这个东东来完成
<object id="winMin" classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Minimize"></object>
<object id="winMax" classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Maximize"></object>
<object id="winClo" classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Close"></object>
<input type="button" value="最小化" onclick=winMin.Click()>
<input type="button" value="最大化" onclick=winMax.Click()>
<input type="button" value="关闭" onclick=winClo.Click()>
这样最小化和最大化功能都有了,然后自己写个函数
<input type="button" value="11111111" onclick="test();">
<script>
var pub_resize=false;
function test(){
winMin.Click();
window.focus();
window.onresize=function(){
if(pub_resize==false){winMax.Click();}
pub_resize=true;
}
alert("成功地强制回收了内存资源,请点击“确定”!")
}
</script>
搞定了。。。。。。但是,这个控件MS考虑到它的安全性,这三种功能在本地做成页面TEST是可以的,但用虚拟目录或服务器http://一测就会发现,不可行了
---------------------
那么。。还有一种方法,最小化可以用JS的window.blur();来实现,然后发现IE6可以,IE7没有反应,本想IE6就IE6吧,但又发现任务管理器的显示它还是没有回收内存,就是说它是最小化,但没有达成IE回收内存资源的标准,回收程序没有执行。
我不是做网站的,尽管我也得做页面,于是我只能来硬的了,这就是做WEB系统比网站的好处,我们可以要求用户按我们的一些规则来,当然,我们也在提升交互感受
设想用WScript.Shell来完成,用它来发送模拟键值把窗体最小化,然后再用JS的某些方法最大化达到目的,那么我们开始吧(注意:用WScript.Shell浏览器会提示你:在此页使用ACTIVX控件是不安全的等等):
<script>
function full(){//IE6
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.sendKeys("%"+"{ }");
WshShell.sendKeys("{n}");
window.setTimeout("window.open(\"qqq.html\",\"_banlk\",\"\")",0);
}
</script>
<input type=button onclick=full(); value="最小化">
先引用WScript.Shell,然后发送alt+空格(你对着一个网页用这个快捷键试试),然后应当有一个提示“最小化窗体(n)”,然后我就发送了一个n,于是,窗体成功最小化了,然后用setTimeout设了一个时间差来执行打开一个自定义页面,qqq.html的源码如下:
<script>
function ttt(){
window.opener.focus();
window.close();
return false();
}
ttt();
</script>
window.opener.focus();是设父窗体为当前获得焦点的窗体(就是上面我们让它最小化的那个)
然后关闭这个弹出页,不提示
目前在IE6上测试通过,其它如IE7,傲游2在回收上也是可以的,因为最小化是成功的,但后面这个弹出窗激活父窗这个功能我还在研究中,因为它们是卡片式浏览器的原故吧
-----------------
贴几个关键的键值:Shift/Ctrl/Alt
//Shift---------WshShell.SendKeys "+"
//Ctrl---------WshShell.SendKeys "^"
//Alt---------WshShell.SendKeys "%"
--------------------
设想在系统里定时执行,比如2小时执行一次,当然,也支持用户手动执行,那么可以改善部分因为IE本身的回收缺限导致的缓慢。
那么,所要做的理论上挺简单:先把目标页面窗最小化,然后再最大化或还原。
挺难的。。。。其实挺难的
本想一步到位,用clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11这个东东来完成
<object id="winMin" classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Minimize"></object>
<object id="winMax" classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Maximize"></object>
<object id="winClo" classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Close"></object>
<input type="button" value="最小化" onclick=winMin.Click()>
<input type="button" value="最大化" onclick=winMax.Click()>
<input type="button" value="关闭" onclick=winClo.Click()>
这样最小化和最大化功能都有了,然后自己写个函数
<input type="button" value="11111111" onclick="test();">
<script>
var pub_resize=false;
function test(){
winMin.Click();
window.focus();
window.onresize=function(){
if(pub_resize==false){winMax.Click();}
pub_resize=true;
}
alert("成功地强制回收了内存资源,请点击“确定”!")
}
</script>
搞定了。。。。。。但是,这个控件MS考虑到它的安全性,这三种功能在本地做成页面TEST是可以的,但用虚拟目录或服务器http://一测就会发现,不可行了
---------------------
那么。。还有一种方法,最小化可以用JS的window.blur();来实现,然后发现IE6可以,IE7没有反应,本想IE6就IE6吧,但又发现任务管理器的显示它还是没有回收内存,就是说它是最小化,但没有达成IE回收内存资源的标准,回收程序没有执行。
我不是做网站的,尽管我也得做页面,于是我只能来硬的了,这就是做WEB系统比网站的好处,我们可以要求用户按我们的一些规则来,当然,我们也在提升交互感受
设想用WScript.Shell来完成,用它来发送模拟键值把窗体最小化,然后再用JS的某些方法最大化达到目的,那么我们开始吧(注意:用WScript.Shell浏览器会提示你:在此页使用ACTIVX控件是不安全的等等):
<script>
function full(){//IE6
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.sendKeys("%"+"{ }");
WshShell.sendKeys("{n}");
window.setTimeout("window.open(\"qqq.html\",\"_banlk\",\"\")",0);
}
</script>
<input type=button onclick=full(); value="最小化">
先引用WScript.Shell,然后发送alt+空格(你对着一个网页用这个快捷键试试),然后应当有一个提示“最小化窗体(n)”,然后我就发送了一个n,于是,窗体成功最小化了,然后用setTimeout设了一个时间差来执行打开一个自定义页面,qqq.html的源码如下:
<script>
function ttt(){
window.opener.focus();
window.close();
return false();
}
ttt();
</script>
window.opener.focus();是设父窗体为当前获得焦点的窗体(就是上面我们让它最小化的那个)
然后关闭这个弹出页,不提示
目前在IE6上测试通过,其它如IE7,傲游2在回收上也是可以的,因为最小化是成功的,但后面这个弹出窗激活父窗这个功能我还在研究中,因为它们是卡片式浏览器的原故吧
-----------------
贴几个关键的键值:Shift/Ctrl/Alt
//Shift---------WshShell.SendKeys "+"
//Ctrl---------WshShell.SendKeys "^"
//Alt---------WshShell.SendKeys "%"
--------------------
设想在系统里定时执行,比如2小时执行一次,当然,也支持用户手动执行,那么可以改善部分因为IE本身的回收缺限导致的缓慢。
- JS实现强制回收内存方法两则
- 强制回收内存
- Flex 强制回收内存
- Netbeans强制回收、关闭内存
- JS实现打印两方法
- 关于js内存回收机制
- JAVA 内存泄漏 垃圾回收 两篇
- js强制要求保留两位小数
- js强制保留两位小数
- flash的强制垃圾回收 flash内存释放
- 强制关闭网页js实现
- 《AS3 Expert》_15 Flash Player的垃圾内存回收机制:能否强制回收?
- [AS-Hack]AS3中强制进行垃圾回收的方法
- [AS-Hack]AS3中强制进行垃圾回收的方法
- Java虚拟机垃圾回收(一) 基础:回收哪些内存/对象 引用计数算法 可达性分析算法 finalize()方法 HotSpot实现
- js垃圾回收和内存泄漏
- css、js两种方法实现遮罩效果
- JS两种方法实现当前时间显示
- 多分类问题中的unbalance数据集的分类
- jQuery实现图片延迟加载
- QGis编译用到的有用链接分享给大家
- 解决undefine reference to '__aeabi_idiv' undefine reference to '__aeabi_idivmod'错误
- 【C/C++和指针】深度解析---指针与数组 【精华】
- JS实现强制回收内存方法两则
- VNC安装与配置
- wince中断之我见
- date日期转换成整数
- HDU 1271 数论,有点巧妙,改天再研究
- ARM Cortex-M3 学习笔记(4-5)
- hibernate联合主键相关
- Linux常用命令
- ARM Cortex-M3 学习笔记(4-6)