1.如何设置JS CSS 图片等静态资源的缓存过期时间?
在header中给静态内容添加一个较长的过期时间,这样可以使用户今后访问只读取缓存中的文件,而不会与服务器产生任何的交互。
不过这样做也存在一些问题,当图片、CSS和js文件更新时,用户如果不刷新浏览器,就无法获得此更新。这样,我们在对图片、css和js文件修改时,必须要进行重命名,才能保证用户访问到最新的内容。
这可能会给开发造成不小的麻烦,因为这些文件可能被站点中的许多文件所引用。flickr提出的解决办法是通过url rewrite使不同版本号的URL事实上指向同一个文件,这是一个聪明的办法,因为url级别的操作效率是很高的,可以给开发过程提供不少便利。
要理解为什么这样做,必须要了解浏览器访问url时的工作机制: a。 第一次访问url时,用户从服务器段获取页面内容,并把相关的文件(images,css,js…)放在高速缓存中,也会把文件头中的expired time,last modified, ETags等相关信息也一同保留下来。
b。 用户重复访问url时,浏览器首先看高速缓存中是否有本站同名的文件,如果有,则检查文件的过期时间;如果尚未过期,则直接从缓存中读取文件,不再访问服务器。
c。 如果缓存中文件的过期时间不存在或已超出,则浏览器会访问服务器获取文件的头信息,检查last modifed和ETags等信息,如果发现本地缓存中的文件在上次访问后没被修改,则使用本地缓存中的文件;如果修改过,则从服务器上获取最新版本。
2.什么是禁止页面加入缓存的JS代码
默认情况下,用户浏览过的页面一般都会加人缓存,即使断网后曲能继续浏览。
本例将学习通过JS代码如何禁止页面加入缓存。 html xmlns= headtitle标题页/titleMETA HTTP-EQUIV=Pragma CONTENT=no-cache/headbodyinput type=text name=txt1 value=this is test!input type=button value=转换文本 onClick=javascript:changeCase(txt1)/body/html。
3.js如何获取缓存
1、创建一个cache.js文件,前端页面,定义那些数据需要一次性拿到前端缓存,定义一个对象来保存这些数据。
2、前端页面,定义一个函数来调用后台接口获取数据,然后保存到本地缓存对象(dicts)中。
3、在主页面加载的时候调用这个方法一次性获取数据并缓存起来。这样,以后需要同样的数据,就直接从本地对象dicts中获取了。
4、后端Controller,定义一个接口,根据前端的请求,查询数据库(或查询服务器缓存,如下面例子中)获取数据返回给前端。
4.JS 或者JQurey如何设置和获取客户端的缓存(可以设置多个值之后
简单点就是存些全局变量
复杂点就是cookie session之类的
存写cookie的代码,,简单版
function SetCookie(name,value){
var liveTime = 24*60*60*1000, exp = new Date(); exp.setTime(exp.getTime() + liveTime);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getCookie(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
function delCookie(name){
var exp = new Date();exp.setTime(exp.getTime() - 1);var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
转载请注明出处JS代码网 » js中的变量能缓存吗