在保留一些数据的同时使用jQuery重新加载页面

时间:2014-05-09 13:36:37

标签: javascript jquery ajax

是否有任何聪明的方法可以将页面重置回原始状态(基本上是重新加载),而不会让屏幕看起来像是重置。

基本上我有一堆ajax请求,变量和内容,当用户点击'new'时我想要擦除(目前我只是使用location.reload();),但想要更优雅的方式。

我真的想要刷新它而不会让屏幕瞬间变白并且还想保留我用的单个模态弹出窗口,当用户点击“新”时它会打开。

因此,用户单击“新建”按钮,弹出窗口显示参数,站点刷新,参数传递给启动进程的Ajax请求。

如果有人能指出我想要寻找什么的方向,我将不胜感激。

4 个答案:

答案 0 :(得分:2)

“是否有任何聪明的方法可以将页面重置为原始状态(基本上是重新加载),而不会让屏幕看起来像重置一样。”

如果网站没有刷新,您就无法刷新网站,浏览器需要时间来显示内容。

然而,您可以使用jQuery .load将一些标准标记加载到您的站点中,使其显示为初始化时的状态,浏览器不会刷新,就像进行AJAX调用一样。要求网站刷新。

但是,如果只是为了进行AJAX调用,我无法理解你为什么要刷新网站。

答案 1 :(得分:1)

另一种可能性是在重新加载之前将数据放入local storage#之后的网址中。但是在jQuery .load或者XHR请求(这是jQuery加载的作用)之外,让你看起来没有刷新的选择是相当有限的。

答案 2 :(得分:1)

您可以使用jQuery' .load来请求和替换您网页的一部分,例如容器元素。

例如,在index.html上调用以下内容将有效地"重置" #container元素:

$("#container").load("index.html #container");

参见"加载页面碎片"在docs for $.load

至于重置变量和取消任何待处理的ajax请求 - 你也许可以编写一个reset()函数来为你完成所有这些。

答案 3 :(得分:1)

简单的答案是让你想要在容器内重新加载的内容,即:

<div id="container"> page content </div>

然后,当您从ajax调用成功获取新数据后,您可以使用以下内容清空容器:

$("#container").empty();

并用

重新填充
$("#container").append(newcontent);