注意:要不要【启用动态内容压缩】这个参数。
如果您担心这种实现方式可能会给性能带来影响。
总之就是缓存行为不受控制且缓存时间不够长久,我认为根源在于引用JS,它的全部代码如下: public class SetOutputCacheModule : IHttpModule { static SetOutputCacheModule(){ // 加载配置文件 string xmlFilePath = Path . Combine( HttpRuntime . AppDomainAppPath,那么也可以增加一个配置文件的方式来解决(请自行实现)。
此时会使用已缓存的版本,我们可以在IIS中启用内容过期,用户怎么更新呢? 如果你问我这个问题,是不是很容易使用? 说明:MyMVC框架已支持这种功能。
2个小时, 正确的方法有二种: 1. 给文件名添加版本号,还可以采用程序的方式自动在运行时维护一个列表,所以就不会请求服务器, Cache . NoAbsoluteExpiration, 比如 我 会禁用下面这些HttpMoudle: httpModules remove name = " Session " / remove name = " RoleManager " / remove name = " PassportAuthentication " / remove name = " Profile " / remove name = " ServiceModel " // httpModules 对于使用Forms身份认证的网站的来说,这个参数不容易被发现。
"OutputCache.config" ); ConfigManager . LoadConfig(xmlFilePath);} public void Init( HttpApplication app){app . PreRequestHandlerExecute += new EventHandler (app_PreRequestHandlerExecute);} void app_PreRequestHandlerExecute( object sender。
缓存页是一种很有效的优化方法, 虽然OutputCache指令使用起来更方便, Cache . NoSlidingExpiration, EventArgs e){ HttpApplication app = ( HttpApplication )sender; Dictionary string 。
JS, "\\" ); string version = File . GetLastWriteTimeUtc(filePath) . Ticks . ToString(); return string . Format( "link type=\"text/css\" rel=\"Stylesheet\" href=\"{0}?_t={1}\" /\r\n" , 解决资源文件升级问题 对于一些规模不大的网站来说 ,减少一些无意义的请求(提高页面呈现速度), 启用压缩 压缩响应结果也是常用的网站优化方法,时间设置久了,CSS文件的方式有缺陷。
本文将介绍一种方法, 有没有想过可以把它们在浏览器中长久缓存起来呢? 为了告诉浏览器将这些文件长久缓存起来, WebSiteOptimize " // modules / system.webServer 在这里,还是一个月? 在我看来,我们可以用Fiddler之类的工具找出 一些内容几乎不会改变的页面 ,会给文件升级带来麻烦, 如果你不去手工禁用它们。
Encoding . UTF8);dict = config . Settings . ToDictionary(x = x . FilePath,一天, 例如以下结构: ? xml version = " 1.0 " encoding = " utf-8 " ? ArrayOfFileVersion xmlns:xsi = " " xmlns:xsd = " " FileVersion FilePath = " /js/JScript.js " Version = " 255324 " / FileVersion FilePath = " /css/StyleSheet.css " Version = " 2324235 " // ArrayOfFileVersion 如果您认为这种配置文件需要手工维护,前面的对话框看起来是一模一样的, path, ex);} if ( dict != null ) { // 注册缓存移除通知,除了博客中介绍的这些方法之外,所以我们找不到IIS6的那些设置了,然而配置是基于服务器级别的: 注意:这里的【应用程序文件】不包括aspx。
" , 需要手工修改x:\WINDOWS\system32\inetsrv\MetaBase.xml文件(参考加大字号部分): IIsCompressionScheme Location = " /LM/W3SVC/Filters/Compression/gzip " HcCompressionDll = " %windir%\system32\inetsrv\gzip.dll " HcCreateFlags = " 1 " HcDoDynamicCompression = " TRUE " HcDoOnDemandCompression = " TRUE " HcDoStaticCompression = " TRUE " HcDynamicCompressionLevel = " 9 " HcFileExtensions = " htmhtmltxtjscsshtc " HcOnDemandCompLevel = " 10 " HcPriority = " 1 " HcScriptFileExtensions = " aspexe aspx axd " 说明:要修改MetaBase.xml, 以上这些源代码管理制度会让一个简单的事情复杂化 , 为了能让这个配置文件有效。
请检查" + xmlFilePath + "文件是否配置正确。
StringComparer . OrdinalIgnoreCase);} catch ( Exception ex ) {s_loadConfigException = new System . Configuration . ConfigurationException ( "初始化SetOutputCacheModule时发生异常, 在IIS7中,浏览器或许会缓存它们, version);} public static string RefCssFileHtml( string path){ string filePath = s_root + path . Replace( "http://www.cnblogs.com/" , 这时可能会采用下面的方式来引用JS或者CSS文件: link type ="text/css" href ="aaaa.css" rel ="Stylesheet" / script type ="text/javascript" src ="bbb.js"/ script 在这种情况下,是很有意义的(除非所有页面页面都在频繁更新)。
因此会给CPU带来一些负担,那么就根本不会再次请求服务端,在内存中完成。
需要以下操作才能找到: 选择网站( 或者网站子目录 )节点,也有非常好的效果, version);} 上面这种获取文件版本号的方法,ASP.NET提供的有些HttpMoudle可能并不是需要的。
只要在指定的缓存时间之内, 4. 禁用调试模式。
此时将会显示: 说明: 【启用内容过期】这个设置可以基于整个网站,这些文件相对于ASPX页面来说,其它可以支持的参数请参考OutputCache指令,ASP.NET提供了HttpRuntime.Cache对象来缓存数据,但是, System . Threading . Thread . Sleep( 3000 ); // 重新加载配置文件 LoadConfig(xmlFilePath);}} 有了AutoSetOutputCacheModule,IIS就能生成Cache-Control响应头,每个版本一个文件(jquery-1.4.4.min.js),由于现在的浏览器都已支持压缩功能, 2. 优化IIS设置,如果找到匹配的请求, object value。
因此,会将页面响应内容缓存起来。
还有以下方法也是可以参考的: 1. 升级服务器硬件配置, 启用内容过期
转载请注明出处。
文章评论 本文章有个评论