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實現下面的跳轉