Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 静态HTML页面、客户端缓存和传递参数_Javascript_Html_Asp.net Mvc_Jquery Mobile_Knockout.js - Fatal编程技术网

Javascript 静态HTML页面、客户端缓存和传递参数

Javascript 静态HTML页面、客户端缓存和传递参数,javascript,html,asp.net-mvc,jquery-mobile,knockout.js,Javascript,Html,Asp.net Mvc,Jquery Mobile,Knockout.js,我正在构建一个相当大的移动应用程序,它目前构建在jQuery mobile和KnockoutJS之上。我的第一种方法大量使用单页应用程序设计,并通过Knockout和ajax调用加载所有动态内容和数据。这工作正常,但随着jquerymobile越来越多地加载到DOM中,维护和开发变得非常复杂 我想知道是否可以转移到更传统的、单独的HTML页面,这些页面完全是静态的,同时仍然通过Knockout和ajax加载数据。这将允许浏览器缓存应用程序的最大部分:HTML页面 问题: 如何在不创建禁止客户端浏

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

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

问题:

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

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

我想知道在散列标记之后传递参数是什么<代码>/Display#3和
/Display#5
?在全局名称空间中通过JavaScript传递参数怎么样


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

您可以尝试html5会话存储/localStorage。如果html5是一个问题,那么就不要使用普通的旧cookie。
澄清一下,如果有几个HTML页面,每个页面都必须有自己的URL。

好的,很抱歉误解,但我认为您的方法是错误的。您不能以这种方式使用GET参数,而且JQueryMobile在AJAX的url处理中有点混乱

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


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

我有
page.html
,但需要传递一个参数,该参数最终会命中我的JavaScript
page.html?id=1
page.html?id=3
都是相同的页面,我希望浏览器只缓存
page.html
。我不想添加参数来创建两个唯一的页面。