1 回答

TA貢獻2051條經驗 獲得超10個贊
不考慮這里的Vue標記,我管理大型事物(超過200個DOM元素,而您提到的1000多個)的典型方法是將其與小型控制器動作掛鉤以避免污染DOM,這會減慢事情的進行速度下降了很多。
不過,我們必須考慮各種選擇,因為您將在某處受到打擊。您必須決定在哪里。大量的DOM元素與請求帶寬之間的關系。將數(shù)據(jù)存儲在Session中,以便可用于多個發(fā)布請求或重新查詢生成的數(shù)據(jù)。
因此,出于此目的,我假設我們不想在DOM中擁有大量項目,而只是顯示/隱藏,這是最簡單的方法,但是當您開始添加項目和組合或移動用戶嘗試加載頁面等。我還為您的函數(shù)名稱loadFilteredList涂上顏色,對我來說,它只是很快就喊出“添加另一個過濾器”的要求。
因此,這是基本設計:
控制器方法將您在此處具有的表內容作為部分視圖返回。
它(控制器方法)可選地具有作為過濾器選項的參數(shù)。(更多這些可以在以后添加;關鍵是,控制器正在執(zhí)行過濾和發(fā)送數(shù)據(jù))
然后,用于onchange的JavaScript只會向控制器發(fā)出針對新過濾數(shù)據(jù)的發(fā)布請求。您可以根據(jù)需要使用jquery或vanilla設置html內容。您的控制器要么獲取新數(shù)據(jù)以進行過濾,要么使用會話。無論哪種方式最適合您的需求。不過,您不需要ViewBag,這不是針對這種情況的。
這種設計的缺點是,每個過濾器都會在后臺向服務器發(fā)送新請求。好處是希望您的有效負載足夠小,因此以這種方式進行操作并沒有返回每個可能的行以便可以在客戶端進行過濾那樣昂貴。
添加回答
舉報