如何找到该页面第一次加载?

时间:2015-07-30 17:21:53

标签: php wordpress

我需要在页面首次加载php时在div上添加一个类。当类添加时,类在窗口加载函数的jquery中添加,然后页面上有动画。但我需要当用户第一次访问页面时才能看到动画,然后该页面不需要再显示所有动画。是否有任何方式在PHP检查页面是否第一次加载。这是我在jquery中的代码。

 $(window).load(function(){
     $('.header-div').addClass('animation');

 )};

但我想添加动画' php中的类,如果页面首次加载header-div。我试图用session来做它。但每当我刷新页面时,会话ID都会被更改。

    if($postid == 4)
     {
        session_start();
        $_SESSION['id'] = session_id();



     }

3 个答案:

答案 0 :(得分:1)

在客户端,您可以使用sessionStorage查看该网页是否已被访问过。 sessionStorage内置于大多数现代浏览器中,我可以轻松使用:

if (!sessionStorage.getItem('visited')) {
    $('.header-div').addClass('animation');
    sessionStorage.setItem('visited', true);
}

sessionStorage对于您想要执行的操作是一个不错的选择,因为每个域都会存储该值,并且在关闭选项卡时它会自动删除。

我没有使用php一段时间,但我想你也可以在服务器端设置一个会话变量。

答案 1 :(得分:0)

我假设您的意思是您希望动画仅在独特用户第一次访问该页面时显示?在这种情况下,您需要在用户的计算机上保存cookie,并在将动画类添加到标题div之前检查该cookie。

答案 2 :(得分:0)

您不需要每次都设置会话ID。

试试这个:

<?php
session_start();
/*Check to see if $_SESSION['visited'] has already been set during this users visit.
Store the result of that check in to the variable $visited.
*/
$visited = isset($_SESSION['visited']);
/* Set $_SESSION['visited'] so that the above check will return true on future visits. */
$_SESSION['visited'] = true;
/* With the snippet inside the html tag, we're echoing "first-visit" 
as a class name if $visited is equal to false, and echoing 
nothing if it's equal to true. */
?>
<div class="header-div <?=$visited?'':'first-visit'?>">
...
</div>

然后在你的js文件中

$(document).ready(function(){
    $('.first-visit').addClass('animation');
});

对于您的具体情况,您可能需要添加一些逻辑来检查$ postid == 4,如您在问题中所做的那样。