您的位置:首页 > Web前端 > JavaScript

一个关于js的内存问题

2014-04-01 09:18 405 查看
<script type="text/javascript">
function textChange(id, fn) {
var textarea = document.getElementById(id);
if ("\v" == "v") {
textarea.onpropertychange = fn;
}
else {
textarea.addEventListener("input", fn, false);
}
}

function SetTxt2() {
document.getElementById("txt2").value = document.getElementById("txt1").value;
}

function SetTxt1() {
document.getElementById("txt1").value = document.getElementById("txt2").value;
}
onload = function () {
textChange("txt1", SetTxt2);

textChange("txt2", SetTxt1);
}
</script>
<input type="text" name="" value="" id="txt1" /><br />
<input type="text" name="" value="" id="txt2" />


这段代码火狐和谷歌Chrome中运行是没有问题的,但是在IE8中运行有问题

报错:



出错的原因是因为:火狐和谷歌Chrome对于内存垃圾的处理方式是标记删除,但是IE8部分使用了标记删除,IE8对于DOM的内存垃圾收集方式依旧使用的是引用计数,会出现死循环的问题。IE9修复了这一问题!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: