Pengiraan cepat

Power Fx ungkapan berkuasa dan melakukan banyak pengiraan latar belakang untuk anda secara automatik. Walaupun Power Fx mengautomasikan banyak perkara untuk anda, anda boleh memperhalusi pengiraan anda supaya secepat mungkin.

Pengambilan data

Menggunakan pilihan lajur Eksplisit

Ciri Pemilihan Lajur Eksplisit (ECS) didayakan secara lalai untuk semua apl baharu. Jika ia tidak didayakan untuk apl anda, anda harus mendayakannya. ECS secara automatik mengurangkan bilangan lajur yang diambil kepada hanya lajur yang digunakan dalam aplikasi. Jika ECS tidak didayakan, anda mungkin mendapatkan lebih banyak data daripada yang anda perlukan, yang boleh menjejaskan prestasi. Kadangkala, apabila apl menarik data masuk melalui koleksi, keturunan asal atau sumber lajur boleh hilang. Kami tidak tahu sama ada ia digunakan dan kami menjatuhkannya menggunakan ECS. Anda biasanya boleh memaksa ECS untuk bekerja untuk lajur yang hilang menggunakan ungkapan PowerFx ShowColumns selepas rujukan koleksi atau menggunakannya dalam kawalan.

Gunakan imej pada galeri, jadual dan borang dengan teliti

Gunakan Dataverse versi imej kecil imej untuk galeri dan jadual. Dataverse Imej kecil adalah kecil kira-kira 1 kilobait dan disimpan sebaris sebagai sebahagian daripada rekod, dan berguna dan pantas untuk dipaparkan pada kawalan yang menunjukkan koleksi. Semua rujukan imej lain termasuk semua SharePoint imej memerlukan panggilan berasingan dan tidak boleh diletakkan pada galeri atau jadual. Letakkan imej yang memerlukan panggilan berasingan pada borang terperinci. Pertimbangkan jangan sekali-kali menunjukkan imej penuh secara lalai. Imej terperinci penuh boleh berguna dan penting kepada pengguna. Walau bagaimanapun, anda boleh menjadikan imej ini tersedia kepada pengguna melalui tindakan pengguna eksplisit, contohnya, butang atau navigasi ke halaman berasingan. SharePoint mempunyai pelbagai imej bersaiz pertengahan yang boleh anda gunakan untuk digunakan pada bentuk yang pendek daripada imej penuh. Dataverse hanya mempunyai dua saiz: Imej kecil dan Penuh.

Pengiraan

Pisahkan formula dengan App.formula

Penggunaan App.formulas dan formula bernama boleh membantu dengan kelajuan beban aplikasi dan navigasi halaman kerana ia membenarkan Power Fx untuk menentukan masa untuk menilai formula. Ini bermakna ia tidak semestinya menilainya dalam OnStart. Di samping itu, formula yang dinamakan secara amnya boleh membantu kelajuan juga. Khususnya jika anda mempunyai skrip yang panjang, memecahkannya kepada formula bernama membolehkan pengiraan yang lebih cekap seperti Power Fx menjadualkan kerja dan ia membolehkan penggunaan semula. Untuk maklumat lanjut, lihat Formula aplikasi.

Gunakan serentak

Gunakan fungsi Serentak untuk membenarkan formula dilaksanakan pada masa yang sama. Berhati-hati memilih di mana serentak digunakan. Ia boleh memberikan beberapa kelajuan sederhana tetapi jika anda menjalankan item yang bergantung antara satu sama lain, ia boleh menyebabkan masalah masa dan pendikit.

Menangguhkan kemas kini penting kepada langkah UI tanpa sekatan

Kemas kini yang besar kepada sumber data mungkin mengambil sedikit masa untuk diselesaikan. Tetapi pengguna menjangkakan UI akan mengembalikan kawalan kepada mereka dengan cepat. Tugas mungkin sama ada berjujukan di mana kemas kini mesti selesai sebelum pengguna boleh mengambil tindakan lain atau tak segerak (kemas kini boleh menyelesaikan berasingan daripada tindakan pengguna.)

