2013-10-18 113 views
0

我有點失落。重新加載頁面異步或setTimeout?

我有兩頁;結果和細節。無論何時用戶使用瀏覽器返回按鈕從Detail瀏覽結果,結果頁面應刷新,這樣我就可以顯示剛剛在Detail上看到的產品用戶(就像亞馬遜用最近查看的項目一樣)

我不知道它是否爲更好地加載網頁asynchronously, 或使用的setTimeout所看到here(以下作品的例子,但永遠頁面刷新)

if(window.top==window) { 
    // you're not in a frame so you reload the site 
    window.setTimeout('location.reload()', 3000); //reloads after 3 seconds 
    } else { 
    //you're inside a frame, so you stop reloading 
    } 

,當我嘗試重裝只是一個div也不起作用

$('#div-id').triggerevent(function(){ 
    $('#div-id').html(newContent); 
    }); 

我也遇到了很多例子,導致this,但沒有設法使其工作。 歡迎任何建議。 謝謝

回答

1

當用戶點擊後退按鈕時應激發onload事件。未通過JavaScript創建的元素將保留其值。我建議保留INPUT TYPE =「hidden」或TEXTAREA中用於動態創建元素的數據的備份,使其顯示:none,然後使用文本框的值onload重新構建動態元素。

如果你不關心重建的頁面,並希望實際加載它,那麼你可以做:

<input type="hidden" id="refreshed" value="no"> 
<script type="text/javascript"> 
onload=function(){ 
var e=document.getElementById("refreshed"); 
if(e.value=="no")e.value="yes"; 
else{e.value="no";location.reload();} 
} 
</script> 
+0

這很適合firefox,但是在頁面加載和刷新時整個頁面,任何想法爲什麼?@ anand4tech – user2755801

-1

我相信你應該重新加載頁面異步。 也許附加事件ready到身體將工作。

$(function(){ 

    $('body').ready(function(){ 
     alert('worked'); 
     //Code to reload the page or data 
    }); 

    }); 
+0

'$(「主體」)準備就緒(函數(){'是相同的。 '$(document).ready(function(){'與'$(function(){'相同'){' –

+0

@KevinB我今天學到了東西 – Omar