2011-12-31 14 views
4

私はいくつか持っていますlocalStorageカート、閲覧済み、ごみ箱などのキーです。どうすれば最もパフォーマンスの方法でのlocalStorageでアイテムのIDのいえループ、およびIDがすでに存在する場合は、一致したDOM要素にクラスまたはデータ属性が追加される場合があります)LocalStorage、一致するIDをループしてDOMから取り除く

1:

質問は2倍です。

2)3 localStorage Keys(ゴミ箱、カート、閲覧済み)から最後の20個のアイテムの個別リストを作成するにはどうすればよいですか?パフォーマンスの観点からは、私の質問のpt1と同じループ関数でこれを行うのが最善でしょう(つまり、IDが存在するかどうかをテストし、真の場合はクラスを追加します)。

これは私が持っているものです。

HTML

<article data-id="548" data-date="Mon Dec 19 09:12:57"> <h1><a href="#">Title</a></h1> // section // footer <a href="#" data-context="trash">trash</a> </article>

jQueryの

$tools.on("click", "a", function(e){ 
     var storeId = $(this).attr('data-context');   
     var selector = $(this).closest('article'); 
     var dataId = selector.attr('data-id'); 
     var pubDate = selector.attr('data-date'); 
     var postUrl = selector.find('a', 'h1').attr('href'); 
     var postTitle = selector.find('h1').text(); 
     var $removable = $container.find(selector); 
     setLocalStorage(storeId, dataId, postUrl, postTitle, pubDate); 
     if (storeId == "Trash") { 
        $container.isotope('remove', $removable); 
     }; 
     e.preventDefault(); 
    }); 

セッター機能。

data-context="Trash"(キー)とdata-id="001"(id)などの変数が渡され、関連するキーに格納されます。

function setLocalStorage(itemKey, dataId, postUrl, postTitle, postPub) { 
     var ItemKey = itemKey; 
     var timeStamp = new Date(); 
     var json = JSON.parse(localStorage.getItem(ItemKey)); 
     if(json == null) 
     json = []; 
     json.push({id:dataId,title:postTitle,url:postUrl,postPub:postPub,dataTimeStamp:timeStamp}); 
     // save the result array 
     sessionStorage.setItem(ItemKey, JSON.stringify(json)) 

     // Notify user item added to Cart 
     updateNotifications(ItemKey, json); 
    } 

のlocalStorageはこのように終わる:Trash [{"id":"418","title":"\n\t\t\t\t\t\t\t\t\tPost Title....//..."}]

ここにすべてのヘルプは非常に高く評価されるだろう。

新年あけましておめでとうございます!

乾杯 ベン

答えて

0

ストアキーで単一のオブジェクト。その後、そのオブジェクトを解析してから作業します。

var mysite = $.parseJSON(localStorage['mysite']); 

あなたが状態を変更し、状態値を表すオブジェクトを無効に続い例えば

{ 
    cart:[idA,idB], 
    viewed:[idZ,idX], 
    trashed:[id1,id2] 
} 

(IDSベクトルのアレイ内のすべての状態を記憶することがあります。イムないあなたが達成しようとしているか確認してください表示されたアイテムは折りたたみの下にあるdivに移動し、ゴミ箱やカートのアイテムは隠されたdivに移動し、それぞれのアイコンは適切な数で更新されます。

これらのアイテムが保存されている場合あなたのDBでは、しかしgeneratではないあなたが必要とするときに取得されたオブジェクトからあなたの状態を生成し、与えられたIDのためにアイテムデータをリクエストすることができるすべてのページでedを実行します。

おそらく、あなたはこのデータベースをどこかに保存していないので、このデータをすべてローカルに保存したいと思うかもしれません。

関連する問題