2016-12-01 55 views
-1

當我在jQuery中查詢帶有id的元素時,它會緩存還是會通過DOM迭代?當我們用ID(#)查詢時,jquery會緩存元素嗎?

+1

你在說哪個緩存??? –

+1

夥計們......放下了票。對於新手來說,這是一個合理的問題(如果沒有特別的代碼相關)。重要的是要知道如何在瀏覽器緩存查找:)關閉它,但請不要他們首先打不死:> –

+0

@GoneCoding是的,但它是恕我直言,尤其是這無關的jQuery還不是很清楚的問題。雖然你的答案是偉大的:) –

回答

2

通過ID查找命中快速瀏覽器字典(我懷疑你的緩存),每個ID有一個條目。

它是超快的,並且DOM沒有迭代。

邊注:查找由類使用在現代瀏覽器類似的方法,但每類名稱的多個元素和幾乎一樣快的ID查找時下。

1

不,它不會緩存。

jQuery將大致這樣工作:

  1. 當你火起來$("#myid"),它調用了一個全局jQuery功能passes your query to a function jQuery.fn.init
  2. matches your input with regexp
  3. 它發現你的查詢開始#passes it to native getElementById function

就是這樣。中間沒有緩存,因爲getElementById呼叫已經超快。

+2

有什麼不對的StackOverflow半句錯過一個重要的一點。'getElementById'確實有一個背後的緩存(這是爲什麼呢是如此之快),所有現代瀏覽器緩存的ID和任何類的元素。 –

+0

當然,但依賴於底層瀏覽器的實現。我認爲根本問題是關於「我可以依靠的jQuery總是要求瀏覽器或它是否實現了自己的緩存「,所以這就是我回答:) – jehna1

相關問題