Это не вопрос о чем-то, где я застреваю. Речь идет о хорошей практике и производительности. Мой код работает правильно. Но я хочу знать правильный способ выполнения этой задачи. Возможно, я уже прав. Просто посмотрите на сценарий и код и, пожалуйста, предложите мне правильный путь.Угловые js извлекают данные из нескольких таблиц одновременно
Требование
У меня есть около около 20 таблиц в базе данных, когда пользователь входит в систему и перейти на страницу приборной панели, мне нужно, чтобы отобразить данные из всех таблиц. Не обязательно показывать все данные, поэтому я получаю 25 строк из каждой таблицы, используя Angular $ http и отображая на странице панели инструментов.
Код
Мой Угловая JS код:
$scope.$on('$viewContentLoaded', function (event) {
$scope.loadDashboardQue(event, '/route1/getDashboardData?user_id=123', 'table1');
$scope.loadDashboardQue(event, '/route2/getDashboardData?user_id=123', 'table2');
$scope.loadDashboardQue(event, '/route3/getDashboardData?user_id=123', 'table3');
$scope.loadDashboardQue(event, '/route4/getDashboardData?user_id=123', 'table4');
$scope.loadDashboardQue(event, '/route5/getDashboardData?user_id=123', 'table5');
$scope.loadDashboardQue(event, '/routeN/getDashboardData?user_id=123', 'tableN');
});
Теперь loadDashboardQue функция Defination
$scope.loadDashboardQue = function (event, url, tableName) {
$http.get(url)
.success(function (response) {
if (response.status === 'success') {
//Assigning data to HTML table
if (tableName === 'table1') {
$scope.table1Data = response.data;
}
if (tableName === 'table2') {
$scope.table2Data = response.data;
}
if (tableName === 'table3') {
$scope.table3Data = response.data;
}
if (tableName === 'table4') {
$scope.table4Data = response.data;
}
if (tableName === 'table5') {
$scope.table5Data = response.data;
}
if (tableName === 'tableN') {
$scope.tableNData = response.data;
}
} else {
console.log("Something wrong while fetching data from table ", tableName);
}
})
.error(function (error) {
console.log("The error is :", err);
});
});
HTML таблица
<table style="width:100%">
<tr>
<th>Nme</th>
<th>Id</th>
<th>Contact No</th>
</tr>
<!--Table1 Data-->
<tr ng-repeat="data in table1Data">
<td>{{ data.user_name }}</td>
<td>{{ data.user_id }}</td>
<td>{{ data.mobile }}</td>
</tr>
<!--Table2 Data-->
<tr ng-repeat="data in table2Data">
<td>{{ data.customerName }}</td>
<td>{{ data.customerId }}</td>
<td>{{ data.phone }}</td>
</tr>
<!--Table3 Data-->
<tr ng-repeat="data in table3Data">
<td>{{ data.student_name }}</td>
<td>{{ data.roll_no }}</td>
<td>{{ data.mobile }}</td>
.
.
.
<!--TableN Data-->
<tr ng-repeat="data in tableNData">
<td>{{ data.developer_name }}</td>
<td>{{ data.id }}</td>
<td>{{ data.mobile }}</td>
</tr>
</table>
В каждой таблице видно, что имя столбца отличается, поэтому я не могу показать все данные в одном ng-repeat
. Поэтому я написал отдельный ng-repeat
для каждой таблицы.
Этот код работает нормально, но , когда страница начинает загрузку, занимает больше 7 секунд, так что это мое беспокойство (качество работы). Поэтому, пожалуйста, предложите мне, если для этого будет доступен лучший способ.
Спасибо за ваше ценное время.