【Javascript Day20】

embedded/2025/2/21 5:47:54/

目录

location方法

history对象

表格数据处理

本地存储的使用

模拟登录状态


location方法

 <p id="num"></p>
    <input type="button" value="重载页面" οnclick="reloadPage()">
    <input type="button" value="href跳转" οnclick="gotoPage1()">
    <input type="button" value="replace跳转" οnclick="gotoPage2()">
    <input type="button" value="window.open()跳转" οnclick="gotoPage3()">


    <script>
        var numDom = document.querySelector("#num");
        numDom.innerHTML = Math.random();

        console.log( location );
        
        // location.reload() 页面刷新
        function reloadPage(){
            location.reload();
        }

        // location.assign("网站") 和href功能一致用于页面跳转
        function gotoPage1(){
            // location.href = "https://www.baidu.com";
            location.assign("https://www.baidu.com")
        }

        // location.replace("网站"); 页面切换
        function gotoPage2(){
            location.replace("https://www.baidu.com");
        }

        function gotoPage3(){
            // 在新的页面中打开网站
            window.open("https://www.baidu.com");
        }
    </script>

 // location  记录访问网站的导航信息 => 自动一部分导航的切换方法
        // navigator 提供当前浏览器所运行的系统环境
        console.log( navigator );

        // navigator.userAgent 返回当前网站运行的电脑环境
        console.log( navigator.userAgent );

history对象


<input type="button" value="后退操作" οnclick="backFun()">
    <br>
    <input type="button" value="后退多个操作" οnclick="backFun2()">
    <br>
    <input type="button" value="前进操作" οnclick="forwardFun()">

    <script>
        // history 历史记录对象
        console.log(history);

        // history.back() // 历史后退,后退一个页面
        // history.go(num) // num几个页面 ,num<0
        function backFun(){
            // history.back();
            history.go(-1) // -1 表示后退一个页面 等同于 back()
        }

        function backFun2(){
            history.go(-2); // 后退两个页面
        }

        // history.forward() // 可以完成前进操作的页面一定是被后退的页面
        // history.go(num) // num几个页面 ,num>0
        function forwardFun(){
            // history.forward(); // 表示前进一个页面
            history.go(1); // 1 表示前进一个页面 等同于 forward()
        }
        
    </script>

表格数据处理案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>table{border-collapse: collapse;}td{border: 1px solid black;padding: 4px 10px;}</style>
</head>
<body><table><caption>学生列表(共<span id="num"></span>人)</caption><thead><tr><td>姓名</td><td>科目</td><td>成绩</td><td>操作</td></tr></thead><tbody id="tbody"><!-- <tr><td></td><td></td><td></td><td><a href="javascript:void(0)">删除</a></td></tr> --></tbody></table><!-- <script src="./js/studentData.js"></script> --><script>// 浏览器提供两种数据持久化的存储操作// localStorage 在浏览器中提供空间大小为 20M 字符串存储空间(不同的网站)//              不同域名之间的存储数据是不共享的// 浏览器操作:打开调试工具-应用-本地存储-对应网站-双击添加// JSON字符串://      存储的数据类型是String,但字符串的组成格式是JS的数组或者对象格式//      如果包含对象格式数据,对象属性必须是通过 "" 包裹的//      值如果是字符串格式数据,必须使用 ""// localStorage.getItem(属性名) 读取本地存储的对应数据var students = localStorage.getItem("students");console.log(typeof students,students);// JS提供 JSON.parse(json字符串) 将JSON格式字符串转为JS对应的类型数据students = JSON.parse( students );console.log(typeof students,students);function removeStu(i){// 将js数据进行删除 => 页面重新刷新数据依然存在//                => 将数据 持久化 保持//                => 数据不会因为页面的重新载入,重新访问等操作导致恢复到初始状态//                => 将使用者对数据的各项操作进行永久记录students.splice(i,1);// 基于新的数据再次循环页面initTableData();// localStorage.setItem(属性名,属性值-string) 将数据存储到本地空间的对应属性上// localStorage.setItem("students",students)// JSON.stringify(js数据值) 将JS对象或者数组数据转换为 JSON格式字符串// console.log( JSON.stringify(students) );localStorage.setItem("students", JSON.stringify(students) );}function initTableData(){var tbodyDom = document.querySelector("#tbody");var numDom = document.querySelector("#num");numDom.innerHTML = students.length;var temp = "";for (var i = 0; i < students.length; i++) {var stu = students[i];temp += `<tr><td>${stu.name}</td><td>${stu.subject}</td><td>${stu.souce}</td><td><a href="javascript:void(0)" onclick="removeStu(${i})">删除</a></td></tr>`;}tbodyDom.innerHTML = temp;// var aBtns = tbodyDom.querySelectorAll("a");// for (let i = 0; i < aBtns.length; i++) {//     aBtns[i].onclick = function(){//         // 单独的删除元素,只是页面上的表现上不再显示删除的数据//         // 对于JS存储的变量而言,数据依然存在//         tbodyDom.removeChild( this.parentNode.parentNode );//         students.splice(i,1);//         console.log(aBtns,students);//     }// }}// 页面加载时的初始化数据initTableData();</script>
</body>
</html>

本地存储的使用


