asp.net包括javascript在iss上的速度慢

时间:2012-09-13 08:29:37

标签: javascript performance iis

我面临着非常奇怪的情况。我正在开发我的ASP.NET应用程序并在visual studio开发服务器上进行调试,当我完成一些组件时,我在IIS上发布我的应用程序以让其他人测试输入数据。所以当我在开发时运行它。服务器,一切都很好,但在IIS上,页面加载速度令人难以置信。

所以第一个问题是如何编译应用程序比调试模式下的应用程序慢?

我想找出原因,所以我开始从我的site.master.cs文件中删除JavaScript包含。它实际上有所帮助,但它以意想不到的方式工作。

我的包含是通过以下代码完成的:

ClientScriptManager cs =Page.ClientScript;
        cs.RegisterClientScriptInclude(typeof(string), "jquery", Page.ResolveClientUrl("~/Scripts/jquery-1.8.0.min.js"));
        cs.RegisterClientScriptInclude(typeof(string), "jqueryUI", Page.ResolveClientUrl("~/Scripts/jquery-ui-1.8.23.custom.min.js"));
        cs.RegisterClientScriptInclude(typeof(string), "utility", Page.ResolveClientUrl("~/Scripts/utility.js"));
        cs.RegisterClientScriptInclude(typeof(string), "forms_v2", Page.ResolveClientUrl("~/Scripts/forms_v2.js"));
        cs.RegisterClientScriptInclude(typeof(string), "odkazy", Page.ResolveClientUrl("~/Scripts/odkazy.js"));
        cs.RegisterClientScriptInclude(typeof(string), "tabs_v2", Page.ResolveClientUrl("~/Scripts/tabs_v2.js"));  //Nahradí tabs
        cs.RegisterClientScriptInclude(typeof(string), "user", Page.ResolveClientUrl("~/Scripts/user.js"));
        cs.RegisterClientScriptInclude(typeof(string), "grafika", Page.ResolveClientUrl("~/Scripts/grafika.js"));
        cs.RegisterClientScriptInclude(typeof(string), "json2", Page.ResolveClientUrl("~/Scripts/json2.js"));//IE7

因此,通过逐个删除包含,我发现问题仅由forms_v2.js引起,但我不能简单地删除此脚本,我需要确切地找出哪个函数减慢了我的应用程序。但是在删除脚本中的全文后,没有任何变化。

所以最后的情况是这样的:当forms_v2.js包含即使它是空文件时,我的应用程序也很慢,但是当删除此包含时,一切正常。

P.S。我知道要提高性能,最好少用JS文件,我会在部署之前合并它并缩小,这不是我的问题。

1 个答案:

答案 0 :(得分:1)

尝试在包含

之前检查这些脚本的现有内容
if (!Page.ClientScript.IsClientScriptBlockRegistered("jquery"))
      Page.ClientScript.RegisterClientScriptInclude(typeof(string), "jquery", "YOUR_SCRIPT");