سؤال

مع القوة المتزايدة لأطر عمل JavaScript مثل YUI وJQuery وPrototype وأدوات تصحيح الأخطاء مثل Firebug، يبدو تنفيذ تطبيق بالكامل في JavaScript من جانب المتصفح طريقة رائعة لإنشاء تطبيقات بسيطة مثل ألعاب الألغاز والآلات الحاسبة المتخصصة.

هل هناك أي جانب سلبي لهذا بخلاف كشف كود المصدر الخاص بك؟كيف يجب أن تتعامل مع تخزين البيانات لهذا النوع من البرامج؟

يحرر:نعم، يمكن استخدام Gears وملفات تعريف الارتباط للتخزين المحلي، ولكن لا يمكنك بسهولة الوصول إلى الملفات والكائنات الأخرى الموجودة لدى المستخدم بالفعل.لا يمكنك أيضًا حفظ البيانات في ملف لمستخدم دون مطالبته باستدعاء بعض ميزات المتصفح مثل الطباعة إلى PDF أو حفظ الصفحة كملف.

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

المحلول

لقد كتبت العديد من التطبيقات في JS بما في ذلك جدول البيانات.

رأسًا على عقب:

  • لغة عظيمة
  • دورة مراجعة تشغيل التعليمات البرمجية القصيرة
  • تعد معالجة DOM أمرًا رائعًا لتصميم واجهة المستخدم
  • العملاء على كل جهاز كمبيوتر (والهاتف)

الجانب السلبي:

  • الاختلافات بين المتصفحات (خاصة IE)
  • قابلية التوسع في قاعدة التعليمات البرمجية (بدون دعم جوهري لمساحات الأسماء والفئات)
  • لا توجد مصححات أخطاء جيدة (خاصة لـ IE مرة أخرى)
  • الأداء (على الرغم من التقدم الكبير الذي تم إحرازه باستخدام FireFox وSafari)
  • تحتاج إلى كتابة بعض رموز الخادم أيضًا.

الحد الأدنى:أذهب خلفها.فعلتُ.

نصائح أخرى

هناك خيار آخر لتطوير سطح مكتب بسيط مثل التطبيقات أو الألعاب في JavaScript وهو أدوبي إير.يمكنك إنشاء رمز تطبيقك إما بتنسيق HTML + JavaScript أو باستخدام Flash/Flex أو مزيج من الاثنين معًا.يتمتع بميزة كونه متعدد المنصات (في الواقع متعدد المنصات، Linux، OS X، وWindows.ليس فقط Windows وOS X).

حسنًا، قد تكون هذه هي المرة الوحيدة في حياتك المهنية كمطور حيث يمكنك كتابة صفحة ويب واستهداف متصفح واحد فقط.

SproutCore هو إطار عمل تطبيق مستضاف بالكامل على JavaScript، وهو يستعير المفاهيم بشكل خاص من Cocoa (مثل KVO) وRuby on Rails (مثل استخدام مولد CLI للنماذج وطرق العرض ووحدات التحكم الخاصة بك).إنه يتضمن نموذجًا أوليًا، ولكنه يبني الكثير من الأشياء مثل عناصر التحكم المتطورة فوق ذلك.إنه الصور يمكن القول أن العرض التجريبي مثير للإعجاب (خاصة في Safari 3.1).

لقد وجهك جريج بالفعل إلى Gears؛بالإضافة إلى ذلك، سيأتي HTML 5 مزودًا بوسائل موحدة للتخزين المحلي.يأتي Safari 3.1 مع تطبيق حيث يكون لديك قاعدة بيانات SQLite لكل موقع مع الحد الأقصى للحجم الذي يمكن تعيينه من قبل المستخدم، بالإضافة إلى متصفح قاعدة بيانات مدمج مع استعلام SQL.ولسوء الحظ، سوف يستغرق الأمر وقتًا طويلاً حتى نتمكن من توقع دعم واسع النطاق للمتصفح.حتى ذلك الحين، يعد Gears بديلاً بالفعل (ولكن ليس لـ Safari...حتى الآن!).للتخزين الأسهل، هناك دائمًا ملفات تعريف الارتباط بالطبع.

الجانب السلبي لهذا هو أنك تحت رحمة تمكين JS.لست متأكدًا من أن هذه مشكلة كبيرة الآن.يدعم كل متصفح تقريبًا Js ويتم تمكينه افتراضيًا.

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

لم أستخدم Gears مطلقًا، ولكن يبدو أن الأمر يستحق التجربة.تتمثل خطة النسخ الاحتياطي في تشغيل بعض البرامج النصية من جانب الخادم من خلال ajax والتي تقوم بتفريغ بياناتك في مكان ما.

ليس جانب العميل تمامًا، لكن حسنًا.

نيهولوجيك (ليس موقعي) يقوم بالكثير من الأشياء باستخدام Javascript.لديهم حتى عدة ألعاب التي قاموا بها في جافا سكريبت.

