Ответ 1
Я предполагаю, что вы не хотите загружать данные на следующих экранах, предоставляя пользователям безупречный опыт.
Да, вы можете начать загрузку URL-адресов на первую страницу, так как вы хотите, чтобы они получали данные, которые вы хотите использовать на будущих экранах.
В терминах хранения
- В AngularJs, если вы хотите, чтобы что-то сохранялось во всей области применения, вы должны использовать $rootscope [остерегайтесь хранить много данных может привести к проблемам с памятью, вам необходимо регулярно ее очищать].
- Или другой вариант - сохранить его в Localstorage. И выберите в соответствии с вашими потребностями.
- Если вы хотите, вы можете делиться этими массивами между различными контроллерами экранов.
Во время загрузки [получения ответа от сервера] вы можете сделать две вещи
1. get single JSON response having all the data
2.have multiple urls, and load them serially.
В соответствии с вашими требованиями по загрузке 5-го (страничного) экрана данных заблаговременно это не очень хорошая практика, и даже прекратить просмотр пользователями обновлений, но как ваше требование. У нас есть несколько подходов:
- Добавьте всю категорию и их соответствующие данные в соответствии с вашим пастебином, как сердечный, тогда он подробнее.. почка затем подробнее.. Вы можете сделать это с помощью управления иерархиями [категорий], такими как основная группа родителей, и дочерней дочерней группой в JSONArray и сведениями в JSONObject. (Это изменение будет на стороне сервера-отправителя)
Вам нужно загрузить только один URL-адрес, чтобы получить все данные. Поэтому вам не нужно загружать разные URL-адреса, как сейчас. Но будьте осторожны, это будет большой Джон. Поэтому, когда вы храните его, разделяйте категории и требуемые данные [экранные требования] и храните их в локальном хранилище, чтобы они были легко доступны.
- Другой подход заключается в том, что вы должны указать имена подгрупп [category] для загрузки, чтобы загрузка была похожа на запуск одного и того же URL с разными именами категорий для получения данных и сохранения их в локальном хранилище.
Это может привести к пожару около 10-15 [зависит от ваших категорий]. URL-адреса могут влиять на ответ потока пользовательского интерфейса. Это не потребует никаких изменений в ответе на сервер.
**
Программный подход к загрузке URL-адресов последовательно:
**
Загрузка URL: этот метод получит подробную информацию о конкретной категории [id или что-то еще работает для вас]. Это запустит HTTP-запрос и вернет результат.
getCategoryDetails(category){
url = url+category;
return $http({
method: 'GET',
url: url,
headers: --
}).then(function onSuccess(response) { //<--- `.then` transforms the promise here
//Вы можете хранить эфир в локальном хранилище ответ возврата }, функция onError (response) { throw customExceptionHadnler.getErrorMsg(response.status, response.data); }); }
Параллельно: этот метод будет делать это параллельно, мы просто загружаем категории [ids], поскольку у нас есть все они, а затем используйте $q.all, чтобы дождаться завершения загрузки URL.
function loadUrlsParallel(urls) {
var loadUrls = []
for(var i = 0; i < urls.length; i++) {
loadUrls.push(getCategoryDetails(urls[i]))
}
return $q.all(loadUrls)
}
Первый API: этот способ загрузки первого URL-адреса, а затем Загрузка URL-адресов в метод параллельного вызова выше
getListOfCategories(){
url = url;
return $http({
method: 'GET',
url: url,
headers: --
}).then(function onSuccess(response) { //<--- `.then` transforms the promise here
//Вы можете хранить эфир в локальном хранилище или напрямую отправлять ответ ответ возврата }, функция onError (response) { throw customExceptionHadnler.getErrorMsg(response.status, response.data); }); }
URL: вам нужно подготовить список URL-адресов с добавочной категорией загрузить после загрузки первого URL [ожидая, что это вернет вам все категории, которые потребуются в вашем приложении заранее) и перейти к loadUrls Параллельный метод.
Вы можете написать методы loadUrl в соответствии с вашим удобством, здесь задан как пример, так что он не может работать как есть.
Вы можете загружать ответы API каждый раз из локального хранилища, где вы храните его после вызовов API. Таким образом, это не будет просить вас выполнять вызовы API на каждом лаянге страниц [screen]
Надеюсь, это поможет вам и решит вашу проблему.