Функции SaveData, LoadData и ClearData

Отнася се за: Приложения за платно

Запазва и презарежда колекция от хранилището на хоста на приложението.

Бележка

Тези функции вече могат да се използват при възпроизвеждане на приложение в уеб браузър като експериментална функция. Тази функция е деактивирана по подразбиране. За да активирате, отидете на Настройки>Предстоящи функции>Експериментално>Активирани SaveData, LoadData, ClearData в уеб плейъра." и включете превключвателя. За да изпратите отзиви относно тази експериментална функция, отидете на Power Apps форум на общността.

Описание

Функцията SaveData съхранява колекция за по-късна употреба под име.

Функцията LoadData презарежда колекция по име, с която преди това беше запазена SaveData. Не можете да използвате тази функция за зареждане на колекция от друг източник.

Функцията ClearData изчиства хранилището под конкретно име или изчиства цялото хранилище, свързано с приложението, ако не е предоставено име.

Бележка

  • Името, споделено между SaveData, LoadData и ClearData е ключ, а не име на файл. Не е необходимо да е сложно, тъй като имената са уникални за всяко приложение и няма опасност от конфликт с име. Името не трябва да съдържа нито един от тези знаци: *".?:\<>|/.
  • SaveData е ограничен до 1 MB данни за Power Apps, който работи в Teams и в уеб браузър. Няма фиксиран лимит за Power Apps, който се изпълнява в мобилен плейър, но има практически ограничения, обсъдени по-долу.
  • Не използвайте SaveData за съхраняване на чувствителни данни в мрежата, тъй като те ще се съхраняват в обикновен текст.

Използвайте тези функции, за да подобрите ефективността на стартиране на приложението чрез:

  • Кеширане на данни в App.OnStart формула на първо изпълнение.
  • Презареждане на локалния кеш при следващи тиражи.

Можете също да използвате тези функции, за да добавите прости възможности за работа офлайн към приложението си.

Не можете да използвате тези функции в браузъра, когато:

  • Авторизирате приложението в Power Apps Studio.

За да тествате приложението си, стартирайте го в Power Apps Mobile на iPhone или Android устройство.

Тези функции са ограничени от обема на наличната памет за приложения, тъй като работят върху колекция в паметта. Наличната памет може да варира в зависимост от фактори като:

  • Устройството и операционната система.
  • Паметта, която Power Apps плейърът използва.
  • Сложност на приложението с екрани и контроли.

Тествайте приложението си с очакваните сценарии за типа устройства, които очаквате приложението да се изпълнява при съхранение на големи данни. Очаквайте да имате между 30 MB и 70 MB свободна памет като цяло.

Тези функции зависят от колекцията, дефинирана имплицитно с 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( Collection, Name )
LoadData( Collection, Name [, IgnoreNonexistentFile ])

  • Collection - Задължително. Колекция за съхранение или зареждане.
  • Name - Задължително. Име на хранилището. Името трябва да е едно и също, за да запазва и зарежда един и същ набор от данни. Пространството за имена не се споделя с други приложения. Имената не трябва да съдържат нито един от тези знаци: *".?:\<>|/.
  • IgnoreNonexistentFile - Незадължително. Булева стойност, показваща какво да направите, ако файлът вече не съществува. Използвайте невярно (по подразбиране), за да върнете грешка и вярно за потискане на грешката.

ClearData( [Име] )

  • Име - По желание. Име на хранилището, запазено със SaveData. Ако Име не е предоставено, цялото хранилище, свързано с приложението, се изчиства.

Примери

Формула Описание Резултат
SaveData( LocalCache, "MyCache" ) Запишете колекцията LocalCache на устройството на потребителя под името "MyCache", подходящо за LoadData за извличане по-късно. Данните се записват в хоста на приложението под името "MyCache".
LoadData( LocalCache, "MyCache" ) Зарежда LocalCache колекция от устройството на потребителя под името "MyCache", предварително запаметено с повикване до SaveData. Данните се зареждат от хоста на приложението под името "MyCache".
ClearData( "MyCache" ) Изчиства хранилището под името "MyCache". Всички данни, съхранявани под това име, вече няма да бъдат достъпни чрез LoadData. Данните се премахват от хоста на приложението под името "MyCache".
ClearData() Изчистете цялото хранилище, свързано с това приложение. Данните, съхранявани от други приложения, не се засягат. Всички данни се премахват от хоста на приложението.

Прост офлайн пример

Следвайки прост пример, заснема и съхранява имената и снимките на ежедневни елементи, докато сте офлайн. Тя съхранява информацията в локалното хранилище на устройството за по-късна употреба. Това позволява приложението да бъде затворено или устройството да се рестартира без загуба на данни.

Бележка

Този пример използва контрол на камерата за заснемане на изображения. Тъй като SaveData е ограничен до 1 MB данни, когато работи в Teams или уеб браузър, този пример няма да работи с повече от няколко изображения. Освен това, в зависимост от камерата, може да не работи дори с едно изображение. Използвайте устройство, за да работите през този пълен пример, или премахнете частта за управление на камерата и картината от този пример, за да работите в Teams или в уеб браузър.

  1. Създайте празно приложение за платно с оформление на таблет. За повече подробности прочетете създаване на приложение от шаблон и изберете Оформление на таблета под Празно приложение.

  2. Добави Въвеждане на текст контрола и Камера контрола и подредете ги приблизително, както е показано:

    Въвеждане на текст и контрола на камерата, добавени към празен екран.

  3. Добавете контрола Бутон.

  4. Щракнете двукратно върху бутона за управление, за да промените текста на бутона Добавете елемент (или да модифицирате свойството Текст).

  5. Задайте свойството OnSelect на контрола с бутони към тази формула, който ще добави артикул към нашата колекция:

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

    Добавена е контрола на бутон с текст

  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 два пъти.

По-напреднал офлайн пример

За подробен пример вижте статията на прости възможности за офлайн.