浏览器缓存,可以减少服务器与客户端的交互,减少服务器压力。但有时不需要缓存呢?
如果我动态插入了一个script元素,去请求webwork,即通过<script src=""/>这种方式去请求服务器。但浏览器缓存使我拿不到服务器返回的新的数据。
这里有一种解决方法,是在url参数中添加随机数,如
<script src="$appUrl/probe/probe.jspa?rn="+Math.random()+..."/>
对于其他形式的http请求如asp,
对于Ajax 的请求
但这样会形成一种极端,即每次都必须从服务器去请求数据,即使没有任何更改。所以只有在js或css需要经常变更的情况下使用,且最好对服务器进行压力测试。
可不可以动态来决定请求还是不请求服务器呢?除非判断准则为客户端就可以获取的数据,而不经过服务器
如果我动态插入了一个script元素,去请求webwork,即通过<script src=""/>这种方式去请求服务器。但浏览器缓存使我拿不到服务器返回的新的数据。
这里有一种解决方法,是在url参数中添加随机数,如
<script src="$appUrl/probe/probe.jspa?rn="+Math.random()+..."/>
对于其他形式的http请求如asp,
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"
对于Ajax 的请求
xmlhttp.setRequestHeader("Cache-Control","no-cache");
//或
xmlhttp.setRequestHeader("If-Modified-Since","0");
//或
xmlhttp.Open(url+'?rn='+Math.random(),....)
但这样会形成一种极端,即每次都必须从服务器去请求数据,即使没有任何更改。所以只有在js或css需要经常变更的情况下使用,且最好对服务器进行压力测试。
可不可以动态来决定请求还是不请求服务器呢?除非判断准则为客户端就可以获取的数据,而不经过服务器