12

clear()のすべてを消去するために使用する必要がありますlocalStorageか、それともremoveItem()その特定のサイトに設定したものを手動で削除する必要がありますか(追跡するのに十分簡単です)?

localStorage他の値が設定されている場合、ユーザーを一掃したくないので、私は尋ねます。clear()これをローカルホストでテストしていますが、を使用することで、他のプロジェクトで以前に設定したものがすべて消去されていることに気付きました。

編集:localStorageがドメインロックされていることを知っていることを述べておかなければなりません。私はこの構造に従うサイトを運営しています:

public-html
(localStorage)
--project1
----files
--project2
----files
--project3
----files

各ファイルが独自の個別のlocalStorage変数を使用する場合。project2内にlocalstorage.clear()いると、project1とproject3の設定も失われます。

4

3 に答える 3

12

localstorageはオリジンにキー設定されています。したがって、すべてのプロジェクトがローカルホストで実行されている場合は、を使用するときにすべての値をclear()消去します。安全な方法は、個別に削除することだけです。

実稼働環境では、各プロジェクトに独自のドメインがあり、clear安全である必要があります。

したがって、それは現在の起源に他に何があるかを知ることの問題です。現在の原点ですべてを制御し、すべてを消去してもかまわない場合clear()は、それが最良の選択であり、その目的のために設計されています。ローカルストレージまたは同じオリジンでホストされている他のプロジェクトを使用しているコードの他の部分がある場合は、より選択的に使用する必要がありますremoveItem()

于 2013-03-18T20:48:28.760 に答える
5

clear()現在のオリジンのすべてをクリアします(https://developer.mozilla.org/en-US/docs/JavaScript/Same_origin_policy_for_JavaScript)。example.comで使用clear()しても、example2.comのlocalStorageには影響しません。所有しているすべてのテストファイルが同じオリジン(http://localhostまたはfile:///C:\)にあるため、コンピューター上のすべてのプロジェクトのデータがクリアされます。したがって、使用しても問題ありませんclear()

于 2013-03-18T20:47:58.027 に答える
0

Clear() Method

  1. localStorageからすべてを一掃します
  2. 議論をしない

removeItem()メソッド

  1. 引数として参照するlocalStorageアイテムのみを削除します。
  2. removeItemを機能させるには、引数を渡す必要があります。例えば:

removeItem( "list")は、これのみを削除します"list"キーアイテム

//以下のコードをよりよく理解するため

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button id="clear-method">Clear Method</button>
    <button id="removeItem-method">RemoveItem Method</button>


    <script>
        const clearMethod = document.getElementById("clear-method");
        const removeItemMethod = document.getElementById("removeItem-method");

        // declaring arraay for localStorage
        const computer = [
    {
        Brand: "Asus",
        Model: "Unknown"
    }
];

const phone = [
    {
        Brand: "Realme",
        Model: "Unknown"
    }
]

// setting up items on localStorage
localStorage.setItem("computer", JSON.stringify(computer));
localStorage.setItem("phone", JSON.stringify(phone));

        clearMethod.addEventListener("click", ()=>{
        localStorage.clear();
        })

        removeItemMethod.addEventListener("click", ()=>{
            localStorage.removeItem("phone");
        })
    </script>
   
</body>
</html>

于 2021-08-10T17:15:52.630 に答える