WedX - журнал о программировании и компьютерных науках

Как показать счетчик при выполнении HTTP-запроса (Appcelerator)

В настоящее время я пытаюсь показать счетчик при выполнении HTTP-запроса, который завершится после завершения вызова. Я построил несколько разных спиннеров, но все останавливают анимацию, как только начинается звонок.

var spinnerArray = [];
for (var i = 0; i < 20; i++) {
    spinnerArray.push('/images/preloaderGif/preloader'+ ("0" + i).slice(-2) + '.gif');
}
$.spinner.images = spinnerArray; 
$.spinner.duration = "200"; 
$.spinner.repeatCount = "0";

spin();

function spin(){
    $.spinner.start();
    callHTTP() //Prewritten function
    Ti.App.addEventListener('callEnd', function(e){
        $.spinner.stop();
    });
}

Это приводит к тому, что счетчик никогда не появляется. При выводе вызова или вложении его в течение тайм-аута счетчик вращается бесконечно или до тех пор, пока не истечет тайм-аут.

Есть ли способ, чтобы счетчик продолжал вращаться во время вызова?


Ответы:


1

На самом деле, есть гораздо лучший и очень простой способ отображения индикатора. Просто следуйте инструкциям ниже.

  1. Загрузите этот виджет виджет индикатора загрузки и добавьте его в свой проект в папке app->widgets. Создайте папку виджета, если она не существует.

  2. Добавьте эту строку "nl.fokkezb.loading" : "*" в файл app->config.json в словаре dependencies, как показано на снимке экрана ниже. введите здесь описание изображения

  3. Добавьте эту строку Alloy.Globals.loading = Alloy.createWidget("nl.fokkezb.loading"); в файл alloy.js.

Наконец, вы можете использовать этот код для правильного отображения/скрытия индикатора при вызове HTTP-запросов.

function callHTTP() {
    if (!Ti.Network.online) {
       return;
    }

    Alloy.Globals.loading.show();

    var xhr = Ti.Network.createHTTPClient({
        onerror : function(e) {
            Alloy.Globals.loading.hide();

        },

        onload : function(e) {
            Alloy.Globals.loading.hide();

           // run your additional code here
        },
    });

    xhr.open("GET", url);
    xhr.send();
}


callHTTP();

Используя этот виджет, вам не нужно будет писать длинные, подверженные ошибкам коды для разных проектов. Просто добавьте этот виджет, и вы сможете показывать/скрывать индикатор загрузки всего двумя строками кода.

Помните одну вещь: обратные вызовы XHR error/success — это единственные места, где вы можете написать код, чтобы скрыть индикаторы, поскольку вы никогда не можете быть уверены, когда HTTP-запрос будет завершен.

01.11.2017

2

Вы можете использовать ActivityIndicator: https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ActivityIndicator

$.activityIndicator.show();
var xhr = Ti.Network.createHTTPClient({
    onerror : function(e) {
        // code
        $.activityIndicator.hide();
    },
    onload : function(e) {
        // code
        $.activityIndicator.hide();
    },
});

xhr.open("GET", url);
xhr.send();
02.11.2017
Новые материалы

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]