Html CSS+;Javascript缓存正确;想要阻止全局页面元素重绘

Html CSS+;Javascript缓存正确;想要阻止全局页面元素重绘,html,css,.htaccess,caching,Html,Css,.htaccess,Caching,如果这是一个新手问题,我提前表示歉意。目前,我的主要挫折感/遗忘感来自于对我的特定问题进行搜索时所产生的绝对混乱的性质 我使用各种htaccess规则来确保我的css、css图像和javascript文件正在缓存。基于Firebug网络面板中得到的标题响应,我相信这种方法是有效的 我所追求的是——通过成功的缓存,记住——一种防止全局站点元素(标题、菜单等)在页面之间导航时被重画的方法。这一现象在以下网站上得到了完美的体现: jessicahisch-dot-com也是一个很好的例子 请注意,在

如果这是一个新手问题,我提前表示歉意。目前,我的主要挫折感/遗忘感来自于对我的特定问题进行搜索时所产生的绝对混乱的性质

我使用各种htaccess规则来确保我的css、css图像和javascript文件正在缓存。基于Firebug网络面板中得到的标题响应,我相信这种方法是有效的

我所追求的是——通过成功的缓存,记住——一种防止全局站点元素(标题、菜单等)在页面之间导航时被重画的方法。这一现象在以下网站上得到了完美的体现:

jessicahisch-dot-com也是一个很好的例子

请注意,在从一节到另一节、从一篇文章到另一篇文章、从任何地方到任何地方(使用相同的全局布局)单击时,页面中唯一刷新/重画的部分是该目标页面特有的项目

通常,我会将其归因于浏览器的特殊性(例如,Safari很好地模拟了这种现象,而不管开发人员的实现方法如何,而Firefox似乎不那么宽容),然而,这两个站点在页到页的加载模式上是绝对一致的

在我自己的站点示例中,这是一个垃圾拍摄。当我认为它按我想要的方式工作时,我会得到一个页面重新加载/重画/重建。调查网络面板表明,无论是否加载外部CSS/图像资源,都会发生这种情况

我已经在我的htaccess文件中包含了我正在使用的规则,以供参考

非常感谢您对这个棘手问题的帮助。虽然答案很受欢迎,但即使是关于如何在网上有效搜索这个问题的建议也很受欢迎

#### CACHING ####
# YEAR
<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
# WEEK
<FilesMatch "\.(js|css|pdf|swf)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
# 10 minutes
<FilesMatch "\.(html|htm|txt)$">
Header set Cache-Control "max-age=600"
</FilesMatch>
# DONT CACHE
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header set Cache-Control "private, max-age=0, must-revalidate"
Header set Connection "keep-alive"
# Header set Pragma "cache"
</FilesMatch>

<FilesMatch "\.(ico|pdf|flv|jpg|JPG|jpeg|png|gif|js|css|swf)(\.gz)?$">
Header set Expires "Thu, 15 Apr 2012 20:00:00 GMT"
Header unset ETag
FileETag None
</FilesMatch>

# enable expirations
ExpiresActive On
# expire GIF images after a month in the client's cache
ExpiresByType image/gif A2592000
# HTML documents are good for a week from the
# time they were changed
ExpiresByType text/html M604800 
# expire CSS images after a month in the client's cache
ExpiresByType text/css A2592000

RewriteRule css[\.][0-9]+/(.*)$ css/$1 [L]
缓存#### #年 标题集缓存控制“最大年龄=2592000” #周 标题集缓存控制“最大年龄=604800” #10分钟 标题集缓存控制“最大年龄=600” #不缓存 标头集缓存控制“专用,最大年龄=0,必须重新验证” 标题集连接“保持活动” #标题集杂注“缓存” 标题集过期“2012年4月15日星期四20:00:00 GMT” 标题未设置ETag FileTag无 #启用过期 过期于 #在客户端缓存中过期一个月后GIF图像 ExpiresByType图像/gif A2592000 #HTML文档从一开始就可以使用一周 #他们被改变的时间 ExpiresByType文本/html M604800 #在客户端缓存中一个月后使CSS图像过期 ExpiresByType文本/css A2592000 重写规则css[\.][0-9]+/(.*)$css/$1[L]
我可能误解了这个问题,但假设您网站上的每个页面都作为一个单独的HTML页面,那么每次都会对其上的元素进行重新绘制。(没关系,互联网上几乎每个网站都是这样运作的。)

防止这种情况发生的唯一方法是使用
s,这是一个很大的缺点,这使得人们很难链接到网站中的特定页面,而这正是web的基础


我怀疑在你提到的两个站点上,它们的加载速度太快了,以至于你看不出它们是不同的页面。

Alistappet无疑会在每个页面上重新绘制标题,但是,因为该站点使用CSS布局,并使用图像精灵进行导航,而且通常占用空间非常小

只是因为这个原因,它似乎没有重新绘制


网站表现不佳的原因可能有很多,但最常见的原因是布局中使用了大量元素,例如大量图像。

好吧。所以我觉得我可能已经知道了。多亏了你。我问:

“我的足迹是否像我想象的那样低?”

于是我开始一个接一个地删除我的外部文件。事实上,一块一块。我删除了我的CSS文件,没有改变。我删除了我的JS文件,改变了

因此,我将我的库文件添加回(MooTools),并维护了“持久化”。我在我的一些插件文件(挤压盒等)中添加了一些插件,但仍然看起来不错

然后我又把sifr加进去了。这显然是罪魁祸首

顺便说一句,ALA和Jessicahische不使用此flash文本替换库。这也是有道理的:sifr将类和ID添加到body标记onload中,这……好吧,当你(我)考虑它时,这是一种不需要动脑筋的事情

好了。如果结果证明我错了,我会重新开口的


再次感谢。

非常感谢以上两种回复。我完全同意双方的观点:互联网就是这样运作的。然而,我遇到的问题是,我的客户看到jhische网站的工作方式是一致的,而我对“为什么”没有一个好的答案。如前所述,我正在管理缓存,我的布局是纯css,图形开销很低。所以是的。我没有东西可以试了。不过,再次感谢你的欢迎车,当然。只要看看你的服务器规则,我注意到你没有缓存PHP文件之类的东西。你为他们制作的网站只是静态HTML文件吗?哦,你在使用sIFR?杰索斯,是的,这会让你的网站慢下来。你的sIFR闪存文件有多大?我发现它们的大小通常在50KB左右。