javascript入門經典學習二(瀏覽器的前進與後退)

來源:互聯網
上載者:User

1.DOM不是javascript語言的一部分,而是內建在瀏覽器中的一個應用程式介面。dom的子項目包括下面幾個

window(document,history,location)

1)document子物件 links[]可以擷取整個頁面的串連(<a href=""></a>)的集合

                            anchors[]可以擷取整個頁面所有的錨點(<a name=""></a>) 類似的還有images

2)history對象,history對象有current,previous,next三個屬性,用來儲存曆史列表中的url,但是在瀏覽器中不能正常訪問,history提供了3個方法

go(參數) 產生為整數正數表示前進次數 負數表示後退次數,back(),forward().

補充:為了搞清楚,瀏覽器為什麼能夠進行後退和前進,以及一些因前進和後退導致問題的根源,做了一些測試得出如下結論:

a)瀏覽器自身能夠記錄訪問的曆史,此處的訪問曆史僅僅是一個地址

b)前進後退操作時,瀏覽器會訪問自身記錄的url地址

c)在訪問曆史的url時,如果伺服器側沒有強制禁用緩衝,那麼瀏覽器將不會想伺服器發送請求,否則瀏覽器將向伺服器發送新的http請求。

由此可以解決一些登入後退出 然後後退仍能看到使用者資訊,以及 由使用ajax的頁面在調到新頁面後再回退回來導致的一些指令碼錯誤。

方法很簡單 就是在伺服器測禁用緩衝(no cache,no store),從而回退時 伺服器會受到請求便可以做出相應的處理。  (如有不妥之處 請大家多多指教 給我留言)

3)location對象,這個對象中包含了很多視窗的當前url網址的資訊,最重要的是修改href屬性可以重新置放到新的頁面。,其他的一些protocol,port,等,

其中:search表示查詢部分 指?之後的參數 如aid=3; hash:表示anchor名稱 如#anchor    這兩個應該比較實用

location的方法reload(bool),就是重新整理,如果參數為true 則無論緩衝與否都會強制重新整理

replace(url),其實這個還是比較實用,不僅能夠實現設定location的功能,而且還不影響記錄。(這個就比較不錯了 如a頁面到b,b頁面用這個replace(c)開啟了c,這是點擊後退會發現到了a)-

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.