我正在尝试找出将动态加载的 html 存储在 div
中以供用户下次访问的最佳方法。
我已经阅读了一些关于 localStorage
的内容,并可能将此信息字符串化,但是,我对实现不是很清楚。
然而,综上所述,这是我目前正在做的事情以及我想完成的事情。
我正在使用如下代码:
$(function() {
$('.cordpass').click(function() {
var collection = $(this).find('span').load(this.href + ' #cords');
$('#summary').append( $(collection) );
return false;
});
});
这实际上是从另一个页面抓取信息并将其添加到 ID 为 #summary
的 div
中。这可以通过页面上的多个对象来完成(它们都在 map 上)。无论如何,用户可以对各种东西进行排序。这很适合我的需要。但是,我想将 HTML 保存在 #summary
中,以便下次用户访问时,HTML 就在那里。
最好的方法是什么? localStorage
是否适合我,还是我完全误解了它的用途,是否有另一种方法可以存储 HTML 以供下次访问?
最佳答案
我认为如果每个用户的数据不同,您可以将数据存储在 mysql 数据库中。如果数据来自另一个页面,您只需要在数据库中存储到另一个页面的链接,而不是所有数据。
您页面上的每个用户在数据库中都有不同的 ID,因此他们只能看到自己的数据。假设您有某种登录程序。
目前没有足够的信息可以给出更好的答案。
好的,我会添加到这个。您当然可以使用 cookie 在客户端存储信息。当然 cookie 限制为每个 cookie 为 4k。听起来不多,但那是 4000 个字符的文本。就像我说的,您不想对大量文本使用 cookie,但可以存储一些链接和变量。
要设置 cookie,请执行此操作
setcookie($cookiename, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
这是 30 天的有效期,但如果您真的愿意,可以将到期日期设置为无限期。要回应 cookie,请执行此操作
echo $_COOKIE['cookiename'];
您也可以将数组存储在 cookie 中。
$test = array(
0 => array('bill', 'ted'),
1 => array('alpha', 'romeo'),
2 => array('Chad', 'Something')
);
setcookie('names', $test);
但是,如果用户登录,我仍然建议将他们的数据存储在 mysql 数据库中。
可能还有其他方法。请记住,cookie 只存在于打开它们的浏览器中。因此,如果您在一个浏览器中查看页面,然后更换浏览器,cookie 将不会存在。或者如果他们从不同的机器访问。
如果用户有登录名,那么什么机器访问您的页面都没有关系。
关于jquery - 本地存储还是其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39107976/