html - Grails如何支持HTML5离线模式?

标签 html grails offline-caching

我正在编写一个Grails / GSP应用程序,该应用程序在不存在网络时需要脱机运行。我阅读了以下有关HTML5 Offline / AppCache的文章,这些文章非常有帮助:

  • HTML5 Rocks;和
  • Dive into HTML5

  • 总结一下(tl;dr),我需要在每个页面的manifest元素中定义一个<html>属性,如下所示:
    <html manifest="myapp-cache.manifest">
        ...
    </html>
    

    其中myapp-cache.manifest是“缓存 list ”文件的名称,该文件指定了脱机/缓存行为,可能看起来像这样:
    CACHE MANIFEST
    NETWORK:
        *
    CACHE:
    index.html
    somethingCool.html
    myimage.png
    myapp.css
    

    这里的问题是,使用Grails的我将没有要缓存的HTML文件。 实际上,我可能有一个index.gspsomethingCool.gsp,但是它们表示经过预处理的HTML,并且永远不会作为HTML文档存在。而且我无法在缓存 list 中指定GSP,因为GSP可以(并且不应)直接从客户端获取。

    当我们开始重用GSP时,事情变得更加复杂,例如header.gspfooter.gsp,标记库等。

    所以我问: Grails是否支持HTML5离线版? 如果可以,如何以及以什么身份(文档在哪里)?如果不是,是否有任何办法迫使Grails脱机兼容?还是Grails无法使用此HTML5功能?

    更新资料

    也许可以通过URL映射以某种方式实现?例如,也许有一种方法可以使Grails将请求从http://myapp.example.com/fizzbuzz.html映射到http://myapp.example.com/fizzbuzz,然后可以提示Grails调用正确的 Controller 操作并呈现正确的GSP?

    最佳答案

    您的陈述“我将没有要缓存的HTML文件”是错误的。 Grails是一个服务器端框架,尽管您在服务器端使用GSP,标记库等,但所有客户端(浏览器)所看到的都是纯HTML。

    因此,最好缓存.gsp,因为所有浏览器都可以获取,而缓存是Grails提供的HTML。不要因扩展名而感到困惑!脱机时,浏览器将以与.html相同的方式从AppCache中获取HTML。

    AppCache是​​一种客户端技术,因此我怀疑一般是否有关于服务器端技术的特别文档,尤其是Grails,因为它对任何服务器端技术都起作用。

    @sneeb Grails可以提供您希望的任何格式的内容,包括HTML,JSON,XML等。因此,Grails支持任何类型的内容,包括HTML5。

    关于html - Grails如何支持HTML5离线模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26824184/

    相关文章:

    ios - 如何实现 JSON 的离线缓存?

    html - 绕过 Firefox 的离线存储警告?

    javascript - 获取主菜单项列表

    由于 Spring bean 未注入(inject) BootStrap,Grails 3 独立应用程序无法启动

    date - 日期字段无法正常工作

    java - g选择:如何从一个列表中提取值并从另一个列表中显示选项?

    javascript - Service Worker 失败 - RedirectMode 不是 "follow"时的重定向响应

    html - 如何在每个部分的底部中心放置一个箭头?

    javascript - WebGL:使用 tf.browser.fromPixels 转换本地镜像时出现 INVALID_VALUE

    html - 是否可以使用类 AND Fontawesome 预定义输入?