Поділитися через


Функції SaveData, LoadData та ClearData

Застосовується до: програм Canvas

Зберігає та перезавантажує збірку зі сховища хоста програми.

Нотатка

Тепер ці функції можна використовувати під час відтворення програми у браузері як експериментальної функції. За замовчуванням цю функцію вимкнуто. Щоб увімкнути цю функцію, перейдіть до меню Параметри>Майбутні функції>Експериментальні>Увімкнено SaveData, LoadData, ClearData у веб-відтворювачі і увімкніть вимикач. Щоб надіслати відгук щодо цієї експериментальної функції, перейдіть на форум спільноти Power Apps.

Опис

Функція SaveData зберігає колекцію для подальшого використання під обраним ім’ям.

Функція LoadData перезавантажує колекцію під обраним ім’ям, яка раніше була збережена за допомогою функції SaveData. Цю функцію не можна використовувати для завантаження колекції з іншого джерела.

Функція ClearData очищає сховище із певним іменем, або очищає усі сховища, пов'язані з програмою, якщо не вказано жодного імені.

Нотатка

  • Ім'я, що використовується функціями SaveData, LoadData і ClearData —– це ключ, а не ім'я файлу. Воно не повинна бути складним, оскільки імена унікальні для кожної програми, тому не існує небезпеки конфлікту імен. Ім’я не може містити такі символи: *".?:\<>|/.
  • SaveData обмежується 1 Мбайт даних для роботи Power Apps в Teams і веб-браузері. Для Power Apps на мобільному програвачі немає фіксованого обмеження, але є практичні обмеження, які обговорюються нижче.
  • Не використовуйте SaveData для збереження в мережі конфіденційних даних, оскільки вони зберігатимуться у форматі звичайного тексту.

Використовуйте ці функції для покращення продуктивності запуску програми наступним чином:

  • Кешування даних у формулі App.OnStart під час першого запуску.
  • Перезавантаження локального кешу під час наступних запусків.

Крім того, ці функції можна використовувати для додавання до програми простих можливостей для автономного режиму.

Ці функції не можна використовувати в браузері, якщо:

  • Програму створено в Power Apps Studio.

Щоб протестувати програму, запустіть її в Power Apps Mobile на пристрої iPhone або Android.

Ці функції обмежені обсягом доступної пам’яті програми, оскільки вони працюють в колекції в пам’яті. Доступна пам'ять може залежати від нижче зазначених факторів.

  • Пристрій і операційна система.
  • Пам’ять, яку використовує програвач Power Apps.
  • Складність програми з екранами та елементами керування.

Протестуйте програму з очікуваними сценаріями на типах пристроїв, на яких вона буде запускатись у разі збереження великих даних. Зазвичай слід мати від 30 до 70 МБ доступної пам’яті.

Ці функції залежать від колекції, явно визначеної за допомогою функції Collect або ClearCollect. Вам не потрібно викликати функцію Collect або ClearCollect, щоб завантажити дані в колекцію для її визначення. Поширеною ситуацією є використання LoadData після попереднього використання функції SaveData. Все, що необхідно —це наявність цих функцій у формулі, щоб неявно визначити структуру колекції. Додаткові відомості див. в розділі про створення та видалення змінних.

Завантажені дані будуть додані до колекції. Використовуйте функцію Clear перед викликом LoadData, якщо потрібно почати з пустої колекції.

Безпека даних

Уважно продумайте ізоляцію та шифрування даних, що зберігаються за допомогою SaveData , і вирішіть, чи підходить це для ваших потреб, особливо якщо пристрої використовуються спільно з кількома користувачами.

Дані, що зберігаються за допомогою SaveData , гравці ізолюють їх від інших Power Apps Power Apps . Дані зберігаються на основі ідентифікатора програми, що автоматично ізолює простір імен SaveData між ними Power Apps.

Операційна система та браузер відповідають за ізоляцію даних між Power Apps іншими програмами на пристрої та з веб-сайтами. Наприклад, операційна система відповідає за ізоляцію даних, що зберігаються в, Microsoft Outlook від даних, що зберігаються в, Power Apps а також за ізоляцію цих даних з таких веб-сайтів, як Bing.com або PowerApps.com. Вбудовані в операційну систему ізольовані програми використовуються для зберігання SaveData , які зазвичай недоступні для користувача або приховані від нього.

