javascript刷新當(dāng)前頁(yè)面方法

2018-08-12 14:40 更新

reload 方法,該方法強(qiáng)迫瀏覽器刷新當(dāng)前頁(yè)面。
語(yǔ)法:location.reload([bForceGet])                                                                                                                           

參數(shù): bForceGet, 可選參數(shù), 默認(rèn)為 false,從客戶(hù)端緩存里取當(dāng)前頁(yè)。true, 則以 GET 方式,從服務(wù)端取最新的頁(yè)面, 相當(dāng)于客戶(hù)端點(diǎn)擊 F5("刷新")


replace 方法,該方法通過(guò)指定URL替換當(dāng)前緩存在歷史里(客戶(hù)端)的項(xiàng)目,因此當(dāng)使用replace方法之后,你不能通過(guò)“前進(jìn)”和“后退”來(lái)訪(fǎng)問(wèn)已經(jīng)被替換的URL。
語(yǔ)法: location.replace(URL)   

在實(shí)際應(yīng)用的時(shí)候,重新刷新頁(yè)面的時(shí)候,我們通常使用: location.reload() 或者是 history.go(0) 來(lái)做。因?yàn)檫@種做法就像是客戶(hù)端點(diǎn)F5刷新頁(yè)面,所以頁(yè)面的method="post"的時(shí)候,會(huì)出現(xiàn)"網(wǎng)頁(yè)過(guò)期"的提示。那是因?yàn)镾ession的安全保護(hù)機(jī)制??梢韵氲剑?當(dāng)調(diào)用 location.reload() 方法的時(shí)候, aspx頁(yè)面此時(shí)在服務(wù)端內(nèi)存里已經(jīng)存在, 因此必定是 IsPostback 的。如果有這種應(yīng)用: 我們需要重新加載該頁(yè)面,也就是說(shuō)我們期望頁(yè)面能夠在服務(wù)端重新被創(chuàng)建, 我們期望是 Not IsPostback 的。這里,location.replace() 就可以完成此任務(wù)。被replace的頁(yè)面每次都在服務(wù)端重新生成。

你可以這么寫(xiě): location.replace(location.href);


返回并刷新頁(yè)面:

location.replace(document.referrer);
document.referrer //前一個(gè)頁(yè)面的URL

不要用 history.go(-1),或 history.back();來(lái)返回并刷新頁(yè)面,這兩種方法不會(huì)刷新頁(yè)面。


附:
Javascript刷新頁(yè)面的幾種方法:
1    history.go(0) 
2    location.reload() 
3    location=location 
4    location.assign(location) 
5    document.execCommand('Refresh') 
6    window.navigate(location) 
7    location.replace(location) 
8    document.URL=location.href


自動(dòng)刷新頁(yè)面的方法:

1.頁(yè)面自動(dòng)刷新:把如下代碼加入<head>區(qū)域中
<meta http-equiv="refresh" content="20">
其中20指每隔20秒刷新一次頁(yè)面.

2.頁(yè)面自動(dòng)跳轉(zhuǎn):把如下代碼加入<head>區(qū)域中
<meta http-equiv="refresh" content="20;url=http://www.jb51.net">
其中20指隔20秒后跳轉(zhuǎn)到http://www.jb51.net頁(yè)面

3.頁(yè)面自動(dòng)刷新js版


代碼如下:

<script language="JavaScript">
function myrefresh()
{
       window.location.reload();
}
setTimeout('myrefresh()',1000); //指定1秒刷新一次
</script>

JS刷新框架的腳本語(yǔ)句

//如何刷新包含該框架的頁(yè)面用   
<script language=JavaScript>
   parent.location.reload();
</script>  


//子窗口刷新父窗口
<script language=JavaScript>
    self.opener.location.reload();
</script>
( 或 <a href="javascript:opener.location.reload()">刷新</a>   )

//如何刷新另一個(gè)框架的頁(yè)面用   
<script language=JavaScript>
   parent.另一FrameID.location.reload();
</script>

如果想關(guān)閉窗口時(shí)刷新或者想開(kāi)窗時(shí)刷新的話(huà),在<body>中調(diào)用以下語(yǔ)句即可。

<body onload="opener.location.reload()"> 開(kāi)窗時(shí)刷新
<body onUnload="opener.location.reload()"> 關(guān)閉時(shí)刷新

<script language="javascript">
window.opener.document.location.reload()
</script>



javascript 頁(yè)面只自動(dòng)刷新一次


代碼如下:

<Script> 
function reurl(){ 
url = location.href; //把當(dāng)前頁(yè)面的地址賦給變量 url 
var times = url.split("?"); //分切變量 url 分隔符號(hào)為 "?" 
if(times[1] != 1){ //如果?后的值不等于1表示沒(méi)有刷新 
url += "?1"; //把變量 url 的值加入 ?1 
self.location.replace(url); //刷新頁(yè)面 


onload=reurl 
</script> 

原理 
充分利用地址欄可帶參數(shù)的選項(xiàng),用腳本來(lái)取得頁(yè)面間的傳遞參數(shù),并不需要后臺(tái)程序的支持。



js計(jì)算頁(yè)面刷新的次數(shù)


代碼如下:

<script language="javascript"> 
function window.onload() 

if(window.name==""){ 
window.name = "0"; 

else{ 
window.name = eval(window.name) + 1; 
alert("已經(jīng)刷新"+ window.name+'次'); 


</script>




以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)