【问题标题】:jQuery mobile - after browser refresh page totally messed upjQuery mobile - 浏览器刷新页面后完全搞砸了
【发布时间】:2015-12-06 11:46:24
【问题描述】:

我正在后端使用 spring mobile 开发一个 jqm 应用程序。 每当我点击手机上的浏览器刷新按钮时,页面都会被彻底摧毁。浏览器后退按钮正常工作。

刷新后数据仍然可用,因为 prg 模式(Spring 中的 flashAttributes)。只有视图格式不正确。

任何想法如何解决这个问题?

【问题讨论】:

  • 尝试更改包含 javascript(s) 的位置
  • 第一个 jsp 有一个格式良好的 html5 结构,带有 header 和 body,所有其他请求的 jsp 都是定义在额外文件中的 jqm 页面。这意味着当用户请求我的 webapp 时,所有 java 脚本都会在第一个 jsp 的开头加载。此页面也可以刷新而不会出现查看错误。不幸的是,其他人崩溃了。我不知道在哪里放置 javascripts。
  • 添加了一个答案。请检查

标签: spring jquery-mobile spring-mobile


【解决方案1】:

来自jQuery Mobile docs

构建 jQuery Mobile 站点时最简单的方法是在每个页面的头部引用相同的样式表和脚本集。如果您需要为特定页面加载特定脚本或样式,我们建议将逻辑绑定到 pageinit 事件(详细信息如下)以在创建特定页面时运行必要的代码(可以由其 id 属性或数字确定其他方式)。遵循这种方法将确保代码在页面直接加载或通过 Ajax 拉入并显示时执行

所以发生的事情是 - 在jQuery Mobile 中,头部中定义的脚本和样式只加载一次。因此,在正常情况下,它可以正常工作,因为所有页面都将使用从第一页加载的脚本。

但是。当您在中间刷新页面时,它会触发页面重新加载,而不是 jqm 使用的 ajax 导航模型。因此,从第一页加载的所有脚本和样式将不再包含在内。

你需要做的是“在每个页面的头部引用相同的样式表和脚本集”,这样即使你在中间点击刷新,脚本和样式已经从第一页的头部被加载过。

我建议您完整阅读上述链接中的文档以获得更好的理解。

【讨论】:

  • 是的,你是对的。这解决了问题。现在我的应用程序稳定了。
猜你喜欢
  • 2012-10-11
  • 1970-01-01
  • 2010-09-08
  • 2013-02-28
  • 2012-06-23
  • 2012-05-22
  • 1970-01-01
  • 2020-08-12
  • 1970-01-01
相关资源
最近更新 更多