C# 如何减少页面加载时间(结合javascript)?
使用ASP.NETMVC2创建的页面加载需要1.7秒。 它包含13个js文件,如下所示。Firebug显示每个js文件加载都返回304响应,但由于有13个文件,因此可能会大大增加页面加载时间。 Chrome audit红色警报建议合并js文件 如何使用ASP.NET MVC 2自动或以其他方式将它们合并到单个文件以减少加载时间? 项目中应该有单独的js文件,以允许替换它们,但这些文件应该交付 可能是单个js文件 使用jqgrid、jquery、jqueryui、tinymce和一些jquery插件js文件,如下所示。 使用Visual Web Developer Express 2010。应用程序在Mono 2.10/Apache和Windows/IIS下运行 site.master包含:C# 如何减少页面加载时间(结合javascript)?,c#,jquery,asp.net-mvc,visual-studio-2010,jqgrid,C#,Jquery,Asp.net Mvc,Visual Studio 2010,Jqgrid,使用ASP.NETMVC2创建的页面加载需要1.7秒。 它包含13个js文件,如下所示。Firebug显示每个js文件加载都返回304响应,但由于有13个文件,因此可能会大大增加页面加载时间。 Chrome audit红色警报建议合并js文件 如何使用ASP.NET MVC 2自动或以其他方式将它们合并到单个文件以减少加载时间? 项目中应该有单独的js文件,以允许替换它们,但这些文件应该交付 可能是单个js文件 使用jqgrid、jquery、jqueryui、tinymce和一些jquery插
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=0.1" />
<link rel="stylesheet" href="../../themes/redmond/jquery-ui-1.8.12.custom.css" type="text/css" />
<link href="../../Scripts/jqgrid/css/ui.jqgrid.css" rel="stylesheet" />
<link href="../../Content/Css/Site.css" rel="stylesheet" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server" />
<title>
<asp:ContentPlaceHolder ID="TitleContent" runat="server" />
</title>
<script type="text/javascript">
"use strict";
var BASE_URL = '<%= ResolveUrl("~/") %>';
</script>
<script src="<%= Url.Content("~/Scripts/jquery/jquery-1.7.1.js")%>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/jquery-ui-git.js")%>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/i18n/jquery.ui.datepicker-et.js")%>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/jquery.contextmenu-fixed2.js")%>" type="text/javascript"></script>
<% if (CurUser.GetLanguage() == "EST")
{ %>
<script src="<%= Url.Content("~/Scripts/jqgrid/js/i18n/grid.locale-et.js")%>" type="text/javascript"></script>
<% }
else
{ %>
<script src="<%= Url.Content("~/Scripts/jqgrid/js/i18n/grid.locale-en.js")%>" type="text/javascript"></script>
<% } %>
<script type="text/javascript">
$.jgrid.no_legacy_api = true;
$.jgrid.useJSON = true;
</script>
<script type="text/javascript" src="<%= Url.Content("~/Scripts/jqgrid/jquery.jqGrid.src-multiselect1-deleteandsortpatches.js")%>"></script>
<script type="text/javascript" src="<%= Url.Content("~/Scripts/jqgrid/jQuery.jqGrid.dynamicLink.js")%>"></script>
<script src="<%= Url.Content("~/Scripts/json2.js")%>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/jquery.form.js")%>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/TinyMCE/tiny_mce_src.js")%>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/TinyMCE/jquery.tinymce.js")%>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/myscripts.js")%>" type="text/javascript"></script>
<script type="text/javascript">
var
$grid;
$(function() {
"use strict";
<% if (TempData["Message"]!=null) {
setTimeout( function() {
showMessage ( '<%= TempData["Message"] as string %>');
...
“严格使用”;
var BASE_URL='';
$.jgrid.no_legacy_api=true;
$.jgrid.useJSON=true;
变量
$grid;
$(函数(){
“严格使用”;
要克服这些情况,您有许多技巧。其中一些技巧包括:
页面特定的JS:尝试根据需要添加javascript文件。不要添加页面中未使用的任何不必要的JS
GZIP压缩:对页面和静态js和css文件应用GZIP压缩
缓存:在服务器级别(IIS),可以对这些静态文件(如JS或CSS)应用缓存
祝你好运!!我推荐使用
使用单独的.js文件确实有助于减少页面加载时间。您只需包含一个类似以下内容的文件:
head.js("/path/to/jquery.js", "/google/analytics.js", "/js/site.js", function() {
// all done
});
我想建议你用这个做一个实验
首先,您可以尝试连接页面上使用的所有JavaScript和所有内联JavaScript代码。您应该保持原因文件的顺序。在我看来,您将获得两个版本的结果:一个是CurUser.GetLanguage()==“EST”
,另一个是CurUser.GetLanguage()!==“EST”
在获得一个JavaScript文件后,您可以使用闭包编译器,该编译器具有高级优化的编译级别(请参阅)它可以删除所有未使用的JavaScript代码。因此,您将获得页面上真正使用的jQuery、jQuery UI和其他库的子集。生成的JavaScript代码将与其他页面上的代码相同,但可能非常小,可以作为任何单独的文件进行更好的优化。允许您保留separa在运行时合并和缩小javascript文件
这真是一种享受
看起来他们在asp.net 4.5中加入了类似的内容:
将文件捆绑在一起
当前大多数主流浏览器将每个主机名的同时连接数限制为6个。这意味着,当处理6个请求时,浏览器将对主机上的其他资产请求进行排队
捆绑可以显著提高您的第一页点击率下载时间
通过将多个CSS文件和Javascript文件组合成单个CSS文件和Javascript文件,绑定减少了对服务器的单个HTTP请求的数量
本网站提供了一个很好的教程,介绍如何通过五个简单的步骤将捆绑添加到应用程序中:js文件位于浏览器缓存中。Web服务器发送304响应。在这种情况下,head.js似乎不会减少加载时间。如果使用head.js,则仍会发出每个页面的请求并接收304响应。然后,最好的方法是使用som类似的。我在我的一些项目中使用它。第一次配置它可能很困难,但它会给你很好的效果。操作的原则是最小化一些js文件并将其编译成一个。因此,你可以将jquery、jquery ui、datepicker和其他文件编译成一个。当你需要用另一个文件替换一个文件时,你应该重新编译您的js文件(在某些cms中,它会自动执行)。它还可以帮助优化和最小化css文件。1.使用所有js文件2.响应头包含内容编码gzip
,因此看起来响应是压缩的2-3:这是web应用程序:文件在99%的情况下已经存在于浏览器缓存中,apache返回304响应。因此缓存和gzip压缩无法减少降低加载速度。我阅读了您提供的链接,但没有找到任何内容(除了我询问的合并文件)这可以作为这个问题的答案。@Andru,找到这个线程,谢谢。我试过了,但是关于jQuery的错误没有定义。如何修复或找到原因?我更新了这个问题。我在简单优化工作中也发布了相关问题,但高级优化会导致错误。@Andrus:如果代码在高级方面有一些问题_优化
您可以使用简单优化
或使用例如。最小化的文件不会像使用高级优化
那样小,但所有这些都会起作用,您的主要答案问题也会得到解决。当然,我支持您至少已经为所有静态文件打开GZIP压缩。ADVANCED optimization probalby将jQuery重命名为其他名称。在哪里可以找到jQuery的外部设置文件,如google closure命令文档中所述,可以包括该文件以防止出现这种情况?