我如何加快我的MVC asp.net网站?
问题描述:
嗨每个人我正在使用C#在asp.net中构建我的第一个MVC 3网站我在网站的速度方面遇到了一些麻烦,因为它需要超过45秒才能展开或收缩显示数据库的表。我如何加快我的MVC asp.net网站?
我已经包含了我对其中有我的jQuery它
我一直在试图找出如何使用缓存,但我担心的是,数据不会是最新的,当管理人员需要的reportTemplate码最新数据
@{
ViewBag.Title = "ReportTemplate";
}
<script language="javascript" type="text/javascript">
$(document).ready(function() {
toggle = function (className) {
$('.' + className).toggle('fast');
}
});
</script>
<h2>ReportTemplate</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
INVESTMENT AREA
</th>
<th>
MAJOR PROGRAM
</th>
<th>
MANAGER
</th>
<th>
PROJECT
</th>
<th>
SPA
</th>
<th>
PA
</th>
</tr>
@{
string investment_area = "";
string major_program = "";
string manager = "";
string project = "";
string spa = "";
string pa = "";
string iaClass = "";
string mpClass = "";
string manClass = "";
string pjClass = "";
string spaClass = "";
string paClass = "";
}
@foreach (var item in Model)
{
iaClass = item.investment_area.Substring(0, 2);
mpClass = item.major_program;
manClass = item.manager;
pjClass = item.project;
spaClass = item.spa;
paClass = item.pa;
if (investment_area != item.investment_area)
{
<tr>
<td class = "ndeTable ui-widget-header pointer border" onclick="toggle('@iaClass')" colspan="6">
@item.investment_area
</td>
</tr>
}
investment_area = item.investment_area;
if (major_program != item.major_program)
{
<tr class="@iaClass">
<td style = "width :200px"></td>
<td class = "ndeTable pointer border" onclick="toggle('@mpClass')" colspan="5">
@item.major_program
</td>
</tr>
}
major_program = item.major_program;
if (manager != item.manager)
{
<tr class = "@iaClass @mpClass">
<td></td>
<td style = "width : 100px"></td>
<td class = "ndeTable pointer border" onclick="toggle('@manClass')" colspan="4">
@item.manager
</td>
</tr>
}
manager = item.manager;
if (project != item.project)
{
<tr class = "@iaClass @mpClass @manClass">
<td></td>
<td></td>
<td style = "width : 200px"></td>
<td class = "ndeTable pointer border" onclick = "toggle('@pjClass')" colspan="3">
@item.project
</td>
</tr>
}
project = item.project;
if (spa != item.spa)
{
<tr class = "@iaClass @mpClass @manClass @pjClass">
<td></td>
<td></td>
<td></td>
<td style = "width : 325px"></td>
<td class = "ndeTable pointer border" onclick = "toggle('@spaClass')" colspan = "2">
@item.spa
</td>
</tr>
}
spa = item.spa;
<tr class = "@iaClass @mpClass @manClass @pjClass @spaClass">
<td></td>
<td></td>
<td></td>
<td></td>
<td style = "width: 200px"></td>
<td class = "ndeTable pointer border" onclick = "toggle('@paClass')" colspan = "1">
@item.pa
</td>
</tr>
pa = item.pa;
}
</table>
我将继续努力,以优化在此期间的代码,但如果任何人有任何提示或技巧,我可以使用,因为这一直困扰我在过去的几个,我将非常感激一个小型数据库的日子和45秒是荒谬的。感谢您的时间。 干杯, James
答
可能会发生这样的情况,即您尝试在表格中显示的记录过多。你应该使用分页。看看datatables.net这是一个不错的jquery插件,可以帮助你进行分页。确保您使用的是server side processing。当然,你将不得不改变你的代码(服务器端和客户端)。
答
您正在使用哪种浏览器?旧版浏览器没有新版本的Javascript性能,并且可能同时暴露或隐藏的面板数量无疑是问题的原因。
我同意处理分页的答案,这是一个很好的选择,可以减少一次提交的数据量,也可以减少同时显示的元素数量。 Javascript的执行不是即时的,而且在旧的浏览器上它确实很慢。
你是什么意思“展开/合同”? MVC代码只会影响页面加载速度,而不会影响任何JQuery UI活动。 – Lazarus 2012-01-13 16:53:51
当你点击说投资区的细胞时,该投资区的孩子们应该扩大或缩小显示或隐藏主要项目经理的水疗中心等......如果我含糊不清,我很抱歉,因为这是我的第一个问题仍然在努力寻找正确的问题,并感谢您的快速响应! – Goldentp 2012-01-13 17:11:16
有没有人认为它可能是jQuery调用的切换功能,因为这是网站真正减慢速度的部分。是否有另一种方式让桌子扩大或缩小投资区域的孩子,而不会像现在这样慢下来? – Goldentp 2012-01-13 17:21:58