使用JavaScript列出待办事项,并使其即使在刷新后仍保留在浏览器上

使用JavaScript列出待办事项,并使其即使在刷新后仍保留在浏览器上,javascript,Javascript,我用JavaScript构建了一个Todolist,它工作正常,但我希望我的Todo项目保留在浏览器上,即使我刷新它,直到我删除它。我能做什么?有两种方法 常见的方法是:启动并运行后端服务,然后将其存储在数据库中,以便随时从任何设备获取 仅浏览器的方法-如果您正在寻找一种足够简单的方法,则可以使用localStorage API并实现localStorage.setItem()、localStorage.getItem()和localStorage.removeItem()方法,以便在用户计算机

我用JavaScript构建了一个Todolist,它工作正常,但我希望我的Todo项目保留在浏览器上,即使我刷新它,直到我删除它。我能做什么?

有两种方法

  • 常见的方法是:启动并运行后端服务,然后将其存储在数据库中,以便随时从任何设备获取

  • 仅浏览器的方法-如果您正在寻找一种足够简单的方法,则可以使用localStorage API并实现localStorage.setItem()、localStorage.getItem()和localStorage.removeItem()方法,以便在用户计算机上本地保存TODO。请注意,此数据可由用户清除


  • 要了解有关何时清除localStorage的更多信息,请参阅此解决方案。此解决方案使用localStorage跨浏览器重新加载来保存数据

    请参阅代码中的注释以获取指导,特别是有关在JavaScript中跟踪数据状态的说明,以及将该状态与UI和持久(存储)数据同步的说明

    限制:

    • 此演示中的“ToDo”项只有一个属性“description”
    • UI仅允许添加项目(通过键入说明和选项卡) 或从输入中单击)
    • 代码在Chrome中正确运行,但由于沙箱的原因,代码未在堆栈溢出代码段中运行
    待办事项 //命名HTML元素,在输入更改时调用'makeAndAddNewItem' 常数 newItemInput=document.getElementById(“newitem”), listDiv=document.getElementById(“列表”); newItemInput.addEventListener(“更改”,makeAndAddNewItem); //'tempList'是一个数组,包含所有列表项, //作为数据状态的真实来源。 //当它改变时,我们应该更新页面和存储的列表 // //在页面加载时,我们从存储器中检索数据并更新页面 const templast=getListFromStorage(); showListOnPage(圣殿骑士); 在页面加载时调用函数getListFromStorage(){// //获取storedList(如果有),将其转换为数组 //并返回数组(或返回空数组) const storedList=localStorage.getItem(“列表”); const list=storedList?JSON.parse(storedList):[]; 退货清单; } 函数showListOnPage(templast){//在页面加载时调用 //循环遍历tempList数组并将每个项添加到页面中 对于(让圣堂武士的当前项){ showItemOnPage(当前项); } } 函数showItemOnPage(item){//用于加载和新项目 //向listDiv追加一个新的'p'元素,其内容 //是项的“description”属性的值 允许 descriptionNode=document.createTextNode(item.description), new段落=document.createElement(“p”); new段落.appendChild(descriptionNode); listDiv.appendChild(新段落); } 函数makeAndAddNewItem(事件){//eventListener用于新项目 //生成一个'newItem'对象,其'description'属性 //来自'newItemInput'元素的值 //将新项目添加到页面和模板列表中 //使用新更改的模板列表替换存储的列表 const newItem={}; newItem.description=newItemInput.value; newItemInput.value=”“;//清除输入 templast.push(newItem);//更新列表 showItemOnPage(newItem);//更新页面 updateLocalStorage(tempList);//更新存储 } 模板列表更改时调用函数updateLocalStorage(){// //将模板列表(数组)转换为字符串以更新localStorage.list const listToStore=JSON.stringify(templast); setItem(“列表”,listToStore); }
    尝试上载您的代码。无论您的应用程序是否连接到任何数据库,请提供更多详细信息。我们可以使用它:window.addEventListener(“load”,function())