2013-02-25 180 views
0

我需要在通过ajax更新数据库后重新加载页面。在我的AJAX POST方法,我有类似如下:jquery document.location.reload()无法正常工作

success: function (data) { 
    ....(some code doesn't matter) 
    document.location.reload(); 
    ....(some other code I wish to execute after document is reloaded) 

} 

然而,reload()后的代码会被执行,然后再页面将重新加载。 我在做什么错?

+0

当您“重新载入”页面时,它就是这样做的;它会重新加载页面,就像它是您第一次访问该页面时一样。您是否可以通过返回您需要的任何数据来重置页面以从ajax调用重置页面?然后,您可以使用这些数据并使用jquery进行必要的更新。 – 2013-02-25 20:03:18

回答

1

页面重新加载后,document.location.reload();之后的代码在页面的旧实例上执行,而不是重新加载的页面。

您将需要添加一个参数到当前位置,并对onDocumentReady做一个测试document.location上的参数以添加您想要的代码的缺口。 ex:

document.location = document.location.href + "?afterReload=true"; 


$(document).ready(function() { 
    if (window.location.search.substring(1) != ''){ 
    //do something 
    } 
}); 
+0

将“window.location.search.substring(1)”更改为实际查找刚刚创建的查询字符串,而不仅仅是任何一个 – 2013-02-25 20:16:34

+0

已结束,这是一个示例,如果您拥有“?afterReload = true”参数已经。但对于一个例子,我认为这个想法是必要的。 – 2013-02-25 20:20:24

+0

谢谢,伙计。我正在努力实现这一点。 – 2013-02-25 20:30:28

1

而不是做一个重载的,重定向的页面,并在年底

window.location.replace("http://example.com/yourpage.php?extravariable"); 

添加一个变量,然后你可以添加一些代码来检查GET和如果get值设置运行JavaScript代码。

+0

感谢您的建议,兄弟。 – 2013-02-25 20:29:58