<input type="button" value="赋值" οnclick="setLocalValue()">
    <input type="button" value="取值" οnclick="getLocalValue()">
    <input type="button" value="删除" οnclick="removeLocalValue()">
    <input type="button" value="清空" οnclick="clearLocalValue()">

    <script>
        // localStorage 和 sessionStorage 在使用规则和存储规则上基本保持一致
        //     区别1:sessionStorage 存空间理论上限为 5M
        //           localStorage 存储空间理论上限为 20M
        //   !!区别2:localStorage 存储得数据不手动删除,是不会丢失
        //           sessionStorage 对应得会话关闭时,会自动清空所有得数据
        //             会话:当前页面得访问状态

        // localStorage.setItem(key,value)
        // sessionStorage.setItem(key,value)
        function setLocalValue(){
            localStorage.setItem("name","tom");
            sessionStorage.setItem("msg","消息")
        }
        // localStorage.getItem(key)
        // sessionStorage.getItem(key)
        function getLocalValue(){
            var arg = localStorage.getItem("name");
            console.log(arg);
            var arg3 = sessionStorage.getItem("msg");
            console.log(arg3);
            // 如果所取得属性在本地存储中并不存在,返回null
            var arg2 = localStorage.getItem("age");
            console.log(arg2);
            if( arg2===null ){
                console.log("age属性不存在值");
            }
        }
        // localStorage.removeItem(key)
        // sessionStorage.removeItem(key)
        function removeLocalValue(){
            localStorage.removeItem("name")
            sessionStorage.removeItem("msg")
        }
        // localStorage.clear()
        // sessionStorage.clear()
        function clearLocalValue(){
            localStorage.clear();
            sessionStorage.clear();
        }
    </script>

模拟登录状态


<input type="button" value="登录" οnclick="doLogin()">
    <input type="button" value="退出登录" οnclick="loginOut()">
    <h1 id="user"></h1>
    <script>
        // 假设
        // 浏览器存储中如果存在一个 属性名为 token 的值,表示登录,否则表示没有登录
        // 页面首次加载时,先判断是否登录
        var userDom = document.querySelector("#user");

        // var token = localStorage.getItem("token");
        var token = sessionStorage.getItem("token");
        if(token===null){
            userDom.innerHTML = "未登录";
        }else{
            userDom.innerHTML = "已登录";
        }

        function doLogin(){
            // localStorage.setItem( "token",Math.random() );
            sessionStorage.setItem( "token",Math.random() );
            
        }
        function loginOut(){
            // localStorage.removeItem("token");
            sessionStorage.removeItem("token");
        }
    </script>


http://www.ppmy.cn/embedded/163992.html

相关文章

【分布式理论16】分布式调度2:资源划分和调度策略

文章目录 一、资源划分&#xff1a;Linux容器的应用1. LXC 的 Namespace 机制&#xff1a;资源隔离2. LXC 的 CGroup 机制&#xff1a;资源管理 二、任务与资源如何匹配1. 任务队列与资源池2. 资源调度策略 在分布式系统中&#xff0c;资源的有效分配和调度是确保计算任务高效执…

使用Termux将安卓手机变成随身AI服务器(page assist连接)

通过以下方法在安卓手机上运行 Ollama 及大模型&#xff0c;无需 Root 权限&#xff0c;具体方案如下&#xff1a; 通过 Termux 模拟 Linux 环境运行 核心工具&#xff1a; 安装 &#xff08;安卓终端模拟器&#xff09;()]。借助 proot-distro 工具安装 Linux 发行版&#xf…

计算机视觉算法实战——表面缺陷检测(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ 一、领域简介✨✨ 工业表面缺陷检测是智能制造中的核心环节&#xff0c;旨在通过自动化视觉系统替代传统人工质检&#xff0c;快速、精准地识…

Java爬虫获取1688商品搜索API接口的实现指南

在电商数据分析、市场调研以及商品选品等领域&#xff0c;按关键字搜索1688商品并获取相关数据是一项重要的任务。本文将详细介绍如何使用Java爬虫技术&#xff0c;通过1688的API接口按关键字搜索商品&#xff0c;并解析返回的数据。以下是实现的完整步骤和代码示例。 一、前期…

【苍穹外卖】学习

软件开发整体介绍 作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程&#xff0c; 以及软件开发过程中涉及到的岗位角色&#xff0c;角色的分工、职责&#xff0c; 并了解软件开发中涉及到的三种软件环境。那么这一小节&#xff0c;我们将从 软件开发流程、角色…

仿 Sora 之形,借物理模拟之技绘视频之彩

来自麻省理工学院、斯坦福大学、哥伦比亚大学以及康奈尔大学的研究人员携手开源了一款创新的3D交互视频模型——PhysDreamer&#xff08;以下简称“PD”&#xff09;。PD与OpenAI旗下的Sora相似&#xff0c;能够借助物理模拟技术来生成视频&#xff0c;这意味着PD所生成的视频蕴…

网络安全:从攻击到防御的全景解析

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 在互联网高度发达的今天&#xff0c;网络安全已成为影响社会稳定、国家安全和企业发展的关键因素。无论是个人用户的数据…

RNN介绍

RNN&#xff08;循环神经网络&#xff0c;Recurrent Neural Network&#xff09;是一种专门处理序列数据的神经网络架构&#xff0c;在Transformer出现之前曾是处理文本、时间序列等任务的主流模型。它的核心特点是能够通过循环结构保留历史信息。 RNN的核心机制 循环处理&…