Під час використання однієї програми операційна система та браузер також відповідають за ізоляцію даних між користувачами на рівні операційної системи. Наприклад, якщо два різні користувачі використовують спільний комп’ютер і використовують два різні облікові дані для входу в Windows, операційна система відповідає за ізоляцію даних між двома користувачами Windows.

Дані можуть бути ізольовані між різними Power Apps користувачами, якщо користувач операційної системи однаковий. Не кожен Power Apps гравець ставиться до цього однаково. Наприклад, коли користувач увійшов до системи як той самий користувач Windows, у Power Apps програвачі він виходить із Power Apps системи та входить як інший Power Apps користувач. Дані, що зберігаються в програмі до зміни Power Apps користувача, можуть бути доступні другому Power Apps користувачеві в тій самій програмі. Дані також можуть бути видалені, і перший Power Apps користувач може більше не мати до них доступу. Поведінка у різних Power Apps гравців різна.

Операційна система також може шифрувати дані, або ви можете використовувати інструмент керування мобільним пристроєм, наприклад Microsoft Intune. Дані, які зберігаються під час відтворення програми у браузері, не шифруються.

Синтаксис

SaveData(колекція,ім’я )
LoadData(колекція,ім’я [, IgnoreNonexistentFile ])

  • Колекція- Обов’язковий. Колекція, яку потрібно зберегти або завантажити.
  • Ім’я - Обов’язкове. Ім’я сховища. Ім’я має бути однаковим, щоб зберегти та завантажити той самий набір даних. Простір імен не використовується спільно з іншими програмами. Імена не можуть містити такі символи: *".?:\<>|/.
  • IgnoreNonexistentFile - необов’язковий. Логічне значення, яке вказує на те, що робити, якщо файл ще не існує. Використовуйте значення false (за замовчуванням), щоб повернути помилку, та значення true, щоб заблокувати помилку.

ClearData( [ім’я] )

  • Ім’я - Необов’язково. Ім'я сховища, що раніше зберігалося за допомогою функції SaveData. Якщо Ім'я не вказано, сховище, пов'язане із програмою, буде очищено повністю.

Приклади

Формула Опис Результат
SaveData( LocalCache, "MyCache" ) Збережіть колекцію LocalCache на пристрій користувача під назвою "MyCache", що підходить для LoadData для завантаження пізніше. Дані зберігаються до хоста програми під іменем «MyCache».
LoadData( LocalCache, "MyCache" ) Завантажує колекцію LocalCache із пристрою користувача під назвою "MyCache", яка раніше зберігалася з викликом до SaveData. Дані завантажуються із хоста програми під іменем «MyCache».
ClearData( "MyCache" ) Очищає сховища із іменем «MyCache». Будь-які дані, збережені під цим ім'ям, тепер будуть недоступні для отримання за допомогою LoadData. Дані вилучаються із хоста програми під іменем «MyCache».
ClearData() Очистить усе сховище, пов'язане із цією програмою. Дані, збережені іншими програмами, не зазнають змін. Усі дані вилучаються з хоста програми.

Простий автономний приклад

Наступний простий приклад записує та зберігає імена та фотографії повсякденних елементів у автономному режимі. Він зберігає інформацію в локальному сховищі пристрою для подальшого використання. Це дасть змогу закрити програму або перезавантажити пристрій, не втрачаючи дані.

Нотатка

