js定时器 缓存

256 阅读1分钟

定时器

    <!-- <button onclick="clearfn()">清除定时器</button> -->
    <div id="guangao" style="display:block;width: 200px;height: 200px;background-color: aqua;">
        <h1>广告</h1>
    </div>
    <script>
        /* 过3秒钟  把这个广告显示出来 */
        /* document.getElementById('guangao').style.display = 'block' */
        // setTimeout(function(){
        //     document.getElementById('guangao').style.display = 'none' 
        // },3000)

        /* 过个一段时间去做一件事 */
        /* 定时器 */
        /* 定时器会返回一个唯一的id */
        // let id = setInterval(function(){
        //     console.log('我爱js<br>');
        //     console.log(id);
        // },1000)

        // /* 根据定时器返回的唯一的id 来清除定时器 */
        // function clearfn(){
        //     clearInterval(id)
        // }


        /* 过一秒钟 在控制台上打印出 一个数字 比如1
        再过一秒钟 打印出2 ....
        点击清除定时器 终止打印 */


        // let i = 0;

        // let id = setInterval(function () {
        //     i++;
        //     console.log(i);
        // }, 1000)

        // function clearfn() {
        //     clearInterval(id)
        // }

        /*  setTimeout 和 setInterval的区别是
        setTimeout只执行一次 */
        /* 也会产生一个唯一的id标识 */
        /* let id = setTimeout(function (){
            console.log('我说冷笑话');
        },1000) */
    </script>
</body>

缓存

    <!-- <button onclick="fn1()">设置sessionStorage</button>
    <button onclick="fn2()">显示sessionStorage中name的值</button> -->
    <button onclick="fn1()">设置localStorage</button>
    <button onclick="fn2()">显示localStorage的值</button>
    <script>
        /* sessionStorage 存储之后 页面刷新 缓存的值不会消失
        但是 把tab页 或者叫 会话 关闭之后,缓存的值就不存在了 */
        // function fn1(){
        //     /* setItem设置 存储 */
        //     /* sessionStorage.setItem('name','zhangsan') */
        //     sessionStorage.name = 'zhangsan';
        // }
        // function fn2(){
        //     /* getItem获取 */
        //     // let v = sessionStorage.getItem('name');
        //     // document.write(v);
        //     document.write(sessionStorage.name);
        // }

        /* 设置和取值 使用两种方式都试一下 */
        /* 点击按钮 设置一个学生信息  学号 stuNo  语文成绩 chinese
        存到sessionStorage缓存中,再点击按钮 可以在页面显示出学生的学号 
        和语文成绩 ,最后把tab关闭,再次打开页面看值之后还存在 */

        // function fn1(){
        //     // sessionStorage.stuNo = '1908'
        //     // sessionStorage.chinese = '90'
        //     sessionStorage.setItem('stuNo','1099')
        //     sessionStorage.setItem('chinese','80')
        // }
        // function fn2(){
        //     // document.write(sessionStorage.stuNo);
        //     // document.write(sessionStorage.chinese);
        //     document.write(sessionStorage.getItem('stuNo'));
        //     document.write(sessionStorage.getItem('chinese'));
        // }

        /* localStorage会一致存储在本地,会话或者tab页关闭也不会消失  */
        /* localStorage是和地址有关系的,地址改变了,localStorage里面的值就不存在了
        前面地址没有发生改变的话,localStorage依然存在 ,虽然页面改变了*/
        function fn1(){
           /* localStorage.setItem('car','bmw')   */
           localStorage.car = 'bc'
        }
        function fn2(){
            /* document.write(localStorage.getItem('car'));  */
            document.write(localStorage.car);
        }


        /* 在页面A 本地存储 一个username 到本地 使用两种方式 存储 
        再新建一个页面B 在A页面中点击一个a 链接 跳转到 B页面 
        ,看能否取到username 取值也使用两种方式
        都在本地打开 使用 open in default brower */
    </script>

A页面

    <button onclick="fn()">本地存储</button>
    <!-- <a href="B.html" target="_blank"> 跳转B页面</a> -->
    <script>
        function fn(){
            /* localStorage.username = 'admin' */
            /* localStorage.setItem('username','admin') */
            /*  localStorage 或者 sessionStorage 
            存的内容都是字符串类型*/
            let obj1 = {
                name:"zhangsan",
                age:20
            }
            /* JSON.stringify 把对象转成字符串类型 */
            let s = JSON.stringify(obj1);
            localStorage.s = s;

            /* ./B.html B.html 相对路径 */
            /* 绝对路径 file:///C:/Users/ZhangSir/Desktop/js%E4%B8%AD%E7%9A%84bom%E5%92%8Cdom/B.html */
            /* 跳转到指定的路径 跳转后 再历史记录 还存在之前的地址 所以可以返回 */
            // location.href="file:///C:/Users/ZhangSir/Desktop/js%E4%B8%AD%E7%9A%84bom%E5%92%8Cdom/B.html"
            /* 用新的路径来替换当前的路径 replace代表替换,把会历史记录里面的地址也替换了,所以没有返回功能 */
            // location.replace('B.html') 

            /* window.open 会打开一个新的tab页 不会关闭之前的tab页 默认是 _blank*/
            // open('B.html','_blank')
            /* 和location.href功能一样 在原来的tab页上打开 */
            sessionStorage.a = 1
            sessionStorage.b = 2
            open('B.html','_self')



            /* A存取一个学生对象 name stuNo
            B 显示出 学生对象 姓名 和 学号*/
        }
    </script>

B页面

    <button onclick="clearOne()">清除username</button>
    <button onclick="clearAll()">清除全部</button>
    <script>
        // document.write(localStorage.username);
        // document.write(localStorage.getItem('username'));
        // document.write(localStorage.obj.name);
       /*  document.write(localStorage.flag == 'true'); */

       /* 再把字符串转成对象 */
       let objs = JSON.parse(localStorage.s)
       document.write(objs.name);
       document.write(objs.age);

       function clearOne(){
           /* 清除指定的一项 */
           sessionStorage.removeItem('a')
       }
       function clearAll(){
           /* 全部清除 */
           sessionStorage.clear();
       }
       /* 在sessionStorage 设置多个值 写两个按钮 删除其中的一项
       和删除全部  */
    </script>
</body>