javascript – IE8的DOM内存问题(插入大量JSON数据)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – IE8的DOM内存问题(插入大量JSON数据),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2173字,纯文字阅读大概需要4分钟。
内容图文
![javascript – IE8的DOM内存问题(插入大量JSON数据)](/upload/InfoBanner/zyjiaocheng/964/2fa8fc1723124fc981275944dacfe5d5.jpg)
我正在开发一个小型Web实用程序,它显示来自某些数据库表的一些数据.
我在FF,Safari,Chrome上运行的实用程序很好……但是IE8上的内存管理是可怕的.最大的JSON请求将返回信息,以在浏览器中的表中创建大约5,000行(表中的3列).
我正在使用jQuery来获取数据(通过getJSON).要删除旧/现有表,我只是在做一个$(‘#my_table_tbody’).empty().要在表中添加新信息,在getJSON回调中,我只是将我正在创建的每个表行附加到变量,然后一旦我拥有它们,我使用$(‘#my_table_tbody’).append( myVar)将它添加到现有的tbody中.我不会在创建表行时添加它们,因为这似乎比只是一次添加它们要慢得多.
是否有人建议有人应该做什么试图向DOM添加数千行数据?我想远离分页,但我想知道我是否没有选择.
更新1
所以这是我在innerHTML建议之后尝试的代码:
/* Assuming a div called 'main_area' holds the table */ document.getElementById('main_area').innerHTML = ''; $.getJSON("my_server", {my: JSON, args: are, in: here}, function(j) { var mylength = j.length; var k =0; var tmpText = ''; tmpText += /* Add the table, thead stuff, and tbody tags here */; for (k = mylength - 1; k >= 0; k--) { /* stack overflow wont let me type greater than & less than signs here, so just assume that they are there. */ tmpText += 'tr class="' + j[k].row_class . '" td class="col1_class" ' + j[k].col1 + ' /td td class="col2_class" ' + j[k].col2 + ' /td td class="col3_class" ' + j[k].col3 + ' /td /tr'; } document.getElementById('main_area').innerHTML = tmpText; }
这是它的要点.我也试过只使用$.get请求,并让服务器发送格式化的HTML,并在innerHTML中设置它(即document.getElementById(‘main_area’).innerHTML = j;).
感谢所有的回复.我很遗憾你们都愿意提供帮助.
解决方法:
var tmpText = [];
for (k = mylength - 1; k >= 0; k--)
{
/* stack overflow wont let me type greater than & less than signs here, so just assume that they are there. */
tmpText.push('anything you want')
tmpText.push( 'tr class="' + j[k].row_class . '" td class="col1_class" ' + j[k].col1 + ' /td td class="col2_class" ' + j[k].col2 + ' /td td class="col3_class" ' + j[k].col3 + ' /td /tr';)
}
$('#main_area').html(tmpText.join(''))
}
你不需要document.getElementById(‘main_area’).innerHTML =”;
这个方法是推入数组,然后加入并使用jquery html函数进行更新.这是我所知道的最快的方法.对不起这里的格式 – 这是我的第一篇文章,我想我会在这里回复一下stackoverflow.
内容总结
以上是互联网集市为您收集整理的javascript – IE8的DOM内存问题(插入大量JSON数据)全部内容,希望文章能够帮你解决javascript – IE8的DOM内存问题(插入大量JSON数据)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。