【发布时间】:2014-03-19 14:43:28
【问题描述】:
我有一个无法解决的问题,很难解释,但我会尽力而为。
基本上我已经创建了一个 Web 应用程序(在 CodeIgniter 中),它获取来自 json 编码 的数组的一些数据,并通过使用 成功函数中的jQuery .prependTo() 方法。
表格的每一行都包含来自数据库的不同元素(来自 json),具体取决于 i 计数器的值。
代码如下(我剪掉了<tr>和<td>内容的部分,只是样式)
$.ajax({
type: "get",
async: false,
....
....
success: function(data) {
var i;
var item_cost = new Array();
var item_name = new Array();
var item_code = new Array();
var item_interno = new Array();
for(i = 0; i < data.length; i++) {
item_cost[i] = data[i].cost;
item_name[i] = data[i].name;
item_code[i] = data[i].code;
item_interno[i] = data[i].codiceinterno;
var newTr = // creates the <tr>
newTr.html('//creates the <td>')
newTr.prependTo("#myTable");
}
},
很抱歉,如果有点不清楚,如果您需要我更新代码,因为我错过了一些重要的事情,请告诉我,我会这样做,但仅此代码就可以解释我的问题。
如果数据库中的行数很少(例如,i = 300),则应用程序运行良好。它们被正确显示和渲染,我没有得到任何浏览器减慢过程。但是当我使用 i = 4000 行时,浏览器开始运行缓慢,就像 Javascript 代码太重而无法呈现一样,并且在尝试向下滚动 html 表或在输入框中输入一些值时我得到“滞后”里面表(稍后通过单击按钮对其进行更新)。这是我的问题:我很确定我做错了什么会加载太多内存,因为我也在非常强大的计算机上进行了测试。即使完全禁用我的 CSS 也不行。
感谢您能给我的任何帮助,我们将不胜感激。
【问题讨论】:
-
好吧,是的,如果你做 4000 个 jQuery 实例,4000
html()和 4000.prenpendTo会很慢...... -
所以我猜这是正常的?有没有办法可以加快整个过程?我需要我的应用程序快速且直观。
-
让我做一些事情,我不能保证它会起作用......
标签: javascript jquery html css codeigniter