0

我面临着非常奇怪的情况。我正在开发我的ASP.NET应用程序并在 Visual Studio 开发服务器上对其进行调试,当我完成某些组件时,我在 IIS 上发布我的应用程序以让其他人测试输入数据。所以当我在 dev 上运行它时。服务器,一切都很好,但在 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即使它是空文件,我的应用程序也很慢,但是当这个包含被删除时,一切正常。

PS我知道为了提高性能最好减少JS文件,我会在部署之前合并它并缩小,所以这不是我的问题。

4

1 回答 1

1

在包含之前尝试检查这些脚本是否存在

if (!Page.ClientScript.IsClientScriptBlockRegistered("jquery"))
      Page.ClientScript.RegisterClientScriptInclude(typeof(string), "jquery", "YOUR_SCRIPT");
于 2012-09-13T08:37:20.850 回答