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 ada secepat mungkin.

Pengambilan data

Gunakan pemilihan lajur eksplisit

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

Gunakan imej pada galeri, jadual dan borang dengan berhati-hati

Gunakan Dataverse versi lakaran kecil imej untuk galeri dan jadual. Dataverse Lakaran 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 di galeri atau meja. Letakkan imej yang memerlukan panggilan berasingan pada borang terperinci. Pertimbangkan untuk tidak memaparkan imej penuh secara lalai. Imej terperinci penuh boleh berguna dan penting kepada pengguna. Walau bagaimanapun, anda boleh menyediakan imej ini kepada pengguna melalui tindakan pengguna yang eksplisit, contohnya, butang atau navigasi ke halaman yang berasingan. SharePoint mempunyai pelbagai imej bersaiz pertengahan yang boleh anda gunakan untuk digunakan pada borang pendek imej penuh. Dataverse hanya mempunyai dua saiz: Lakaran Kecil dan Penuh.

Pengiraan

Pisahkan formula dengan App.formula

Penggunaan App.formulas dan formula bernama boleh membantu dengan kelajuan muat aplikasi dan navigasi halaman kerana ia membolehkan Power Fx untuk memutuskan 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 yang dinamakan membolehkan pengiraan yang lebih cekap kerana Power Fx boleh menjadualkan kerja dan ia membolehkan penggunaan semula. Untuk mendapatkan maklumat lanjut, lihat Formula aplikasi.

Gunakan Serentak

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

Tangguhkan kemas kini penting kepada langkah UI bukan menyekat

Kemas kini besar pada sumber data mungkin mengambil sedikit masa untuk disiapkan. Tetapi pengguna mengharapkan UI mengembalikan kawalan kepada mereka dengan cepat. Tugas mungkin sama ada berurutan 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 tugas segerak yang paling 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 panjang sebagai langkah perniagaan yang jelas. Anda diluluskan untuk meneruskan langkah seterusnya melalui isyarat proses perniagaan. Contohnya ialah kelulusan. Kelulusan mungkin 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 UI seperti item menu.

Contoh tugas tak segerak ialah penyiapan pesanan. Pelanggan mengemas kini bakul pesanan, mengerjakan pesanan mereka dan kemudian membuat pesanan. Tetapi beberapa kemas kini mesti berlaku sebelum pelanggan diberi tarikh penghantaran yang disahkan. Dalam contoh ini, Tarikh Penghantaran bukanlah sesuatu yang boleh anda berikan dengan mudah serta-merta. , anda boleh menangguhkan bahagian kemas kini ini kepada e-mel yang dihantar kepada pelanggan kemudian.

Untuk tugas segerak, anda selalunya akan menggunakan kod dalam Power Apps untuk tugas penyekatan UI. Sebagai contoh, kod menunggu sehingga ia mendapat nilai pulangan dan kemudian melepaskan 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 tersimpan 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 dimaklumkan tentang perubahan dan dinilai untuk setiap lelaran x. Dalam corak kedua, peraturan ini hanya dinilai sekali.

Pertimbangkan untuk mengelakkan rujukan kepada Gallery.AllItems

Apabila bekerja dengan Power Apps, sebaiknya elakkan merujuk Gallery.AllItems melainkan anda memerlukan nilai pengguna. Ini kerana setiap kali AllItems dibaca, jadual output baharu dijana. Sebaliknya, gunakan Gallery.AllItemsCount jika anda hanya ingin mengetahui bilangan item yang dimuatkan.

Gunakan Gallery.TemplateSize dengan berhati-hati

Untuk memastikan galeri ketinggian fleksibel dipaparkan dengan betul, adalah penting untuk menetapkan saiz lalai yang munasabah. Pada mulanya, kami cuba memaparkan seberapa banyak baris yang mungkin berdasarkan nilai ini. Jika anda menetapkan saiz lalai kepada 0, kami cuba memaparkan segala-galanya, kecuali beberapa kes tepi. Jika anda menggunakan formula, pastikan anda menetapkan nilai minimum apabila formula mungkin dinilai 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 iaitu 20.

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