2011-08-03 75 views
0

我有几个相同的js和css文件,我用来从不同的jsps加载。 如果已经加载了css和js,我们不需要再次加载文件。 但这些文件正在重新加载。并在萤幕控制台中提供200个成功代码。 它应该给302成功代码如何避免在jsp中重新加载js和css

我可以直接打网址。我不想动态地调用js和css。

加载jsp内容

css和js通过相对路径加载完成。我无法复制代码。因为它不是在这里让

如果有任何额外的信息需要,请更新

+0

您使用的是什么应用程序和/或Web服务器?这通常是一个简单的配置更改。 (顺便说一句,我认为你的意思是304而不是302) – jkraybill

回答

3

假设你从你的JSP作为静态引用在<script><link>标签引用CSS和JS文件,可以避开场景通过在首次提供HTTP标头时设置HTTP标头,每个请求都会为浏览器提供这些文件。

没有设置适当的到期时间或“新鲜”担保资源,浏览器通常会最终发行对资源的每一次一个新的副本,即使资源可能是在浏览缓存目前。请注意,如果浏览器缓存被禁用,那么作为网络程序员不能做任何关于浏览器行为的事情,除非让用户启用浏览器缓存;在此之前,浏览器将每次请求新的资源副本。这些请求可能由代理缓存提供,但不一定有这样的缓存存在。

  • 配置HTTP服务器或Web应用程序服务器(如果可能的话)来设置Expires和:

    在Java Web应用程序设置资源的到期时间或新鲜度保证可以通过以下来完成Cache-Control为CSS和JS文件或mimetypes生成的HTTP响应中的标头。应该完成的配置更改会因服务器而异,并且过于庞大以便在此处列出。

  • 为您的Web应用程序编写一个Servlet过滤器,该过滤器将拦截以*.js*.css结尾的URL的所有响应,并将HTTP ExpiresCache-Control标题添加到响应中。如果您希望具有Web和应用程序服务器提供的相同数量的可配置性,则此选项不太可取;您需要通过web.xml文件中过滤器的初始参数提供任何配置选项。另外,对配置的更改将需要重新启动包含过滤器的应用程序。

如果您需要了解的ExpiresCache-Control头中指定的值,那么我建议你阅读"Caching Tutorial for Web Authors and Webmasters",它提供了有关如何使用ExpiresCache-Control页眉细节以及它们如何影响缓存行为。

Expires头或Cache-Control头的max-age值,范围从几分钟到几个小时,这取决于你如何经常改变网站内容中规定的到期时间的建议值。您还必须避免指定Cache-Control标头,其值为no-cacheno-store,因为它们通常最终会在下次尝试时发出对相同资源的请求。

相关问题