2013-02-25 51 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