У цьому прикладі елемент керування камери використовується для запису зображень. Оскільки SaveData обмежується 1 Мбайт даних під час роботи в Teams або браузері, цей приклад не працюватиме з кількома зображеннями. Крім того, залежно від відеокамери вона може не працювати з одним зображенням. Використовуйте пристрій для роботи з цим повним прикладом або видаліть елемент керування камерою та зображення на цьому прикладі для роботи в Teams або у веб-браузері.

  1. Створіть пусту компоновану програму з макетом планшета. Додаткові відомості читайте в розділі про створення програми з шаблона та виберіть Макет планшета у розділі Пуста програма.

  2. Додайте елемент керування Введення тексту та елемент керування Камера та розташуйте їх приблизно так, як показано нижче.

    Текстове введення та керування камерою додано на порожній екран.

  3. Додайте елемент керування Кнопка.

  4. Двічі клацніть елемент керування кнопкою, щоб змінити текст кнопки на Додати елемент (або змініть властивість Текст).

  5. Встановіть властивість OnSelect елемента керування кнопкою на цю формулу, яка додасть один елемент до нашої колекції.

    Collect( MyItems, { Item: TextInput1.Text, Picture: Camera1.Photo } )
    

    Додано елемент керування кнопкою з текстом «Додати елемент» та набором властивостей OnSelect

  6. Додайте інший елемент керування Кнопка.

  7. Двічі клацніть елемент керування кнопкою, щоб змінити текст кнопки на Зберегти дані (або змініть властивість Текст).

  8. Встановіть цю формулу для властивості OnSelect елемента керування кнопкою, щоб зберегти колекцію на локальний пристрій:

    SaveData( MyItems, "LocalSavedItems" )
    

    Додано елемент керування кнопкою з текстом

    Зараз дуже спокусливо протестувати цю кнопку, оскільки вона ні на що не впливає. Але ви побачите лише помилку, оскільки ви працюєте у веб-браузері. Спочатку збережіть програму та відкрийте її на пристрої, перш ніж виконати наступні кроки, щоб перевірити цю формулу.

  9. Додайте третій елемент керування Кнопка.

  10. Двічі клацніть елемент керування кнопкою, щоб змінити текст кнопки на Завантажити дані (або змініть властивість Текст).

  11. Встановіть цю формулу для властивості OnSelect елемента керування кнопкою, щоб завантажити колекцію з локального пристрою:

    LoadData( MyItems, "LocalSavedItems" )
    

    Додано елемент керування кнопкою з текстом

  12. Додайте елемент керування Галерея з вертикальним розташуванням, який містить області зображень і тексту:

    Вибір сорту галереї,

  13. Коли відобразиться запит, виберіть колекцію MyItems як джерело даних для цієї галереї. Це встановить властивість Елементи елемента керування Галерея:

    Галерея: підбір джерело даних.Елемент керування зображенням у шаблоні галереї має за замовчуванням використовувати властивість Зображення як ThisItem.Picture , а елементи керування мітками мають використовувати властивості Text за замовчуванням на ThisItem.Item. Перевірте ці формули, якщо після додавання елементів на зазначених нижче кроках у галереї нічого не відобразиться.

  14. Розташуйте елемент керування праворуч від інших елементів керування.

    Галерею переміщено праворуч від екрана.

  15. Збережіть програму. Якщо ви зберігаєте програму перший раз, її не потрібно публікувати. Якщо це не перший раз, опублікуйте програму після збереження.

  16. Відкрийте програму на пристрої, наприклад на телефоні або планшеті. SaveData і LoadData не можна використовувати в Studio або у веб-браузері. Оновіть список програм, якщо програма не відобразиться негайно. Відображення програми на пристрої може зайняти кілька секунд. Вийдіть і знову зайдіть у свій обліковий запис. Це також може допомогти.

    Додаток працює без додавання елементів.Завантаживши програму, ви можете від’єднатися від мережі та запустити її в автономному режимі.

  17. Введіть ім’я та зробіть зображення елемента.

  18. Натисніть кнопку Додати елемент. Повторіть додавання елементів кілька разів, щоб завантажити колекцію.

    Додаток працює з трьома доданими елементами.

  19. Натисніть кнопку Зберегти дані. Дані в колекції буде збережено на локальному пристрої.

  20. Закрийте програму. Колекцію в пам’яті буде втрачено, включно з усіма іменами і зображеннями елементів, але вони залишаться в сховищі пристрою.

  21. Запустіть програму знову. Колекція в пам’яті буде знову відображатися пустою в галереї.

    Додаток знову працює без додавання елементів.

  22. Натисніть кнопку Завантажити дані. Колекцію буде знов заповнено з даних, збережених на вашому пристрої, і ваші елементи повернуться в галерею. Колекція була порожньою, перш ніж ця кнопка викликала функцію LoadData. Не потрібно було викликати функцію Collect або ClearCollect перед завантаженням даних зі сховища.

    Додаток працює з трьома елементами, відновленими після виклику функції LoadData.

  23. Натисніть кнопку Завантажити дані знов. Збережені дані буде додано до кінця колекції, і смуга прокручування відобразиться в галереї. Якщо потрібно замінити елементи, а не додати, спочатку скористайтеся функцією Clear, щоб очистити колекцію, перш ніж викликати функцію LoadData.

    Додаток працює з шістьма елементами, відновленими після подвійного виклику функції LoadData.

Розширений автономний приклад

Докладний приклад див. в статті з простих можливостей для автономного режиму.