jquery 缓存问题,求解决,谢谢。

首先获取浏览器窗口的宽度,根据这个宽度给div赋值,但是问题是,在线上刷新后每次都要计算宽带并赋值,所以会出现抖动问题我觉得这应该可以用缓存来解决,时间比较紧迫,我现在正... 首先获取浏览器窗口的宽度,根据这个宽度给div赋值,但是问题是,在线上刷新后每次都要计算宽带并赋值,所以会出现抖动问题
我觉得这应该可以用缓存来解决,时间比较紧迫,我现在正在解决,希望有高手帮我解决一下,谢谢了!

function change(){
var wr =$(window).width(); //wr是浏览器的宽
if(wr>0 && wr<1228){
$('div').width('980');
}else if(wr>1228 && wr<1476){
$('.dna_head,#content,#footer').width('1228');
}else if(wr>1476 && wr <1652){
$('div').width('1476');
}else if(wr>1652 && wr <1888){
$('div').width('1652');
}else if(wr>1724){
$('div').width('1724');
}
}
//运行change()赋值
change();
//每次窗口改变大小,运行change()
$(window).resize(function(){
change();
});
展开
 我来答
百度网友dde64d5e7
2012-08-21 · TA获得超过2310个赞
知道小有建树答主
回答量:1430
采纳率:66%
帮助的人:1416万
展开全部
问题出在resize函数上,你可以尝试减缓它的执行次数,就不会那么抖动了:

//...以上接你的代码
change();

var windowTimer = null;
$(window).resize(function(){
clearTimeout(windowTimer);
windowTimer =setTimeout(change,200);

})
更多追问追答
追问
不是的,这个计算量并不是很大,不会因为resize出现抖动; 主要是因为DIV没有宽,加载JS后计算出的宽赋给DIV后,DIV才有的宽,所以出现了抖动 没刷新一次页面的时候执行一次这个函数 所以我的意思是用执行一次后,把DIV的宽缓存起来,就不执行这个函数了(当窗口改变大小的时候再执行)
追答
哦,我明白了,是因为jquery的ready事件触发的比较迟造成的;
你可以试着用原生的方法在head部分就执行这个判断,这样就不会出现抖动了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿刚炖蛋
2012-08-21 · TA获得超过3004个赞
知道大有可为答主
回答量:1789
采纳率:92%
帮助的人:1000万
展开全部
可以参考jquery Cookies操作的内容。

将少量的信息存在客户端,也就是你的这个“宽度”。

当Cookies没有保存这个值的变量时,为其创建一个变量。
刷新操作后,去读取Cookies中该变量的值。
追问
我觉得也是这样,但是不知道具体怎么搞。。能不能写个简单的demo加注释参考一下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式