[英]asp.net including javascript slow on iss
我面临着非常奇怪的情况。 我正在开发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
包含include时,即使它是空文件,我的应用程序也非常慢,但是当删除include时,一切正常。
PS我知道,为了提高性能,最好减少JS文件的数量,在部署之前我将其合并并缩小,因此这不是我的问题。
尝试在包含之前先检查这些脚本是否存在
if (!Page.ClientScript.IsClientScriptBlockRegistered("jquery"))
Page.ClientScript.RegisterClientScriptInclude(typeof(string), "jquery", "YOUR_SCRIPT");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.