2016-08-01 66 views
0

假設我有以下情況。 我有一頁完整的帖子。對於每篇文章,我都有一個按鈕,通過ajax請求向模型的點變量添加一個點。我希望用戶點擊該按鈕,添加點,使用jQuery從DOM中刪除按鈕,並在整個會話期間保持該刪除。所以刷新不會使按鈕重新出現。一次單擊並刪除按鈕狀態持久性

我的問題是最後一部分,使該按鈕'保持刪除'。我知道HTTP是無狀態的,我必須保持狀態,所以我想過在數據庫中添加一個字段,使用localstorage/localsession或django會話。

哪種方法最合適?有其他方法嗎?

謝謝你的時間,請告訴我,如果我可能錯過了任何類似的問題,我會立即刪除這一個。

+0

這個問題有點含糊。有幾乎無限的方式來保存視圖狀態 – stackoverfloweth

+0

是的,@godmode說的是什麼。就目前來看,這個問題是無法回答的,因爲它既是基於意見的,也是過於寬泛的。請看[如何提問](http://stackoverflow.com/help/how-to-ask) – Ares

+0

如果你正在存儲的是一個按鈕是否已被點擊,因此不應該在我將使用'JSON.stringify'和對象並將其存儲在'sessionStorage'中。然後在頁面加載'JSON.parse(sessionStorage.viewState)' – stackoverfloweth

回答

0

這裏有一個選項,但我並不認爲它是最好的!

使用JavaScript庫simplestorage爲跨瀏覽器兼容:https://github.com/andris9/simpleStorage

給每個按鈕的唯一ID和同一類,例如:

<button id="points_123" class="add_points">Add Point</button> 

然後,在JavaScript: //使按鍵記錄點擊 $( 「add_points 」)。在(「 點擊」,函數(){

 simpleStorage.set(this.id, 1); 

    }); 

    // when loading page, hide buttons already clicked 
    // (even to hide everything by default and then show ones not clicked) 
    $(".add_points").each(function() { 
     var clicked = simpleStorage.get(this.id); 
     if (clicked > 0) { 
     $(this).hide(); 
     } 

    }); 

小提琴這裏:https://jsfiddle.net/phoebebright/73bv7b6r/

+0

謝謝你的回答!這是我選擇的方法,除了默認隱藏所有內容,然後顯示未點擊的按鈕。 –