帮助解决Seaside-App(需要模板或最小例子)

我在麻烦我们新的Seaside-App时遇到了麻烦。该应用程序的目标是在级联视图中显示合同数据(在概念中像树,但在视觉上只是组件内部的组件):在顶层,合同的名称,点击它们显示所谓的“集合”这些合同包含,点击那些显示它们包含的所谓“部分”等等。 在草稿版本中,我们只是将所有信息加载到客户端,然后使用:
renderContentOn: html
....
html div 
    onClick: (html scriptaculous effect id: tmpid; toggleAppear);
    onClick: (html scriptaculous request callback: [visible:=self visible not]);
with: ...
成功地融合和混合各个级别的子组件。 将所有信息加载到客户端仅用于草稿版本;对于下一个版本,我们希望仅动态加载用户想要扩展的分支。我们知道如何根据Seaside-Book执行此操作,并执行以下操作以使客户端正确更新:
onClick: (html jQuery ajax script: [:s| 
    s << (s jQuery: tmpid) append: ...
但是:我们无法保持客户端状态和服务器状态正确:我们希望保持树的部分状态(对于树中的每个节点都未加载/展开/折叠),即使用户使用html- form-inputs(见图)改变树的内容。如果连接暂时不可用,我们还希望保持状态(否则,用户的整个状态和字段编辑将丢失并显示404,后退按钮将导致会话不一致,最坏情况)。情况进一步复杂化,因为我们希望允许多个用户使用此行为;当然,语义是每个用户都有不同的树状态(树中的每个节点都没有加载/展开/折叠),而是数据字段中的一致条目。 你有一个模板或最小的例子,可以用这种方式更新服务器会话吗?     
已邀请:
您是否阅读过关于Seaside Ajaxification的博客文章和后续常见问题解答?这当然是将AJAX引入现有Seaside应用程序的最简单方法(查看常见问题解答中的最后一个问题,了解如何开始)。由于这使用正常的Seaside回调机制状态自动保持同步。 如果您想查看有关如何管理服务器状态和客户端DOM的复杂示例,请查看包
Scriptaculous-Components
附带的树报告窗口小部件,并在类
SUTreeReport
中实现。 或者你可能想看看礁石。 Reef提供了对低级AJAX协议的抽象,并自动更新Seaside中的组件。     

要回复问题请先登录注册