2012-07-19 104 views
5

我使用Backbone.js在頁面上一次加載20個項目,當您向下滾動到底部時獲取更多項目,直到沒有任何內容從服務器中獲取。延遲加載過濾項目

與此同時,我想要一個輸入字段,當您鍵入一個名稱時,它會過濾匹配的項目。

問題是,如果您還沒有滾動到底部,並獲取完整集合,輸入過濾器將只匹配頁面上當前的項目。

從技術上和視覺上將UI過濾與惰性加載項目相結合,最佳解決方案是什麼?

編輯: 這裏的真實場景是加載所有的facebook朋友,這些朋友可能會很慢,並與其他apis混搭起來。由於經驗延遲,我不想一次加載所有內容。

+1

是否有技術限制,爲什麼你不加載所有的項目開始或主要是用戶體驗?知道這個問題的答案可能有助於制定一個答案你的問題... – alexwen 2012-07-19 01:08:22

+0

嗨亞歷克斯,請參閱我的編輯。謝謝。 – Abadaba 2012-07-19 01:46:28

+0

懶惰加載...你有多少Facebook朋友流血? – Louis 2012-07-19 02:11:25

回答

1

當用戶搜索時,爲什麼不用包含過濾器的提取重置集合?

Collection.fetch({項:$( 「#搜索」)VAL()})

如果你設置你的後臺API終點這個集合範圍依照不同的術語PARAMS,那麼你的集合只會包含與用戶輸入相匹配的服務器結果。

您還可以將初始抓取限制爲用戶輸入的前3個字符,然後在繼續輸入時執行過濾客戶端的其餘部分。這就是說,如果您沒有在第一次調用時限制搜索結果服務器端。