将 html 保存在 cookie 中

Posted

技术标签:

【中文标题】将 html 保存在 cookie 中【英文标题】:Save html in cookie 【发布时间】:2011-08-25 13:09:15 【问题描述】:

我正在使用 jquery 克隆一些 html 并将其附加到一个 div 中。

我的问题是刷新页面时这个html会被删除。问题是如何将附加的 HTML 保存在 div 中(html 代码将包含一些输入和选择列表,并且会有大量代码)。

我应该调查什么?

饼干?

HTML5?

还有什么?

【问题讨论】:

为了提供最佳解决方案,您能否提供一个用例说明您为什么要这样做? 例如,如果您想使用静态 HTML 和 javascript 构建一个非常简单灵活的购物车:D 【参考方案1】:

使用大量 jquery 存储插件之一。他们中的许多人使用 html5 存储,但如果浏览器中不支持 html5 存储,它将使用其他技术。例如使用JQUERY STORAGE 插件,您可以通过这种方式保存数据:

$.Storage.set("name", "value");

并以这种方式恢复它:

$.Storage.get("name");

如果您要将代码附加到另一个元素,我建议您也保存要附加到存储中的相同数据,而不是从文档中选择并获取它(这会更快一些)。

【讨论】:

【参考方案2】:

Hakan,ajax 调用将使您的整页缓存无用(或至少不太有用),因为您的服务器将再次为每个请求加载 php+apache/nginx,因此您几乎不会获得任何性能,或者至少不会获得任何性能不像完全完整的页面缓存那么大。我们计划做一个完整的缓存解决方案,起初我们考虑使用 cookie 和 session 来处理购物车,询问客户端是否支持 cookie 并降级到 Ajax 调用。 告诉我你是否最终找到了解决方案。我打算使用 nginx 和 memcache 进行全页缓存,使用 php + apc + apache + mod_sitespeed 进行后端请求

【讨论】:

【参考方案3】:

绝对不要尝试将 HTML 存储在 cookie 中...单独的大小限制 1 不会使它成为一个好的选择。但是,您可能希望在 cookie 中保存一个“标志”,当页面重新呈现时,触发 HTML 代码的重新插入(通过重新调用第一次添加它的函数,或者通过将其拉入通过 AJAX。)

但是,我建议您在用户将内容附加到页面时对服务器进行 AJAX 回调。此调用将更新服务器上的对象/数据库,以便在重新加载页面时返回完整内容,包括用户动态添加的部分。

RFC 2109

[1] RFC 2109 - section 6.3 (on HTTP Cookies)
    4096 bytes per cookie
    20 cookies per unique host or domain name

【讨论】:

感谢您阻止我尝试将 HTMl 存储在 cookie 中。如果 HTML5 不适合我的目的,我将尝试 Ajax 调用 :)【参考方案4】:

你可以试试这个功能

<php
function getVar($name, $def = '') 
  if (isset($_REQUEST[$name]))
    return $_REQUEST[$name];
  else 
    return $def;



// check if overrides passed
$efind = getVar('q', '');
?>

这个输入标签的例子

<input type="text" name="q"  onFocus="this.value=''" onBlur="if(this.value == '')this.value ='<?php echo htmlentities($efind); ?>'" value="<?php echo htmlentities($efind); ?>" />

如有错误请指正

【讨论】:

【参考方案5】:

如果您只想支持现代浏览器,我会选择 HTML5 的离线存储。

另一种方法是获取 AJAX 路由。

您不想为此使用 cookie,因为:

cookie 会在每次请求时加载

cookies 只能保存有限数量的信息。

【讨论】:

嗨 PeeHaa,“HTML5 的离线存储”听起来很有趣。我会调查那个!除了 Google.com 之外,关于从哪里开始阅读的任何建议? 很多很好的资源@谷歌搜索,也在这里。 bogotobogo.com/HTML5/HTML5_Tutorial_Offline_Storage.html 在这里找到我需要的东西net.tutsplus.com/tutorials/html-css-techniques/… @PeeHaa 你是什么意思“cookies get in each request”? 如果域设置了 cookie,它将在每个后续请求中发送。

以上是关于将 html 保存在 cookie 中的主要内容,如果未能解决你的问题,请参考以下文章

python爬虫之模拟登录将cookie保存到代码中

问题:将每次输入的信息保存在cookie中,再从cokie中取出值并显示在下拉框中。急需如何保存在cookie中...

C#中如何保存cookie到本地

python爬虫之Cookie

将凭据/令牌保存在 cookie 中?

如何使用jquery将数据保存在cookie中[重复]