我面临着非常奇怪的情况。我正在开发我的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文件,我会在部署之前合并它并缩小,这不是我的问题。
答案 0 :(得分:1)
尝试在包含
之前检查这些脚本的现有内容if (!Page.ClientScript.IsClientScriptBlockRegistered("jquery"))
Page.ClientScript.RegisterClientScriptInclude(typeof(string), "jquery", "YOUR_SCRIPT");