我有一個網格(員工網格),其中有1000-2000行。 我在網格中顯示員工姓名和部門。 當我獲得網格數據時,我也會獲得該員工的其他詳細信息(出生日期,地點,職位等) 因此,用戶可以選擇編輯員工詳細信息。當他點擊編輯時,我需要在彈出窗口中顯示其他員工詳細信息。由於我已將所有數據存儲在JavaScript中,因此我搜索特定的ID並顯示所有詳細信息。所以代碼會像哪個更好,在javascript或數據庫中搜索?
function getUserDetails(employeeId){
//i store all the employeedetails in a variable employeeInformation while getting //data for the grid.
for(var i=0;i<employeeInformation.length;i++){
if(employeeInformation[i].employeeID==employeeId){
//display employee details.
}
}
}
第二個解決方案會像通僱員到數據庫中,並得到了員工的所有信息。代碼將如
function getUserDetails(employeeId){
//make an ajax call to the controller which will call a procedure in the database
// to get the employee details
//then display employee details
}
因此,當我處理1000-2000條記錄時,您認爲哪種解決方案最適合。 我不想通過在頁面中存儲大量數據來使JavaScript變得沉重。
更新:
所以我的一個朋友想出了一個簡單的解決方案。 我爲500行(平均)存儲4列。所以我認爲網頁不應該有很快的緩慢。 在將行加載到網格時,在編輯鏈接下,我將data-rowId作爲屬性,以便檢索數據。 說我將所有員工信息存儲在名爲employeeInfo的變量中。 ('data-rowId')將給出rowId和employeeInfo [$(this).attr('data-rowId')]應該提供所有關於僱員。 而不是存儲employeeid並循環查找僱員表以查找匹配的employeeid,rowid應該做到這一點。這很簡單。但沒有打動我。
我們可以給出什麼可能的答案?首先*顯而易見的問題,你的記錄大小是多少? **細節**的尺寸是多少? –
如果你已經有了javascript中的信息,我會避免再做一次ajax調用。在某些時候,您將不得不搜索相應的ID的記錄,不妨在javascript中進行。 – dckuehn
它取決於你的字段數量,如果使用JavaScript,將工作速度快,而不是使用的數據庫。 Databse ajax響應了一些時間。 – Zeeshan