‘壹’ 怎么设置css,js文件的缓存时间
无法直接设置,但可变通。
比如调用一个style.css文件,你调用的时候可以在这个文件名后面加上参数,如style.css?date=20131123
date后面的参数值随当前日期发生变化,也就每隔一天要重新读取一次。
不过这个在静态页面时可能要稍麻烦一点了,因为静态页面需要动用js脚 本来动态加载才能实现。
可以试试网络搜 jqury 动态加载css样式表
‘贰’ js中本地存储使用的api
JavaScript 中本亮谈地存储使用的 API 有以下两种:
1. LocalStorage:用于存储数据的接口,可以存储字符串类型的数据。可用来实现类似 cookie 的功能,但相比较而言使用更为方便。LocalStorage 中存州高储的数据会一直保留,直到通过 JavaScript 代码或手动清除浏览器缓存才会被清除。
2. SessionStorage:类似 LocalStorage,但它仅在窗口关闭前有效。与 LocalStorage 不同的是,SessionStorage 的数敬迹碰据会在窗口或标签页关闭后被清除。因此对于短暂的存储需求,SessionStorage 更为适合。
简单的存储可以使用如下代码:
```javascript
// 存储数据到LocalStorage中
localStorage.setItem('name', 'JavaScript');
// 从LocalStorage中获取数据
localStorage.getItem('name');
// 删除LocalStorage中的数据
localStorage.removeItem('name');
// 存储数据到SessionStorage中
sessionStorage.setItem('name', 'JavaScript');
// 从SessionStorage中获取数据
sessionStorage.getItem('name');
// 删除SessionStorage中的数据
sessionStorage.removeItem('name');
```
‘叁’ js cache-control怎么设置
cache-control是用于控制网页的缓存.常见的取值有private、no-cache、max-age、must- revalidate等,默认为private。
cache-control有哪些属性?
其作用根据不同的重新浏览方式分为以下几种情况:cache-control
打开新窗口(_blank)
private、no-cache、must-revalidate 再次访问服务器Cache-control: max-age=5(表示当访问此网页后的5秒内再次访问不 会去服务器)
在地址栏回车值为private或must-revalidate则只有第一次访问时会访问服务器,以后就不再访问。值为no-cache,那么每次都会访问。值为max-age,则在过期之前不会重复访问。
按后退按扭值为private、must-revalidate、max-age,则不会重访问,值为no-cache,则每次都重复访问
按刷新按扭无论为何值,都会重复访问
cache-control在哪里设置
在IIS的网站属性中的http头信息选项卡中,勾选启用内容过期后有三个相关选项.
一、立即过期
启用此选项后,每次请求都会向服务器申请下载最新版本。浏览器不做缓存处理。状态返回码200。Cache信息是:no-cache。这种方式可以保证客户端看到的永远是最新版本,也就是说如果服务器端进行了更新,一定能被客户端看到。
二、此时段后过期与过期时间
这两种情况下,浏览器缓存将其作用。注意,第一次的状态是200,同时cache-control为30天(对应的秒数)。就是说这个网页会有30天的缓存。所以,而后的状态都会是304.
cache-control应该怎么设置更好?
对于图片,css,等长期不变化的内容应该设置较长的过期时间(如180天)
建议:
1.对于js和css可以独立到一个二级域名中,启用GZIP,且设置较长的过期时间
2.对于图片独立到另一个二级域名中,且设置较长的过期时间
对于静态文件(html)如果长期不更新也可以设置稍长的过期时间(如30天),需要根据当前网站的实际而定。
对于动态文件(php)可以设置较短的过期时间(如120秒)
注意:在过期时间内,如果您对文件内容进行了变化,对于用户或蜘蛛都不能浏览或抓取到你更改后的内容。 这也是动态文件设置较短过期时间的主要原因。cache-control的设置只是为了节约搜索引擎蜘蛛资源,让其抓取更多有效内容,千万不能弄巧成拙。
‘肆’ js中如何设置cookie的保存时间呢
varcookie=function(){
//expires参数是Date()实例
varset=function(cookieName,cookieValue,expires,path,domain,secure){
varA=arguments;
varH=arguments.length;
varB=(2<H)?A[2].toGMTString():"";
varG=(3<H)?A[3]:"";
varD=(4<H)?A[4]:"";
varF=(5<H)?A[5]:false;
document.cookie=cookieName+"="+escape(cookieValue)+";expires="+B+";path="+G+";domain="+D+((F==true)?";secure":"")
}
//cname:cookie名称,itemName:该cookie中某一项名称
varget=function(cname,itemName){
varA=document.cookie.match(newRegExp("(^|)"+cname+"=([^;]*)(;|$)"));
if(A){
if(itemName){
A=A[2].match(newRegExp("(?:^|&)"+itemName+"=([^&]*)(?:&|$)"))
returnA?A[1]:"";
}
else{
returnA[2];
}
}
else{
return"";
}
}
return{
set:set,
get:get
}
}();
//使用:
cookie.set("test", "值", new Date(Date.parse('2016-1-1')))
‘伍’ 怎么用js实现把数据存储到本地
可以用localstorge或者是浏览器本地数据库,这对浏览器有要求,低版本的IE是不支持的