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

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

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

Описание

Функцията 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 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( Колекция, име )
LoadData( Колекция, име [, IgnoreNonexistentFile ])

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

ClearData( [Име] )

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

Примери

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

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

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

Бележка

Този пример използва контрол на камерата за заснемане на изображения. Тъй като SaveData е ограничен до 1 МБ данни, когато се изпълнява в 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 колекция като източник на данни за тази галерия. Това ще зададе свойството Елементи на контролата галерия:

    Избор на галерия на източник на данни. Контролата за изображение в шаблона на галерията трябва да придаде по подразбиране свойството си Image на 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 функцията два пъти.

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

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