0

我正在构建一个相当大的移动应用程序,该应用程序当前构建在 jQuery Mobile 和 KnockoutJS 之上。我的第一个方法大量使用了单页应用程序设计,同时通过 Knockout 和 ajax 调用加载所有动态内容和数据。这工作正常,但是随着 jQuery Mobile 越来越多地加载到 DOM 中,维护和开发变得非常复杂。

我想知道是否可以迁移到更传统的、单独的 HTML 页面,这些页面完全是静态的,同时仍然通过 Knockout 和 ajax 加载数据。这将允许浏览器缓存应用程序的最大部分:HTML 页面。

问题:

如何在不创建禁止客户端浏览器缓存的唯一 URL 的情况下最好地在页面之间传递参数?我希望浏览器积极缓存页面。

我意识到我可以实现各种服务器端缓存,但这不是我的目标。/Display/3并且/Display/5是同一页。浏览器会将这些缓存为一个吗?

我想知道在哈希标记之后传递参数吗?/Display#3/Display#5?在全局命名空间中通过 JavaScript 传递参数怎么样?

希望这里有一个标准的方法。

4

2 回答 2

1

好的,很抱歉造成误解,但我认为你的方法走错了路。您不能那样使用 GET 参数,而且 JQueryMobile 在 AJAX 的 url 处理方面有点混乱。

通常,如果使用 AJAX 刷新内容,则不需要重新加载页面。所以你不需要缓存,因为页面已经存在,只有一些内容通过 AJAX 重新加载。但是 JQM 的单页方法不适用于动态创建的内容。您只能动态创建一个包含所有内容的页面,而 JQM 通过切换可见性来显示内容。然后 # 可用于在页面之间切换(# 不会强制重新加载,如用于侧面导航)。

您可以编写自己的加载函数调用按钮和链接(而不是使用 URL GET 参数)。通过将 JQuery 的 $.ajax 方法与 dataType "html"(而不是 json,默认)一起使用,您可以在其成功处理程序中进行内容刷新。

于 2013-01-25T21:01:08.670 回答
0

你可以试试 html5 sessionStorage/localStorage。如果 html5 是一个问题,那就是普通的旧 cookie。澄清一下,如果有多个 HTML 页面,每个页面都必须有自己的 URL。

于 2013-01-25T16:24:25.330 回答