2012-09-13 69 views
0

我面临很奇怪的情况。我正在开发我的ASP.NET应用程序并在Visual Studio开发服务器上进行调试,当某些组件完成时,我在IIS上发布我的应用程序以让其他人测试输入数据。所以当我在dev上运行它时。服务器,一切都很好,但在IIS上,页面加载非常慢。asp.net包括javascript慢在iss

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

我想知道为什么,所以我开始从我的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

尝试包括

if (!Page.ClientScript.IsClientScriptBlockRegistered("jquery")) 
     Page.ClientScript.RegisterClientScriptInclude(typeof(string), "jquery", "YOUR_SCRIPT"); 
+0

是啊,我觉得帮助,感谢前要检查现有的这些脚本。但我不知道为什么,你能解释一下,它是如何工作的?我认为服务器在已经注册时更新脚本。 – david

+0

嗯,我不确定,但我认为它只是放在另一个不相同的脚本块。 – Vytalyi