0

如果您不熟悉这些术语:

附加信息:

问题:如何使用支持渐进增强 2.0 的 HTML 超媒体类型创建单个客户端?所以如果浏览器没有javascript,它会得到一个纯HTML页面,如果浏览器在移动设备上,它会显示移动视图,如果浏览器在PC上,它会显示桌面视图等等......我在想这个,我认为这有一个矛盾:单页javascript应用程序有自己的引导HTML文件,它们使用AJAX从服务器加载数据,而noscript客户端直接以HTML格式从服务器加载和显示数据. AJAX 数据格式也可以是 HTML,我可以使用微格式使其易于处理,但我仍然不知道如何处理 AJAX 与 noscript 问题......知道吗?

额外的想法:

我认为不可能在超媒体 API-s 上应用渐进增强 2.0。对于任何错误,noscript 浏览器都应该得到带有错误消息的整个表单,支持 ajax 的浏览器应该只得到 400 bad request status header 和一小部分错误数据,因为它使用 javascript 验证几乎所有内容。在移动视图中,我们只想显示当前级别的导航,在桌面视图中,我们希望显示一个深层菜单,因此我们为每个 rel=up 菜单点发送一系列获取请求,直到我们到达 api 根...通过这种情况我需要至少 3 个不同的客户端和 3 种不同的解决方案:移动、noscript 桌面、ajax 桌面,我认为没有任何方法可以将它们合并到一个客户端中。

4

1 回答 1

0

渐进增强 2.0 是一个客户端的东西,它不依赖于 REST API,因此可以将一个无 js 的服务器端 REST 客户端与一个支持 js 的客户端 REST 客户端合并。因此,可以通过超媒体 API 使用渐进增强 2.0。

通过 RESTful Web 服务,客户端应该存储当前状态,而不是 REST 服务本身。可以将浏览器用作 REST 客户端,但它在状态存储能力方面会非常缺乏。如果我在每个链接中从 REST 服务发回状态,它可以将状态存储在 HTTP auth、ETAG、accept 标头、queryString 部分中。除非无法在没有 javascript 的情况下直接从 HTML 使用 localStorage,否则将浏览器作为 REST 客户端将是一个非常糟糕的解决方案。我不建议使用它。

于 2013-11-05T00:57:23.340 回答