HTML頁面中DOM更新時機的奇怪問題

2021-08-30 05:10:52 字數 437 閱讀 2221

最近在開發中遇到乙個奇怪的問題,這個問題的場景是比較簡單的,在乙個dom節點中首先要顯示的是一條「正在載入」的訊息,然後從遠端獲取一些資料,並顯示在此dom中。在firefox下面,「正在載入」的訊息能夠正常顯示,之後從遠端獲取的資料也能正常顯示出來;但是在ie和safari上面,「正在載入」的訊息不能顯示出來,dom節點的內容先是空白的,只有等遠端的資料拿到之後,才有內容顯示出來。

後來進過分析,認為可能的原因是獲取遠端資料時包含了同步呼叫,導致dom節點的內容通過innerhtml設定「正在載入」這條訊息的時候並沒有更新顯示。不過只有firefox上面正常,也覺得挺奇怪的。

解決的辦法是通過window.settimeout(func, 0)來把獲取資料的方法人為的押後,這樣讓瀏覽器可以有機會去即時更新dom,並顯示「正在載入」的訊息。這樣一修改之後,在firefox,ie和safari上面都沒有問題了。

通過DOM操作獲取html頁面元素

1.通過id名 document.getelementbyid 2.通過tag名 document.getelementbytagname document.getelementsbytagname 3.通過class名 document.getelementsbyclassname 4.通過sel...

DOM獲取HTML中的元素

獲取元素的三種方法 1 通過id名獲取元素 2 通過class類名獲取元素 3 通過標籤名直接獲取元素 注 id是唯一的 所以用id獲取到的元素可以直接用,通過class類名和標籤名獲取到的元素是乙個陣列,呼叫的時候需要先獲取到具體的某乙個,然後再呼叫。下面是乙個簡單的案例 通過標籤查詢並獲取標籤 ...

html頁面中引入html

我們寫頁面通常會遇到這種情況,乙個模組很多頁面都用到,那麼我們為了方便就會單獨寫到乙個頁面,然後引入進去,我知道的有三種 1 用標籤 例 iframe有自己預設的高度,如果你引入的頁面高度超出他預設的高度會超出隱藏,所以,要加上height 2 用標籤 例 object也有自己的預設高度,如果你引入...