我現在有,搜索圖像,並返回結果作爲像這樣一個列表元素在我的網站的搜索框:優化了巨大的無序列表使用Javascript
然後,每個圖像具有點擊事件相關聯它只是添加一個疊加到單擊圖像的父級李。
有時我的搜索結果將包含300多個結果,這些結果在桌面上並不是什麼大問題,但在移動設備上會造成巨大的延遲,當有人點擊圖片添加疊加層時,疊加層出現前可能需要4-5秒。
現在我想到了一個辦法來解決這個問題是下面的:
添加所有li元素到數組(字符串不是一個DOM元素)
破壞原有的li元素。
計算屏幕的大小和多少圖像可以在同一時間
添加滑塊UI元素被示出爲用於滾動好像列表
基於對位置滑塊和多少元素,我們可以安裝到 從數組中的元素,我們可以清楚地看到屏幕提取物和銷燬,其餘
循環雖然返回數組結果和所有結果添加到單個字符串。 然後將包含我們可以看到的所有結果的字符串追加到UL中。
我的問題是這會不會讓我的表現增加?正如我相信我的初始問題是在太多的元素。
也是這是一個常見的事情要做,或者是否有更好的方法來做到這一點?
感謝
從哪裏來的300多個元素?如果來自數據庫,則修改頁面以在開始時顯示子集,例如30。然後在需要的時候使用AJAX獲取下一個30,例如通過按鈕點擊或向下滾動。無限滾動。 –
@RoryMcCrossan他們來自數據庫,但我需要嘗試儘可能多的工作到瀏覽器上。人們可能會翻動很多頁面,我寧願沒有必要每隔幾秒鐘就做一次ajax調用,因爲人們從列表的頂部跳到底部。 – james
您可以嘗試僅將click事件綁定到最外層的'ul'元素。 (見:http://api.jquery.com/on/,'selector'是'img')。這隻會綁定一個事件,並可以提高性能。 – Yoshi