如何让js在页面加载后只执行一次,也就是再次刷新当前页,不再执行js

JavaScript04

如何让js在页面加载后只执行一次,也就是再次刷新当前页,不再执行js,第1张

你的意思是刷新页面也不再执行的意思吧。

如果是这个意思,给你个思路:你需要利用cookie在客户端写一个数据,然后页面执行js之前,检查cookie中的数据是否存在,如果存在就不执行,如果没有cookie中的数据,就执行该操作。

js是每次页面加载都会被加载的。因为js是页面的一部分,但是是否执行相应的命令,才是最终显示在客户端的样子。

js页面刷新

让页面进行刷新,可以使用 location.reload() 方法,但是这种方法会让页面一直不断的刷新。

这是因为当页面加载完成以后,我们让它刷新一次,那么浏览器就会重新向服务器请求数据,界面会重新加载,然后,加载完成又调用了location.reload()方法,这样就陷入了死循环,一直处于请求然后刷新的状态。

为了解决这样的问题,我们使用下面这种方式:

利用以上方法,在每次进入这个页面的时候,都会绕过浏览器缓存,重新向服务器获取数据。

3种方法:

1、写cookie,用户第一次访问时弹出a.html(即没有cookie或过期),同时写入一个cookie,过期时间为1天,1天内判断有改cookie时弹出b.html;

2、写localStroage,方式如上;

3、针对ip或uid记录到后端数据库;

1优点是方便,缺点是手动清空cookie或浏览器关闭后自动清空会导致失效;

2优点是不易清除(至少对于普通用户来说),缺点是针对ie要写userStroage方法;

3优点不能清除,缺点只能针对ip或uid记录,需要后端支持