如何合成和压缩Javascripts(.net ajax)以获得最佳性能

如何合成和压缩Javascripts(.net ajax)以获得最佳性能,javascript,jquery,asp.net,ajax,asp.net-ajax,Javascript,Jquery,Asp.net,Ajax,Asp.net Ajax,我在我的web应用程序中使用JQuery库和一些定制的Java脚本。我将它们组合并压缩到一个JavaScript文件中,并将其作为静态脚本定位在正文的端,通常可以获得最佳性能,同意吗 <script src="../js/Default.js" type="text/javascript"></script> 此外,还有一些.net ajax控件,例如建议使用组合这些控件所需的默认asp.net Java脚本,例如 因为我的web应用只有一个脚本管理器,它位于表单开

我在我的web应用程序中使用JQuery库和一些定制的Java脚本。我将它们组合并压缩到一个JavaScript文件中,并将其作为静态脚本定位在正文的端,通常可以获得最佳性能,同意吗

<script src="../js/Default.js" type="text/javascript"></script>

此外,还有一些.net ajax控件,例如
建议使用
组合这些控件所需的默认asp.net Java脚本,例如

因为我的web应用只有一个脚本管理器,它位于表单开头的母版页中。合成和压缩这些.net JS以使其使用与我的静态脚本类似的最佳方法是什么?由于这些ajax控件并没有应用于每个页面,我是否仍应该在母版页中合成所有JavaSSRIPT?(猜测每个子页面中的引用代理是否有用?)


关于,

我认为除了gZip之外,您不需要压缩更多的文件

当然,您需要在这里声明webresource上的js文件不是调试版本

如果您尝试更改此文件的位置,例如尝试将其放在末尾,则可能会出现javascript错误,因为asp.net控件可能需要找到此函数

我只建议在客户端添加一些缓存。您可以根据应用程序开始请求执行此操作-类似于:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    // get the file name
    string cTheFile = HttpContext.Current.Request.Path;

    // here just see if this is the files that you wish to add some extra cache
    if (cTheFile.EndsWith("WebResource.axd", StringComparison.InvariantCultureIgnoreCase))
    {
        // add some cache - what ever you think, or add an eTag 
        app.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(4));
        app.Response.Cache.SetMaxAge(new TimeSpan(4, 0, 0));
        app.Response.Cache.SetCacheability(HttpCacheability.Public);    
    }
}

我认为除了gZip之外,您不需要压缩更多的这个文件

当然,您需要在这里声明webresource上的js文件不是调试版本

如果您尝试更改此文件的位置,例如尝试将其放在末尾,则可能会出现javascript错误,因为asp.net控件可能需要找到此函数

我只建议在客户端添加一些缓存。您可以根据应用程序开始请求执行此操作-类似于:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    // get the file name
    string cTheFile = HttpContext.Current.Request.Path;

    // here just see if this is the files that you wish to add some extra cache
    if (cTheFile.EndsWith("WebResource.axd", StringComparison.InvariantCultureIgnoreCase))
    {
        // add some cache - what ever you think, or add an eTag 
        app.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(4));
        app.Response.Cache.SetMaxAge(new TimeSpan(4, 0, 0));
        app.Response.Cache.SetCacheability(HttpCacheability.Public);    
    }
}

模糊处理会缩小脚本的大小(有时会急剧缩小)。这是所有的模糊处理都有好处。

模糊处理会缩小脚本的大小(有时会非常明显)。在我看来,模糊处理有助于减少http请求的数量。

编辑:我想使用CompositeScript来减少http请求的数量。如果我列出母版页中CompositeScript中某些页面中使用的所有.net Java脚本。它会降低这些不使用.net JSs的页面的性能吗?编辑:嗯,我想使用CompositeScript来减少http请求的数量。如果我列出母版页中CompositeScript中某些页面中使用的所有.net Java脚本。它会降低这些不使用.net JSs的页面的性能吗?谢谢,但我不太明白webresource上的js文件不是调试版本。“,如何?通过在CompositeScript中列出所有这些文件?其次,我认为缓存已在webConfig中设置,在应用程序_beginrequest?中设置有任何好处吗?Dan An您谈到的是net js文件,自动添加到站点的JavaScript文件,这些文件都是调试版本和发布版本。我说把它放在beginRequest上,因为我不知道你还能把这个缓存放在哪里——如果你知道,请告诉我。谢谢,但我不太明白webresource上的js文件不是调试版本。“,如何?通过在CompositeScript中列出所有这些文件?其次,我认为缓存已在webConfig中设置,在应用程序_beginrequest?中设置有任何好处吗?Dan An您谈到的是net js文件,自动添加到站点的JavaScript文件,这些文件都是调试版本和发布版本。我说把它放在beginRequest上,因为我不知道你还能把这个缓存放在哪里——如果你知道,请告诉我。