أفضل ممَارسَات البرمجة النصية للعملاء
رَغم أنَّ تطويرَ البرَامج النصِّية للعَميل قد يبدُو سهلاً لمُطوري JavaScript المُخضرمين، إلا أنَّه مِن الضَروري اتبَاع أفضَل الممَارسَات عِند تَنفيذِهَا. غَالبًا مَا يتجَاهل المُطورون إمكَانِية وُصُول المُستخدِمين إلى البيَانَات عَبر وسَائل أخرَى. على سبيل المثَال، يمكنهم استخدَام استيرَاد البيَانَات أو تصديرهَا، واستوديو المنشئ، وتطبيقَات اللوحة، وتطبيقَات سطح المكتب التَابعة لجهَات خَارجية، والبرمجة النصية لـ Shell، ومَا إلى ذلك. يجب عليك استخدَام البرمجة النصية للعميل لحل مشكلات واجهة المستخدم المحددة من جَانب العميل وتحسين تجربة المستخدم فِي بيئة تعتمد عَلى النموذج. برنَامج. وهَذا ليسَ تدبيرًا أمنيًا ولا حلاً عَالميًا. فِي كثير من الأحيَان، يجب الجمع بين نهج جَانب العميل وحل جَانب الخَادم، مثل المكون الإضَافِي لـ Dataverse لضمَان أن جميع نقَاط الوصول تلبي متطلبات العمل.
استخدَام مدقق الحلول
يمكن لمدقق الحلول إجرَاء فحوصَات تحليلية ثَابتة عَلى الحلول الخَاصة بك مقَابل مجموعة من قواعد أفضل الممَارسَات وتحديد هذه الأنمَاط الإشكَالية بسرعة. يتضمن هذا التدقيق JavaScript المستخدم فِي البرمجة النصية للعميل. يمكن للمدقق تحديد مشكلات الأدَاء والاستقرَار والموثوقية عند ظهورهَا، والتي يمكن أن تؤثر سلبًا عَلى تجربة المستخدم. يمكن للمدقق أيضًا اكتشَاف استخدَام الأسَاليب المهملة. عند التَشغيل بانتظَام، يمكنك تحديد المشكلات ومعَالجتهَا بشكل استباقي قبل إصدَارهَا للمستخدمين. يمكنك تَشغيل مدقق الحلول عند الطلب من maker portal أو كجُزء من عملية إنشَاء تلقَائية. تسمح هذه الأتمتة بتَشغيله بانتظَام وأن يصبح جُزءًا من عملية إدَارة دورة حيَاة التطبيق المستمرة.
لمزيد من المعلومَات حول استخدَام مدقق الحلول، رَاجع استخدَام مدقق الحلول للتحقق من صحة تطبيقَاتك Power Apps فِي وثَائق المنتج.
قواعد العمل مقَارنة بالبرنَامج النصي للعميل
قواعد العمل هي ميزة متوفرة فِي التطبيقَات المستندة إلى النموذج والتي تمكّن المستخدمين من القيَام بالإجرَاءَات المطلوبة بشكل متكرر عَلى نموذج بنَاءً عَلى متطلبات وشروط معينة. على وجه التحديد، يمكن لقواعد العمل القيَام بالمهَام التَالية:
تعيين قيم الحقل
مسح قيم الحقل
تعيين مستويَات متطلبات الحقل
إظهَار عنَاصر تحكم عمود النموذج أو إخفاؤهَا
تمكين عنَاصر تحكم عمود النموذج أو تعطيلهَا
التحقق من صحة البيَانَات وإظهَار رسَائل الخطأ
إنشَاء توصيَات عمل بنَاءً عَلى ذكَاء الأعمَال.
إحدى السمَات المميزة لقواعد العمل هي أن القواعد عَلى نطَاق الجدول يمكنهَا تطبيق المنطق تلقَائيًا عَلى الواجهة الخلفية حيثمَا أمكن ذلك. يضمن هذا النطَاق اتسَاق التطبيق بغض النظر عمَا إذا كَان الإجرَاء يتم تَشغيله عبر واجهة المستخدم أو استيرَاد البيَانَات أو استدعَاء أسلوب API. لن يكون البرنَامج النصي للعميل وحده معَادلاً كَاملاً فِي هذه السينَاريوهَات.
على الرغم من أن إطَار عمل قواعد العمل المتوفر قوي، فقد توجد بعض السينَاريوهَات حيث لا تستطيع قواعد العمل تنفيذ متطلبات معينة بشكل كَامل. فِي هذه الحَالات، يمكن للبرمجة النصية للعميل تضييق الاختلافات بين قواعد العمل والمتطلبات الأكثر تطلبًا. فيمَا يلي بعض القيود الشَائعة التي يواجههَا المستخدمون مع قواعد العمل حيث قد يكون البرنَامج النصي للعميل حلاً أفضل.
البيَانَات المرجعية ذات الصلة
إذا كنت بحَاجة إلى الرجوع إلى البيَانَات فِي جدول ذي صلة، مثل عنوان جهة الاتصَال الأسَاسية للحسَاب، فستحتَاج إلى استخدَام البرنَامج النصي للعميل وواجهة برمجة تطبيقَات الويب.
يجب تَشغيل المنطق فِي حدث حفظ النموذج
يتم تَشغيل قواعد العمل فقط عند تحميل النموذج وتغيير الحقل مَا لم تقم بتعيين النطَاق عَلى الجدول. يجب عليك استخدَام برنَامج نصي للعميل إذا كنت بحَاجة إلى تَشغيل منطق الأعمَال فِي حدث حفظ النموذج.
ظروف معقدة
إذا كَانت حَالتك تحتوي عَلى and عبارَات متعددة أو تتطلب عبارَات، or فقد تكون كتَابة هذه الشروط فِي البرنَامج النصي للعميل أكثر كفاءة من كتَابة قواعد العمل.
مسح قيم بيَانَات النموذج
لا يتم مسح البيَانَات من عمود النموذج بسهولة فِي قَاعدة العمل. على الرغم من وجود حلول بديلة يمكنك استخدَامهَا، مثل تعيين عمود "وهمي" يحتوي دَائمًا عَلى قيم NULL، إلا أنه يمكنك إنجَاز ذلك بشكل أكثر أنَاقة باستخدَام البرنَامج النصي للعميل.
الأعمدة المحسوبة مقَابل البرنَامج النصي للعميل
تعمل الأعمدة المحسوبة عَلى تَشغيل المنطق عند الاستردَاد، لذا فإن أي تغييرَات من جَانب العميل لا تنعكس فِي قيمة العمود المحسوب حتى يتم تحديث النموذج. إذا كنت تريد تحديث البيَانَات عَلى الفور فِي النموذج، فسيكون البرنَامج النصي للعميل هو الطريقة المفضلة. فِي كثير من الأحيَان، يكمل البرنَامج النصي للعميل تطبيق الواجهة الخلفية الذي يستخدم الأعمدة المحسوبة أو المجمعة، والمكونَات الإضَافية، ومَا إلى ذلك. يمكن أن يوفر هذا النهج المدمج تجربة مستخدم متسقة فِي التطبيق مع ضمَان اتسَاق البيَانَات وتكَاملهَا فِي الواجهة الخلفية.
معَايير الترميز وأفضل الممَارسَات
تغطي الأقسَام التَالية أفضل الممَارسَات والمعَايير الخَاصة بالترميز.
تحديد أسمَاء وظَائف البرنَامج النصي الفريدة
من المرجح أن تكون الوظَائف التي تكتبهَا موجودة فِي نموذج به العديد من المكتبات الأخرى. إذا كَانت مكتبة أخرى تحتوي عَلى وظيفة بنفس اسم تلك التي تقدمهَا، فإن الوظيفة التي يتم تحميلهَا آخر مرة هي التي يستخدمهَا النموذج. لتجنب حدوث تعَارض محتمل، تأكد من استخدَام أسمَاء دَالة فريدة. يمكنك استخدَام الاسترَاتيجيَات التَالية إذا لم يكن لديك أنت أو مؤسستك واحدة بالفعل:
بَادئة وَظيفةٍ فَريدة - تحدد كل وظيفة من وظَائفك باستخدَام الصيغة القيَاسية مع اسم ثَابت يتضمن اصطلاح تسمية فريدًا، كمَا هو موضح فِي المثَال التَالي.
function MyUniqueName_performMyAction() { // Code to perform your action. }مكتبات بهَا مسَاحَات أسمَاء - إقرَان كل وظيفة من وظَائفك بكَائن نص برمجي لإنشَاء مسَاحة اسم لاستخدَامهَا عند استدعَاء وظَائفك، كمَا هو موضح فِي المثَال التَالي.
//If the MyUniqueName namespace object isn’t defined, create it. if (typeof (MyUniqueName) == "undefined") { MyUniqueName = {}; } // Create Namespace container for functions in this library; MyUniqueName.MyFunctions = { performMyAction: function(){ // Code to perform your action. //Call another function in your library this.anotherAction(); }, anotherAction: function(){ // Code in another function } };
عند استخدَام وظيفتك، حدد الاسم الكَامل، كمَا هو موضح فِي المثَال التَالي.
MyUniqueName.MyFunctions.performMyAction();
تلميح
إذا قمت باستدعَاء دَالة ضمن دَالة أخرى فِي نفس مسَاحة الاسم، فيمكنك استخدَام الكلمة الأسَاسية this كَاختصَار للكَائن الذي يحتوي عَلى كلتَا الدَالتين. ومع ذلك، إذا كنت تستخدم وظيفتك كمعَالج للحدث، فستشير الكلمة الأسَاسية this إلى الكَائن الذي يقع عليه الحدث.
تجنب الطرق غير المدعومة
على الرغم من أن بعض موارد الجهَات الخَارجية عبر الإنترنت قد تقترح أو تحتوي عَلى أمثلة حول كيفية استخدَام أسَاليب غير مدعومة لتنفيذ إجرَاءَات معينة، إلا أن هذا غير مدعوم أو موصى به. لا يمكن ضمَان نجَاح هذه الطرق فِي الإصدَارَات المستقبلية من تطبيقك، وقد تسَاهم فِي عدم استقرَار عملية التنفيذ. يجب عليك أيضًا تجنب الأسَاليب التي تكتشفهَا من خلال فحص كَائنَات API فِي مصحح الأخطَاء إذا لم تكن الطرق المكتشفة موجودة فِي الوثَائق الرسمية للوثَائق المرجعية لواجهة برمجة تطبيقَات العميل.
قم بمرَاجعة التعليمَات البرمجية الخَاصة بك للتعرف عَلى الأسَاليب المهملة
يتم تطوير API الخَاص بالعميل وتحسينه باستمرَار. من المهم مرَاجعة قَاعدة التعليمَات البرمجية الخَاصة بك لاستخدَام الأسَاليب المهملة واتباع توصيَات التوثيق لبدَائلهَا. إذا كنت تستخدم مدقق الحلول، فإنه يضع علامة عَلى هذه الأسَاليب كمشكلات.
تجنب استخدَام jQuery فِي النمَاذج وأوامر الشريط
لا يتم دعم jQuery ومكتبات معَالجة HTML DOM المباشرة الأخرى ضمن البرَامج النصية للنمَاذج أو أوامر شريط الأوامر. يجب عليك تقييد البرَامج النصية الخَاصة بك لاستخدَام الأسَاليب الموجودة فِي نموذج كَائن Client API فقط. لمزيد من المعلومَات، رَاجع فهم نموذج كَائن Client API.
كتَابة كود غير محظور
يجب عليك استخدَام الأنمَاط غير المتزَامنة لضمَان تجربة مستخدم غير محظورة عند إجرَاء الاستعلامَات أو الأنشطة كثيفة العَمليَات.
حَاول تجنب الأسَاليب التي تحظر واجهة المستخدم، مثل مربعَات حوار التأكيد، وحظر مؤشرَات التقدم، ومَا إلى ذلك. إن طريقة التفاعل المفضلة مع المستخدم هي من خلال آليَات إعلام غير تدخلية مثل منطقة التنبيه المرئية للغَاية فِي التطبيق أو النموذج.
كتَابة التعليمَات البرمجية لمتصفحَات متعددة
تأكد من أن أي برَامج نصية تقوم بتنفيذهَا تختبرهَا للعمل مع جميع المتصفحَات وعوامل شكل الجهَاز التي يستخدمهَا المستخدمون مع التطبيقَات المستندة إلى النموذج. لمزيد من المعلومَات، رَاجع متصفحَات الويب والأجهزة المحمولة المدعومة.