Javascript PhoneGap如何使用单页应用刷新/重新加载页面

Javascript PhoneGap如何使用单页应用刷新/重新加载页面,javascript,jquery,html,ios,cordova,Javascript,Jquery,Html,Ios,Cordova,目前,我有一个使用把手模板的单页应用程序。它有一个搜索功能,由该页面的特定类控制,该页面为/#page/1,然后当您单击搜索结果时,它会将您带到另一个页面,该页面由名为/#参展商/432的单独外部类控制(参展商ID是末尾的数字) 当我单击返回,PhoneGap在iOS/Safari中加载搜索页面(#page/1)时,除非我使用location.reload()重新加载整个HTML页面,否则应用程序将缓存第一次输入的搜索,并且不会接受新的输入 我曾尝试使用location.hash将随机字符串添加

目前,我有一个使用把手模板的单页应用程序。它有一个搜索功能,由该页面的特定类控制,该页面为/#page/1,然后当您单击搜索结果时,它会将您带到另一个页面,该页面由名为/#参展商/432的单独外部类控制(参展商ID是末尾的数字)

当我单击返回,PhoneGap在iOS/Safari中加载搜索页面(#page/1)时,除非我使用location.reload()重新加载整个HTML页面,否则应用程序将缓存第一次输入的搜索,并且不会接受新的输入

我曾尝试使用location.hash将随机字符串添加到哈希的末尾,但只有在单击“上一步”按钮时使用location.reload()重新加载整个HTML页面时,它才会起作用

Android/Chrome没有问题


关于如何重新加载HTML和加载位于#page/1的搜索页面的任何反馈,我将不胜感激。我已尝试使用location.href=url/#page/1,但它将加载没有任何动态数据的页面。

有关此主题的更多想法:

1) 经验法则是避免重新加载整个HTML页面。那么我们如何才能做到这一点呢?在HTML页面中,应该有一个特定的DIV,您可以根据需要对其进行操作。例如,在/#page/1上,您应该设置该DIV的内容,无论#page/1应该做什么,当用户点击搜索时,搜索内容应该显示在该字段中。(请注意,我谈论的是UI方面的事情。实际的搜索可以由其他服务完成,您可以从您的页面对该服务进行AJAX调用)

2) 您将收听各种事件(例如,第/1页、用户点击搜索按钮、服务器返回搜索结果或服务器返回错误消息等)。根据发生的事情,你应该相应地装饰这个房间

HTML示例:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="format-detection" content="telephone=no"/>
    <meta name="viewport"
          content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height"/>

    <title>Example</title>


</head>
<body>
<div id="jQUi">
    <div id="content">
    </div>
</div>

</body>
</html>
上面是一个伪代码。我写它只是为了给你一个想法


我希望有帮助

你曾经考虑过使用吗?如果没有,我强烈建议你去看看,尤其是。它将帮助您解决这个问题,并且它将以一种非常简洁的方式完成。干杯,这很有帮助。谢谢你,我将研究如何实施这项计划。
document.addEventListener("deviceready", letGetGoing, false);

...

function letsGetGoing(){
   $('content').html(useTemplateNamed('page1Template'));
   $('.search').on('change', switchToSearch);
}

function switchToSearch(){
   $('content').html(useTemplateNamed('search'));
   $('.submit').on('change', verifyAndSendToServer);
}
...