2016-08-01 82 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

谢谢你的回答!这是我选择的方法,除了默认隐藏所有内容,然后显示未点击的按钮。 –