Contoh tugas segerak yang memakan masa ialah mengesahkan tempat duduk di konsert. Untuk kebanyakan tugas segerak yang memakan masa seperti ini, adalah perkara biasa untuk meletakkan bar kemajuan. UI ini sebenarnya menyekat pengguna tetapi memastikan tugas selesai sebelum elemen UI lain dikemas kini. Pendekatan ini mungkin tidak berfungsi untuk permohonan anda. Perniagaan biasanya mengendalikan langkah berurutan yang lebih lama sebagai langkah perniagaan eksplisit. Anda diluluskan untuk pergi ke langkah seterusnya melalui isyarat proses perniagaan. Contohnya ialah kelulusan. Kelulusan boleh datang dengan cepat atau mungkin ditangguhkan. Dalam UI anda boleh memberi isyarat bahawa proses itu selesai beberapa cara. Anda boleh mendayakan butang, menunjukkan mesej, menghantar e-mel atau mendayakan sebahagian daripada UI seperti item menu.

Contoh tugas tak segerak ialah penyempurnaan pesanan. Pelanggan mengemas kini bakul pesanan, bekerja melalui pesanan mereka dan kemudian membuat pesanan. Tetapi beberapa kemas kini mesti berlaku sebelum pelanggan diberi tarikh kapal yang disahkan. Dalam contoh ini, Tarikh Kapal bukanlah sesuatu yang boleh anda berikan dengan mudah. , anda boleh menangguhkan bahagian kemas kini ini ke e-mel yang dihantar kepada pelanggan kemudian.

Untuk tugas segerak, anda selalunya akan menggunakan kod dalam Power Apps untuk tugas menyekat UI. Sebagai contoh, kod menunggu sehingga ia mendapat nilai pulangan dan kemudian mengeluarkan bar kemajuan. Adalah lebih baik untuk meminimumkan jenis situasi ini. Tetapi untuk tugas yang menggunakan langkah perniagaan eksplisit atau tugas tak segerak, adalah perkara biasa untuk menggunakan perkhidmatan luaran untuk menyelesaikan tugas seperti Dataverse tindakan, prosedur disimpan atau Power Automate aliran.

Letakkan 'ForAll' dengan sewajarnya

Jika anda mempunyai ungkapan dengan ForAll dan kumpulkan yang kelihatan seperti ini:

ForAll(x, Collect(y, { … }))

Kemudian, terbalikkan ini kepada

Collect(y, ForAll(x, { … }))

Dalam corak pertama, sebarang peraturan bergantung pada koleksi y diberitahu tentang perubahan dan dinilai untuk setiap lelaran x. Dalam corak kedua, peraturan ini hanya dinilai sekali sahaja.

Pertimbangkan untuk mengelakkan rujukan kepada Gallery.AllItems

Apabila bekerjasama Power Apps, sebaiknya elakkan merujuk Gallery.AllItems melainkan anda memerlukan nilai pengguna. Ini kerana setiap kali AllItems dibaca, jadual output baru dijana. Sebaliknya, gunakan Gallery.AllItemsCount jika anda hanya ingin tahu berapa banyak item yang dimuatkan.

Gunakan Gallery.TemplateSize dengan berhati-hati

Untuk memastikan galeri ketinggian fleksibel diberikan dengan betul, penting untuk menetapkan saiz lalai yang munasabah. Pada mulanya, kami cuba memberikan sebanyak mungkin baris berdasarkan nilai ini. Jika anda menetapkan saiz lalai kepada 0, kami cuba memaparkan segala-galanya, kecuali untuk beberapa kes tepi. Jika anda menggunakan formula, pastikan anda mengesetkan nilai minimum apabila formula mungkin menilai kepada 0. Sebagai contoh, anda boleh menggunakan Max (20, varFoo + rectBar.Height). Dengan cara ini, jika varFoo dan rectBar.Height belum tersedia, kami sekurang-kurangnya menggunakan nilai yang munasabah sebanyak 20.

Nota PenangguhanOutput terutamanya untuk carian

Terdapat kelewatan satu saat sebelum perubahan dikesan, yang membolehkan anda melengkapkan menaip dan bukannya mengesan perubahan untuk setiap menaip.