لقد رأيت أيضًا لعبة روجلايك رائعة مصنوعة بلغة جافا سكريبت.لسوء الحظ، لا أستطيع أن أتذكر ما كان يسمى...

إذا كنت تريد كتابة تطبيق JavaScript مستقل، فاطلع على XULrunner.إنه ما تم بناء Firefox عليه، ولكنه مصمم أيضًا بحيث يمكنك توزيعه كوقت تشغيل للتطبيق.ستكتب جزءًا من الواجهة بلغة JavaScript وستستخدم JavaScript للتعليمات البرمجية الخاصة بك.

التروس قد يوفر تخزين البيانات المستمر من جانب العميل الذي تحتاجه.ومع ذلك، لا توجد طريقة جيدة جدًا لعدم الكشف عن كود المصدر الخاص بك.يمكنك التعتيم عليه ولكن هذا يساعد إلى حد ما فقط.

لقد قمت بتنفيذ تطبيقات بسيطة مثل هذه لأشياء مثل سودوكو حلالا.

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

أنا مع ScottKoon هنا، Adobe AIR رائع.لقد قمت بالفعل بإنشاء عنصر واجهة مستخدم (imho) واحد فقط حتى الآن، لكنني فعلت ذلك باستخدام jQuery وPrototype.js، والذي تم تنفيذه بطرق رائعة لأنني لم أضطر إلى تعلم نموذج حدث جديد تمامًا.Adobe AIR رائع حقًا، وبصمة الذاكرة ليست سيئة للغاية، والترقية إلى إصدار جديد مدمج في AIR لذا فهي تلقائية تقريبًا، والأفضل من ذلك كله أنها مشتركة بين الأنظمة الأساسية... بل إن لديهم إصدار ألفا لنظام التشغيل Linux ، لكنه يعمل بشكل جيد بالفعل على جهاز Eee الخاص بي.

الألعاب المستقلة في GWT:

  1. http://gpokr.com/
  2. http://kdice.com/

فيما يتعلق بحفظ الملفات من تطبيق جافا سكريبت:

أنا متحمس حقًا لإمكانيات التطبيقات من جانب العميل.قدم Flash 10 القدرة على إنشاء ملفات لحفظها مباشرة في المتصفح.اعتقدت أنه كان رائعًا للغاية، لذلك قمت ببناء مكون جافا سكريبت + فلاش لتغليف ميزة الحفظ.في الوقت الحالي، يعمل فقط لإنشاء ملفات نصية (vcard، ical، xml، html، css، إلخ.)

  1. تنزيل الصفحة الرئيسية
  2. كود المصدر والوثائق على جيثب
  3. شاهده قيد الاستخدام في Starter لـ jQuery

إنني أتطلع إلى إضافة دعم للملفات غير النصية قريبًا، ولكن هذه هي البداية.

لقد خدمتني خلاصات RSS الخاصة بي جيدًا - لقد وجدت أن Javascript roguelike!

تسمى مقابر أشيروث.

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

ميزة الاحتفاظ بها على الخادم الخاص بك ذات شقين:

  1. يمكنك دمجها بكل بساطة كطبقة نموذجية في إطار عمل MVC نموذجي، و
  2. يحصل المستخدمون على عرض متسق دون الارتباط بالمتصفح/جهاز الكمبيوتر الخاص بهم، أو في بيئة أقل من مثالية (مقاهي الإنترنت).

يمكن أيضًا أن يكون رمز الخادم للتعامل مع هذا أمرًا تافهًا إلى حد ما، خاصة إذا تمت كتابته مع وضع هذه المهمة في الاعتبار، لذا فهو لا يمثل عبئًا معرفيًا كبيرًا.

اذهب مع qoxdoo.لقد أطلقوا مؤخرًا الإصدار 1.0، على الرغم من أن معظم مستخدميه يقولون إنه كان جاهزًا للإصدار 1.0 قبل نسختين على الأقل.

لقد قارنت qooxdoo مع YUI وext، وأعتقد أن qooxdoo هو الحل المناسب للمبرمجين - YUI ليس مصقولًا مثل qooxdoo، من وجهة نظر المبرمج، كما أن ext لديه نموذج ترخيص غير ودود.

بعض نقاط القوة (بالنسبة لي) في qooxdoo هي:

  • كود نظيف للغاية
  • أجمل نموذج برمجة OO رأيته بين أطر عمل Javascript
  • مكتبة عناصر واجهة مستخدم غنية جدًا

كما أنه يتميز أيضًا بمشغل اختبار لاختبارات الوحدة، ومولد مستندات API وقارئ، وأداة تسجيل، والعديد من الميزات المفيدة لتصحيح الأخطاء، مجمعة تحت شيء يسمى Inspector.

الجانب السلبي الوحيد هو عدم وجود سمات جاهزة (شيء مثل الأسطح) لـ qooxdoo.لكن إنشاء المظهر الخاص بك أمر سهل للغاية.

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