了解cookie(使用jquery cookie插件。)

时间:2012-02-15 14:57:31

标签: javascript jquery cookies

我正在开发一个项目,该项目有一个Flash视频,一旦加载到页面上就会自动播放。我的客户希望它只在第一次有人访问该页面时自动播放。随后的访问(在同一会话中)将加载视频,但保持暂停状态。

Flash视频有一个JS功能,我可以调用它来暂停或播放视频。所以我的想法是在用户访问该页面后设置一个cookie,并让它在随后的访问中触发回调。

//wait until everything has loaded
$(window).load(function(){

    //set a cookie 
    $.cookie('welcome_cookie', 'welcome');

    //check for the cookie and call the pause function
    if($.cookie('welcome_cookie')){
        controlPlayback('pause');
    }
});

这样可行,但它会在第一次暂停视频...如何才能使回放功能仅在返回此页面时触发?

2 个答案:

答案 0 :(得分:4)

只需在第一次检查后切换顺序设置cookie;

//wait until everything has loaded
$(window).load(function(){

    //check for the cookie and call the pause function
    if($.cookie('welcome_cookie')){
        controlPlayback('pause');
    }

    //set a cookie 
    $.cookie('welcome_cookie', 'welcome');
});

您可能不必在每个页面加载时设置cookie,所以为什么不设置cookie,如果没有设置;

//check for the cookie and call the pause function
if($.cookie('welcome_cookie')){
    //pause video player
    controlPlayback('pause');
} else {
  //set a cookie 
  $.cookie('welcome_cookie', 'welcome');
}

答案 1 :(得分:2)

为什么你需要一个cookie,cookie分别在每个请求和响应时传入和传出服务器。因此,您要在服务器上发送您真正不需要的数据。你真正需要的是本地存储。

$(window).load(function(){

    //If not first visit then pause
    if(localStorage['not_first_visit']){
        controlPlayback('pause');
    }

    //Set  
    localStorage('not_first_visit')=true;
});