【问题标题】:Java Applets vs Back ButtonJava 小程序与后退按钮
【发布时间】:2009-12-21 03:44:54
【问题描述】:

我注意到,如果您在http://listen.grooveshark.com/ 上播放歌曲并按下返回按钮,Flash 足够聪明,可以在 Flash 应用程序中“返回”导航时继续播放音乐。

是否可以使用 Java 小程序来实现这种事情,或者当您离开页面时,小程序是否总是关闭(即使结果页面包含相同的小程序)?

【问题讨论】:

    标签: java flash applet back-button


    【解决方案1】:

    看起来grooveshark 对URL 片段很棘手。他们将搜索存储在 URL 中的 # 片段分隔符之后,例如搜索 ween,你会得到这个 URL

    http://listen.grooveshark.com/#/search/songs/?query=ween
    

    然后搜索 bungle 并且 URL 更改为

    http://listen.grooveshark.com/#/search/songs/?query=bungle
    

    如果您在浏览器中单击后退按钮,则 URL 将更改为之前的“ween”,但浏览器仍停留在同一页面上,因为片段标识符之前的所有内容都是相同的。有一些 javascript 会检测更改的片段并相应地更新 UI。

    您可能可以使用小程序执行类似的操作,但它似乎更适合 javascript。好消息是,您的小程序将被浏览器缓存,因此如果您切换到不同的页面,小程序加载将很快发生。

    【讨论】:

    • 没错,当您离开页面时,每个富应用程序都会以相同的方式做出反应。
    • 如果您想更好地了解他们如何在 Flash 中执行此操作,请查看 SWFAddress。它利用了“返回”到先前的锚标记并不一定会强制页面重新加载这一事实。你也可以用 JS 做到这一点。对 SEO 有一些注意事项,但绝对可行。
    【解决方案2】:

    http://java.sun.com/docs/books/tutorial/deployment/applet/lifeCycle.html

    当用户离开页面时,对于 例如,要转到另一个页面, 浏览器停止并销毁小程序。 小程序的状态不是 保存。当用户返回 页面,浏览器初始化和 启动一个新的小程序实例。

    话虽如此,您可以做的是在小程序停止时将状态保存到服务器,然后在再次启动时从服务器恢复状态。如果你让它成为一个签名的小程序,它应该能够在本地保存状态。

    【讨论】:

    • 所以在我看来,用 Java 重新创建这个应用程序是不可能的,因为当你从一个页面移动到另一个页面时,音乐停止播放显然是不可接受的。有没有办法挂钩浏览器按钮,所以位置栏看起来像是在改变页面,即使它不是?
    • 在小程序中进行导航,而不是为每件事创建一个新页面。小程序可以比网页更重量级。
    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    相关资源
    最近更新 更多