Я хочу отображать «загрузочный» счетчик, пока данные полностью не загрузятся с сервера. Как это сделать в javascript для salesforce lw c? - PullRequest
0 голосов
/ 27 апреля 2020

Я использую 2 функции в последовательности: 1. GetMetadata 2. GetTableData Используя значения метаданных, таблица готовится и отображается. Я хочу отображать «загрузку» счетчика, пока не будет произведена полная выборка с сервера для данных таблицы. Как лучше всего отобразить этот счетчик? Он должен перестать отображать счетчик, как только данные будут получены и таблица будет готова. Я использую Jquery для отображения таблицы.

Ответы [ 3 ]

0 голосов
/ 27 апреля 2020

В долгосрочной перспективе есть шанс, что вам не понадобится jQuery, LW C может иметь все, что вам нужно для извлечения данных, отображения таблиц ... Ну, не буду делать красивые графики, но есть много примеры того, как связать внешние библиотеки.

Проверьте, даст ли мой ответ здесь несколько советов по загрузке данных и счетчиков: Отображение индикатора загрузки при вызове Apex в Salesforce LW C

Если у вас есть «цепочка последовательных» зависимых вызовов и вам нужны результаты одного в другом ... на Trailhead есть хорошее самостоятельное обучение современным JavaScript. Он пытается говорить об общих «новых» вещах, которые вы, возможно, раньше не видели, но которые делают вас действительно эффективными, когда вы хотите использовать LW C, и помогают понять множество примеров: https://trailhead.salesforce.com/en/content/learn/modules/modern-javascript-development/write-asynchronous-javascript?trail_id=learn-to-work-with-javascript

Если у вас нет времени на это и вы просто хотите быстрый и грязный пример - проверьте это: https://salesforce.stackexchange.com/questions/255958/chain-wire-methods-together-in-lightning-web-components

0 голосов
/ 27 апреля 2020

Добавьте отсюда загрузочный счетчик https://loading.io/css/ с помощью data-count для отслеживания количества неполных функций

<div id="loading" data-count="2" class="lds-dual-ring"></div>

Тогда ваш JavaScript будет выглядеть следующим образом:

$.ajax({
         url:'your-GetMetadata-url',
         success:function(data){
           //prepare and render
           checkLoadingState();
         }
});

$.ajax({
         url:'your-GetTableData-url',
         success:function(data){
           //prepare and render
           checkLoadingState();
         }
});

//this function checks if all completed.
function checkLoadingState(){
  var $loader=$('#loading'),
      counter=Number($loader.data('count') -1);

  if(counter==0){ // all finished?
    $loader.hide();
  }else{
    $loader.data('count',counter);
  }
}
0 голосов
/ 27 апреля 2020

Вы можете создать страницу / вид загрузки Spinner, которая будет состоять из html и css. Желаемые изменения дизайна и прозрачности могут быть добавлены на него.

Вы можете визуализировать это представление в DOM двумя способами:

  1. Визуализировать DOM при первом запросе ajax, и вы можете завершить его при получении успешного обратного вызова. для того же. Рендеринг снова для второго запроса и впредь. Это может привести к небольшим колебаниям в пользовательском интерфейсе, поскольку в очереди два запроса. Для этого вы можете попробовать второй метод.

  2. Визуализация DOM при первом запросе ajax и закрытие страницы loadingSpinner при получении успешного обратного вызова последней последовательности.

...