如何找到第一次加载的页面


How to find that page is loading first time?

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

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

但是我想在php中添加'animation'类,如果页面第一次在header-div上加载。我试着用session来做。但每次当我刷新页面会话id改变。

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

     }

在客户端,您可以使用sessionStorage来查看页面是否已被访问。sessionStorage是内置在大多数现代浏览器,我可以很容易地使用:

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

sessionStorage是你想做的一个很好的选择,因为值将被存储在每个域,它将被自动删除时,标签将被关闭。

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

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

您不需要每次都设置会话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是否首先,就像您在问题中所做的那样。