JS库,具有序列化/重新水合元素状态的能力

时间:2011-10-20 17:21:01

标签: javascript asp.net

我正在寻找能够在下一页视图上序列化/重新水合元素或UI组件的组件/框架。类似于$.serialize()的东西,但是对于元素的属性(例如:visibility,width,top,left)。

jQuery中的所有功能都是手动完成的,但我正在寻找一个框架,它比我迄今为止更好地探索了这个功能的问题/缺陷。

服务器端我使用的是asp.net,但它确实是我正在寻找的客户端功能。我希望实际状态在cookie中持久存在,或者在服务器上持久存在。

我意识到我正在寻找的功能是在Web部件中实现的。我希望得到一个轻量级的框架。我对投资网页零件并不太兴奋。

我想要实现的一个例子: 我想创建一个包含5到10个div的页面,以网格实时方式布局。类似仪表板的UI。有一个默认布局,但用户可以隐藏一些区域&扩展其他人以获得他们关心的数据的最佳视图。除了div之外,还有其他小部件:标签,手风琴等。它们不需要,但我们假设UI由jQuery UI提供支持。用户下次登录时,我应该能够恢复用户的页面状态。

在开始使用自定义功能之前,我想确保我不会重新构建一个轮子。

3 个答案:

答案 0 :(得分:2)

您可能希望查看knockout.js,这是一个模型 - 视图模型javascript框架。

它处理诸如将DOM元素属性同步到模型之类的事情。

以下是主页:http://knockoutjs.com/

它具有通过JSON加载和保存的指导:http://knockoutjs.com/documentation/json-data.html

然而,我建议首先进行交互式教程,因为它确实展示了它的强大功能,并将帮助您收集它是否适合您的问题:http://learn.knockoutjs.com/

答案 1 :(得分:0)

或者您可以在数据库中保存状态,以便将其存储在用户会话中,或者您可以创建一些客户端代码,用于在客户端计算机上的cookie中存储状态

这是第二个选项的类似示例,用于将其存储在cookie中

Jquery - save class state for multiple div #'s to a cookie?

以及帖子提供的代码:http://pastebin.me/d99bd40618a7b9e2bd88c40cee777f5f

答案 2 :(得分:0)

检查PersistJS库 http://pablotron.org/?cid=1557

它有很多功能

它目前通过以下后端支持持久客户端存储:

  1. flash:Flash 8持久存储。
  2. 齿轮:基于Google Gears的持久存储。
  3. localstorage:HTML5草稿存储。
  4. whatwg_db:HTML5草案数据库存储。
  5. globalstorage:HTML5草稿存储(旧规范)。
  6. ie:Internet Explorer用户数据行为。
  7. cookie:基于Cookie的持久存储。

    • globalStorage:Firefox 2.0 +,Internet Explorer 8
    • localStorage:开发WebKit
    • openDatabase:Safari 3.1 +
    • userdata行为:Internet Explorer 5.5 +