Bif*_*iff 10 javascript asp.net optimization minify
我即将开始为我们的某个产品执行一些性能增强.我们的用户使用非常慢的无线电连接到网络.应用程序的主要瓶颈是网络和数据库.我将专注于减少应用程序的网络占用空间.
在开始拆除UpdatePanels,删除不必要的内容以及我能想到的任何其他内容之前,我将从一些"快速获胜"开始.现在我有一些事情,我认为我已经准备好实施
这些包括
编辑:资产缩小和空白清洁工具可以很好地协同工作.
但是我有一些事情我不确定如何处理.
一些微软资源(WebResource.axd?d=blahblah和ScriptResource.axd?d=blahblah)没有缩小.这和这个和其他一些取决于页面.Microsoft.Ajax虽然很好.如果这些文件没有自动缩小,我该如何手动缩小这些文件?我错过了某个地方的设置吗?
是否可以使用我的javascript将微软资源合并到一个js文件中?
401错误,在小提琴手中,我可以看到我第一次点击网站时总会出现401错误,紧接着是正常的200.其他资源也会在第一次调用时随机出现401.是否需要配置某种IIS设置以删除此不需要的呼叫?
aspx文件中的Javascript.不幸的是,我们的aspx文件中有很多js,以及很多ScriptManager.RegisterStartupScript在我们的代码后面使用渲染的javascript .我如何<script>在aspx标记中缩小标签内的javascript ?
更新
Mads Kristensen的合成器很棒.但是我发现有些页面包含14个以上的axd引用会产生404.15错误(查询字符串太长,即只有bug)我的解决方法是gzip和base64编码查询字符串.
我发现将我的js包含在.axd文件中是一项徒劳无功的任务,因为.axd文件对于每个页面都是不同的.让我的静态js文件单独生成一个额外的服务请求,但它将保持缓存在客户端上,而不是让客户端重新下载这些脚本作为组合的js axd文件的一部分.
我启用了匿名身份验证.没有更多的问题.
没有进展.
我发现将favicon.ico放在根部是必要的.我想这可能只是因为我的应用程序的设计方式.
合并Microsoft脚本资源:查看我用于拦截WebResource(以及其他脚本和css)文件请求的ContentGator项目,并将它们合并在一起.我没有在几年内更新它,所以我不能说它开箱即用的程度如何,你至少应该能够重用一些代码.我不认为我记得添加缩小,但你应该能够很容易地添加它.我认为它既可以挂钩到RegisterStartupScript,也可以替代它,在那里你应该能够连接缩小.
据我所知,Favicon无法禁用,因为浏览器默认请求它.如果你真的不想要它,你可能只需要提供一个1x1像素的ico,这样你就不会提供404,后续的请求将会产生304.使用CDN就可以了.你的其他静态资源.
另外,请访问http://developer.yahoo.com/yslow/以获取其他更常规的Web优化提示.
其他的事情在我的头顶:
1和2)优化.axd:http://madskristensen.net/post/Optimize-WebResourceaxd-and-ScriptResourceaxd.aspx编辑 文章的死链接 压缩脚本资源.zip Google缓存
3) HTTP 401 Unauthorized:您配置的身份验证机制正在执行此操作。如果您启用了 Windows 身份验证但没有使用它...
4)嵌入式JS:MS AJAX Minifier
http://www.codeproject.com/Articles/81317/Automatically-compress-embedded-JavaScript-resourcec
http://stephenwalther.com/blog/archive/2009/10/16/using-the-new-microsoft-ajax-minifier.aspx
对于与标记混合的 JS,您无能为力。您可以创建自己的实用程序,使用 RegEx 将其从 ASPX 中解析出来,并创建一个每页包含所有内容的文件,然后缩小该文件并插入 1 个脚本引用。由于像这样的极端情况,捕获 SCRIPT 标记内所有内容的正则表达式最终将变得相当复杂。
<script type="text/javascript">
document.write("<script>Dynamica, RegEx don't stop here -></script>");
</script>
Run Code Online (Sandbox Code Playgroud)
5) Favicon:您的页面上有一个 LINK 标记,通过 REL="shortcut icon" 引用它,或者您的网站根目录中有一个“favicon.ico”文件。如果您没有 LINK 标签,则浏览器将自动检查您网站根目录下的 favicon.ico。