【发布时间】:2015-04-30 05:03:32
【问题描述】:
我制作了一个电子表格 示例图像 http://www.jqwidgets.com/wp-content/uploads/2012/08/jquery-spreadsheet.png
这是我的总数据(3974 行)(我使用的是entitiy Mvc 4 c#/framework 4.5 存储过程)没有加入单个表,我使用的是 LOCALHOST)mssql 2014 express 但我非常等待(仅 html 创建)没有数据(平均 2 分钟仅加载)并且当我单击单元格(输入)等待 8 秒
3.794 行来自服务器的快速仅 html 创建慢
如何加快速度?如果不可能.. 或者你能给我推荐一个电子表格吗? 或客户端缓存或mvc数据缓存哪个有用? 谢谢
function GridEstimation() {
var estimationModel = GetEstimations(); 3.974 ROWS
var GridEstimation = document.getElementById('GridEstimation');
var dynamicNav = "";
if (estimationModel != "undefined") {
dynamicNav += '<div class="table-wrapper">';
dynamicNav += '<div class="table-scroll">';
dynamicNav += '<table class="tftable" border="1">';
24 船行
dynamicNav += '<tr>'
dynamicNav += '<th>Invoice Item</th>'
for (var i = 0; i < estimationModel.Vessels.length; i++) {
dynamicNav += '<th id=' + estimationModel.Vessels[i].VesselID + '>' + estimationModel.Vessels[i].VesselName + '</th>'
}
dynamicNav += '</tr>'
158 项(库存)行
for (var m = 0; m < estimationModel.Items.length; m++) {
dynamicNav += '<tr>';
dynamicNav += '<td>' + estimationModel.Items[m].InvoiceItemName + '</td>';
3.792 单元格输入行
for (var n = 0; n < estimationModel.Estimations.length; n++) {
dynamicNav += '<div><input type="text" id=' + estimationModel.Estimations[n].EstimationID + '/></div>';
}
dynamicNav += '</tr>'
}
dynamicNav += '</tr>'
dynamicNav += '</table>'
dynamicNav += '</div>';
dynamicNav += '</div>';
}
$("#GridEstimation").append(dynamicNav);
}
【问题讨论】:
-
您是否验证过 Javascript 代码是瓶颈,而不是某处的服务器端代码?此外,这是一个非常长的数据列表,您可以将其更改为使用服务器端分页来一次仅加载几个。
-
您不能将那么多行加载到内存中并期望它是优雅的。我会考虑整体查看您的设计或考虑实现无限滚动或类似的东西。您需要考虑销毁不在屏幕上的 dom 对象。记忆是你的敌人
标签: javascript html asp.net-mvc caching client-side