草庐IT

javascript - cookies 的替代品

coder 2024-05-18 原文

我构建了可移植的 HTML/Javscript 原型(prototype),旨在将其压缩并通过电子邮件/sharepoint 共享。这里的关键词是“便携”——运行这些原型(prototype)不需要服务器——只需要一个支持 javascript 的浏览器。而且没有数据库。

一些原型(prototype)要求我保留数据(只是为了展示潜在的功能)。我目前通过使用 cookie 来做到这一点。这似乎适用于 Firefox、Chrome 等,但 Internet Explorer 的工作方式似乎有所不同。

一旦在 IE6 和 7(我还没有测试过 8)中来自域的所有 cookie 的最大大小达到 4096 字节,cookie 就会停止工作。一旦达到这个限制,那么即使从 cookie 中读取数据似乎也会停止,原型(prototype)就会崩溃。

有没有其他方法可以在不使用服务器和数据库的情况下持久保存数据?

任何想法将不胜感激。

最佳答案

将数据存储在一个隐藏字段中(如果需要,甚至可以存储多个)。

将您用来从 cookie 中读取的代码包装到一个单独文件中的类/函数中,然后您可以轻松地将这些文件换成实时/示例实例——可能就像注释掉一行一样容易,并且取消注释掉另一个。

因评论请求而编辑: 这将适用于多个页面,前提是您将隐藏字段中的数据推送到多个页面。如果您不想从一个页面到下一个页面执行 POSTS,那么您可以将页面包装到一个框架中,然后将隐藏字段放置在一个不显示的框架元素中(在这种情况下,字段在技术上不需要隐藏)。

这是什么,被访问的页面有一个 FRAME 标签,指向两个不同的页面。第一页是您的应用程序本身,它占据了所有可见的空间。第二页只是一个页面,它将包含一个或多个控件,这些控件将保留数据,而第二页(对用户)根本不可见。由于这些页面都是同一个“域”的一部分,因此框架子级与其 sibling 之一交谈并将数据读/写到隐藏页面的字段是一件容易的事情。

绕过 cookie 限制的方法是文本输入字段在技术上仅受计算机内存和网络吞吐量超时的限制。例如,我以前见过一个包含 20MB 数据的隐藏字段(想想最邪恶的 ViewStates)。

关于javascript - cookies 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2000377/

有关javascript - cookies 的替代品的更多相关文章

  1. ruby - 在 jRuby 中使用 'fork' 生成进程的替代方案? - 2

    在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',

  2. ruby-on-rails - 更好的替代方法 try( :output). try( :data). try( :name)? - 2

    “输出”是一个序列化的OpenStruct。定义标题try(:output).try(:data).try(:title)结束什么会更好?:) 最佳答案 或者只是这样:deftitleoutput.data.titlerescuenilend 关于ruby-on-rails-更好的替代方法try(:output).try(:data).try(:name)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

  3. ruby-on-rails - Rails Cookie 问题 - 2

    我在ruby​​onrails应用程序中有以下新方法:defnewifcookies[:owner].empty?cookies[:owner]=SecureRandom.hexend@movie=Movie.new@movie.owner=cookies[:owner]end基本上,每个新用户都应该获得一个代码来识别他们(尽管只是通过cookie)。因此,当用户创建电影时,创建的cookie将存储在owner字段中。所以有两个问题:使用.empty?方法,当我从浏览器中删除cookie时,返回一个undefinedmethodempty?'对于nil:NilClass`当我确实已经在

  4. ruby-on-rails - 使用 javascript 更改数据方法不会更改 ajax 调用用户的什么方法? - 2

    我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的

  5. ruby - 允许主机名包含下划线的 URI.parse 的替代方法 - 2

    我正在使用DMOZ的listofurltopics,其中包含一些具有包含下划线的主机名的url。例如:608609TheOuterHeaven610InformationandimagegalleryofMcFarlane'sactionfiguresforTrigun,Akira,TenchiMuyoandotherJapaneseSci-Fianimations.611Top/Arts/Animation/Anime/Collectibles/Models_and_Figures/Action_Figures612虽然此url可以在网络浏览器中使用(或者至少在我的浏览器中可以使用:

  6. ruby - Controller 中的 request.cookies 和 cookies 有什么区别? - 2

    request.cookies和RubyonRails中的cookies对象有区别吗?我目前正在尝试将带有cookie的请求从我的node.js服务器发送到我的ROR4应用程序。似乎在ROR应用程序中,request.cookies包含我发送的cookie,但是cookies对象(现有逻辑所基于的对象)没有它。我已经搜索了文档,但找不到任何相关内容。我错过了什么吗?感谢您的帮助。 最佳答案 理想情况下,request.cookies和cookies应该相同。但是,在POST(创建操作)请求中,rails会验证XSRFtoken。如果

  7. ruby - 如何打印出 Mechanized 存储的 cookie? - 2

    我正在使用mechanize登录网站,然后检索页面。我遇到了一些问题,我怀疑这是由于cookie中的某些值造成的。当Mechanize登录网站时,我假设它存储了cookie。如何通过Mechanize打印出存储在cookie中的所有数据? 最佳答案 代理有一个cookie方法。agent=Mechanize.newpage=agent.get("http://www.google.com/")agent.cookiesagent.cookies.to_scookie返回一个Mechanize::Cookiesobject

  8. ruby - 在 Mechanize 中使用 JavaScript 单击链接 - 2

    我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan

  9. ruby-on-rails - jRails 替代品 - 2

    你知道jrails的替代品吗?它或多或少已经过时(使用jQuery1.5-现在1.7是当前版本)。有人知道替代方案吗?谢谢编辑:我知道如何使用jqueryallone构建rails助手-但我喜欢rails助手,所以我不想单独使用jquery(没有jrails) 最佳答案 我一直在Rails中使用Prototype助手,最近我决定转而使用JQuery。起初我查看了JRails,因为它是一个直接替代品,因此需要最少的工作。但是!在阅读了更多关于JQuery的信息并尝试使用它之后,我逐渐明白,结合使用Rails和JQuery的最佳方式就是

  10. javascript - jQuery 的 jquery-1.10.2.min.map 正在触发 404(未找到) - 2

    我看到有关未找到文件min.map的错误消息:GETjQuery'sjquery-1.10.2.min.mapistriggeringa404(NotFound)截图这是从哪里来的? 最佳答案 如果ChromeDevTools报告.map文件的404(可能是jquery-1.10.2.min.map、jquery.min.map或jquery-2.0.3.min.map,但任何事情都可能发生)首先要知道的是,这仅在使用DevTools时才会请求。您的用户不会遇到此404。现在您可以修复此问题或禁用sourcemap功能。修复:获取文

随机推荐