比如说我会在浏览器中写一个这样的论坛:
- original post
- Re: original post
- Re^2: original post
- Re^2: original post
+ Re: original post
_______________________________________________________________________________
Text of the selected post.
树视图将是一个资源,所选帖子的文本将是一个,而周围的页面将是一个。如果选择了其他帖子,则应更新孔页面以始终在浏览器中显示正确的URI。但是如果更新了漏洞页面,那么树的客户端状态就会丢失。重新加载树资源以及丢失节点的信息,滚动的距离等等。
解决这个问题的REST方法是什么?
其他想法?建议?
答案 0 :(得分:1)
如果它有URI,则它是一个资源。因此,包含所有内容的页面是资源,完整停止,在ReST和普通旧HTTP中。因此,它独立存在,与您在服务器上用于构成页面的内容无关。
如果您想要为您的页面提供服务并使用ajax调用来更新内容,那么您将直接访问您提到的每个资源以获取其当前版本。在该阶段,您可以使用散列标记(如在第一个项目符号点中)来使URI复制粘贴友好。或者,您可以使用隐藏的iframe使导航仍能在浏览器中正常运行。两者通常组合使用。在这种情况下,页面的当前状态是javascript中的(或两者)或者URI的哈希部分中的(和)。
请注意,页面本身仍然是一个独立的资源,因此在散列 创建新URI之前,您将传递的任何视图“状态”。除非您明智地指定Content-Location,否则代理和缓存将完全视为不同的资源。
在生成标记之前处理服务器上所有UI的场景中,依赖cookie实际上是邪恶的。它破坏了网络的体系结构,破坏了缓存等。如果你想用它作为javascript的持久性存储,并且只要服务器不看它,并且它纯粹是装饰性的,那么帮助自己。
从这个意义上讲,html 5中的本地存储将解决相同的问题,并且空间更大。