ما الإطار الذي توصي به لإنشاء تطبيقات تشبه سطح المكتب للويب؟[مغلق]

StackOverflow https://stackoverflow.com/questions/148118

سؤال

ظهرت مؤخرًا العديد من أطر العمل لكتابة التطبيقات المشابهة لسطح المكتب المستندة إلى الويب.على سبيل المثال SproutCore و كابتشينو.هل لديك أي خبرة في استخدامها؟ما هو انطباعك؟هل فاتني بعض الإطارات الأخرى؟

رأيت متعلق ب أسئلة على StackOverflow، ولكنها تولد في الغالب إجابات قياسية مثل "استخدم jQuery أو MochiKit أو MooTools أو Dojo أو YUI".بينما يعطي بعض الناس غير قياسي إجابات, يبدو أن لديهم خبرة قليلة استخدام هذه الأطر.

هل يمكن لأي شخص مشاركة تجربة حقيقية في تطوير تطبيقات تشبه الإيقاف للمتصفح؟

هل كانت مفيدة؟

المحلول

نظرًا لمشكلات السرعة، تتسبب هذه الأطر عالية المستوى في حدوث العديد من المشكلات الأكبر (كما في:التطبيقات غير التافهة)، فنحن نستخدم فقط jQuery العادي.في اختباراتنا، تعطلت جميع الأطر عالية المستوى في المواقف التي يوجد فيها العديد من الكائنات القابلة للسحب أو العديد من أهداف الإسقاط، وفي المواقف التي تظهر فيها قوائم طويلة (مع أكثر من 1000 إدخال) على الشاشة.

يرجع جزء من هذا إلى مشكلات في IE6 وIE7 (حيث يبدأ الأداء فجأة في التدهور بشكل كبير بعد أن تصل أشجار DOM إلى مستوى معين من التعقيد)، ولكن يرجع جزء منه إلى الحمل الزائد الذي تولده هذه الأطر.

لذلك لا أوصي بأي من الأطر عالية المستوى.توصيتي هي استخدام jQuery والعمل مع DOM مباشرةً.

بعض النصائح لتحسين الأداء:

  • حيث ربما ، عرض HTML على الخادم.
  • الحفاظ على HTML بسيط قدر الإمكان.
  • تجنب وجود العديد من العناصر في شجرة دوم.
  • تجنب بنية الجدول العودية (أي توقف فجأة عن إظهارها بعد مستويات قليلة نسبيًا من التعشيش).
  • إزالة العناصر غير المرئية من شجرة دوم.
  • قم بإزالة الأشياء من شجرة DOM قبل تغييرها ثم إعادة إدراجها ، بدلاً من تغييرها أثناء وجودها في الشجرة.

نصائح أخرى

من وجهة نظري، الكابتشينو هو مثال لما لا يجب فعله.لقد طبقوا لغة أخرى أعلى JavaScript، والتي تسبب بالفعل البطء بينما يكافح مطورو المتصفح بشدة بالفعل، والأسوأ من ذلك أنهم لا يعتمدون على الإطلاق على أداة المتصفح، مما يؤدي إلى كسر تجربة تنقل المستخدم بالكامل.على سبيل المثال، قاموا بتطبيق شريط التمرير الخاص بهم، مع العيب الرئيسي وهو أن استخدام عجلة الماوس لن يعمل بعد الآن!

أفضّل حقًا أسلوب ExtJS الذي يمنحك عناصر واجهة مستخدم غنية مع إبقاء واجهة المستخدم قريبة قدر الإمكان من المتصفح.

أنا أيضًا، بصفتي gizmo، أوصي بـ EXT JS.لقد تغير ترخيصهم وقد لا يعمل مع الجميع، ولكنه لا يزال خيارًا جيدًا إذا كنت تريد القيام بأشياء مثل سطح المكتب.

فيما يلي صفحة المثال الخاصة بهم لبيئة سطح المكتب: http://extjs.com/deploy/dev/examples/desktop/desktop.html

توضح شركة Apple أن جهاز sproutcore يعمل بالفعل، على الرغم من صعوبة تقدير مدى نجاحه.أقوم حاليًا بإنشاء تطبيقات الويب باستخدام مجموعة من المكتبات المحلية، وتكرار مجموعة من الوظائف من مجموعة برامج Windows الخاصة بنا (ولكنها متكيفة مع واجهة الويب).لقد تجنبت حتى الآن أطر العمل خصوصًا لأنني لم أرغب في الانتفاخ.المشكلة في هذا النهج هي أنني أضيع قدرًا هائلاً من الوقت في تكرار الوظائف الموجودة بالفعل في الأطر، وأشعر أنه بمرور الوقت سأقترب من شيء يشبه هذه الأطر.

ولهذا السبب، قمت بتجربة تنفيذ تطبيق ويب في extjs، وكانت تجربة رائعة بشكل مدهش.الأداء ممتاز، وسهولة التطوير عالية جدًا لأن مجموعة مكوناتها جيدة لإنشاء التطبيقات فعليًا، وليس فقط للعروض التوضيحية الفاخرة (مشكلة شائعة في مجموعات أدوات الويب).أود أن أوصي به بالتأكيد إذا كنت مهتمًا بإنشاء تطبيقات ويب تشبه سطح المكتب.

من الواضح أن مشكلة توسيع نطاقها لا تزال قائمة، ولكن بصراحة، أشعر أنه من الأفضل استخدام مجموعة أدوات في المواقف التي لا يكون فيها الحجم بهذه الأهمية، والعودة إلى جافا سكريبت الأساسية فقط عندما تحتاج إلى ذلك (التحسين المبكر هو أصل كل شيء) شر).يمكن لـ Extjs وضع طبقة فوق النموذج الأولي أو jquery، لذا فإن هذا الأسلوب قابل للتطبيق بالتأكيد.عادةً ما يكون تجنب وجود الكثير من المحتوى في DOM أسلوبًا للتحميل والتفريغ عند الطلب.على سبيل المثال، هناك ملحق خارجي لفئة الشبكة extjs يسمح بالتمرير عبر مجموعة بيانات مليون صف من خلال كونه ذكيًا في تحميل البيانات وتفريغها.

قد تفكر في استخدام GWT-تحويلة (يستخدم Ext أدناه) قد يكون حلاً نظيفًا جدًا إذا كنت ستستخدم Java.

انا يعجبني com.qooxdoo, ، على الرغم من أنه يتبع نهج OOP الخاص بـ JS بدلاً من النموذج الأولي، إلا أنه إطار عمل متين ويحتوي على الكثير من الميزات.

ليس لدي أي خبرة مع SproutCore أو Capuccino.ولكننا قمنا بمحاولات لاستخدام Dojo فوق Django في هذا النوع من العمل.لا أستطيع إلا أن أقول لك أنها بطيئة وعربات التي تجرها الدواب.

قد يكون extjs مفيدًا. http://dev.extjs.com/deploy/dev/examples/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top