window.location.Reload()和window.location.href等聯絡和區別,window.href.reload

來源:互聯網
上載者:User

window.location.Reload()和window.location.href等聯絡和區別,window.href.reload

在web開發中經常會遇到頁面重新整理的系列問題,現在總結如下:

1、js 重新整理頁面window.location.reload();

強制重新整理頁面,從伺服器重新請求! (如果有資料提交的話,會提示是否提交的(是和否選項)),促使瀏覽器重新下載當前的頁面。

2、window.location.href設定或返回完整的 URL。

在js中關於location.href的用法究竟有哪幾種,究竟有哪些區別?

目前在開發中經常要用到的幾種形式有:
  self.location.href;
  window.location.href;
  this.location.href;
  location.href;
  parent.location.href;
  top.location.href;

top.location.href=”url” 在頂層頁面開啟url(跳出架構)   

self.location.href=”url” 僅在本頁面開啟url地址   

parent.location.href=”url”   在父視窗開啟Url地址   

this.location.href=”url”    用法和self的用法一致 if (top.location == self.location) 判斷當前location 是否為頂層來 禁止frame引用  

 如果頁面當中有自訂的frame的話,也可以將parent self top換為自訂frame的名稱 效果就是在自訂frame視窗開啟url地址

3、replace 方法,該方法通過指定URL替換當前緩衝在歷史裡(用戶端)的項目,因此當使用replace方法之後,你不能通過“前進”和“後退”來訪問已經被替換的URL。
文法:location.replace(URL) 參數: URL

在實際應用的時候,重新重新整理頁面的時候,我們通常使用: location.reload() 或者是 history.go(0) 來做。因為這種做法就像是用戶端點F5重新整理頁面,所以頁面的method="post"的時候,會出現“網頁到期”的提示。那是因為Session的安全保護機制。可以想到: 當調用 location.reload() 方法的時候, jsp頁面此時在服務端記憶體裡已經存在, 因此必定是 IsPostback 的。如果有這種應用: 我們需要重新載入該頁面,也就是說我們期望頁面能夠在服務端重新被建立, 我們期望是 Not IsPostback 的。這裡,location.replace() 就可以完成此任務。被replace的頁面每次都在服務端重建。你可以這麼寫: location.replace(location.href)

       促使瀏覽器根據 URL 參數中給出的地址 (URL) 下載頁面,同時在當前瀏覽器儲存的記錄 (即所瀏覽過的頁面的列表) 中使用新的地址(即此方法中的 URL 參數) 覆蓋當前的頁面。
使用 replace() 方法意味著使用者將不能通過按 “返回” 按鈕回到前邊瀏覽過的那個頁面,但這並不是說使用者完全不能回到原來的所有頁面,他們只不過是無法回到被 replace() 方法替換的那一個頁面 (注意:只是被替換的那一個頁面)。


PS:window.location.Reload()和window.location.href 區別:

window.location.reload()與window.location.href=window.location.href
兩者都能重新整理視窗,不同的是,前者重新整理頁面時若有資料提交會提示是否提交資料,就是我們經常看到的那個討厭的提示框;後者則不會,是定向url提交資料。所以在重新整理頁面時最好是用後者




問在javascript中windowlocation與windowlocationhref的不同在哪,為何前者跳轉速度比後者快

window.location是頁面的位置對象,window.location.href是 location的一個屬性值,並且它是location的預設屬性就是說對window.location直接賦值一個url實際上就是對window.location.href賦值。location對象除了有href屬性外還有很多其他屬性和方法,而href就是一個字串
只不過修改location的href會觸發瀏覽器載入 href所指向的url
因此不存在前者速度比後者快的。
btw:你判斷前者比後者快的依據是什嗎?事實上,載入同一個url的速度不一定每次都一樣,這個受當時的網路狀況,頁面內容是否已經有被緩衝等有關。
 
windowlocationhref 與selflocation的不同

你從字面上就可以理解到 window 指的是當前視窗 而 self 指的是自己 在HTML 中 由於頁面可以鑲嵌頁面 所以這2個就有了 區別 比如說 我有個頁面A.HTML 裡面嵌套了一個B.HTML 在A中使用 window.location 跳轉 就把整個 頁面跳轉了 而在 A中鑲嵌B頁面的位置 使用了 self跳轉 就只是把B介面跳轉了 A頁面其他地方沒有變化 就拿 很簡單的 百度搜尋網頁面來比 你輸入不同的搜尋內容 變化的只是下面的內容 而搜尋欄本身沒有變化 就是self實現下面的跳轉
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.