新添加的元素在重新加载页面后消失(jQuery)


newly appended elements disappear after reloading the page (jQuery)

我使用jQuery的.append()在AJAX调用中向success上的ul添加新的li元素。问题是,每当我刷新页面时,新添加的列表项就会消失。

我读到这与刷新原始页面有关,有些选项是使用cookie (PHP或jQuery)。我也看到了一些关于localStorage的东西。我不使用HTML5,如果这很重要。

做这件事最好的方法是什么?如果我使用PHP,我可以在jQuery中嵌入脚本吗?有没有更优雅的方法?

感谢

编辑:包含代码

AJAX

$.ajax ({
type: 'post',
url: '/classes/resources/addResource.php',
data: {
    recName: $('#recName').val(),
    recURL: $('#recURL').val()
},
success: function(data) {
    if (data === 'added') {
        var h3ID = $('#categoryList option:selected').val();
        var title = $('#recName').val();
        var url = $('#recURL').val();
        var newListItem = '<li><a href='"' + url + ''">' + title + '</a></li>';
        $('ul#' + h3ID).append(newListItem);
        $('span#resError').fadeIn(400).text('Resource added successfully. Add another?');
   }
   else
       $('span#resError').fadeIn(400).text('There was an error adding this resource');
   }
});
HTML

<h3 class="category" id="1">
    Category 1
</h3>
<ul id="1">
    <li>List item 1</li>
    <li>List item 2</li>
    <li>List item 3</li>
    <li>List item 4</li>
</ul>

当我添加列表项5等时,我希望这些新列表项在刷新页面时保持不变。

如果您使用ajax/javascript动态构建页面,则需要存储当前状态,以便在重新加载页面时可以完全以相同的方式构建它。

如果构建页面所需的信息存储在客户端,有几种方法可以做到这一点,如会话(服务器端)或cookie/localStorage。

如果你不使用html5,但你正在使用ajax来构建页面,使用会话和做一切服务器端可能是最简单的选择。只需在每次ajax请求时存储页面的当前/更新状态。

另一个需要考虑的问题是信息必须保持多长时间。如果你使用标准的php会话机制,你的会话/状态将很快丢失(大约一个小时没有重新加载/刷新我认为与默认设置)。