Ionic-framework: تسريع التحميل الأولي

تم إنشاؤها على ٦ يونيو ٢٠١٦  ·  159تعليقات  ·  مصدر: ionic-team/ionic-framework

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

التعليق الأكثر فائدة

الجميع،

نحن نختبر هذا بشكل كبير داخليًا الآن. لقد قطعنا خطوات كبيرة هذا الأسبوع.

شكرا،
دان

ال 159 كومينتر

مرحبا dheran . وقت البدء هو شيء نعمل بجد لتقليله بينما نتحدث (:. نحن نعمل حاليًا على سلسلة إنشاء جديدة من شأنها أن تجعل تطبيقات Ionic أصغر كثيرًا والتي ستتضمن تجميع القوالب غير المتصلة بالإنترنت. باستخدام هذين التحسينين ، يمكنك توقع أرى تحسنًا كبيرًا في وقت بدء التشغيل. أود أن أسأل في StackOverflow أو منتدياتنا (forum.ionicframework.com) عن طرق "التحميل المسبق" لعرض ويب داخل تطبيق أصلي. شكرًا لاستخدام Ionic!

@ jgw96 مرحبًا ، هل هناك أي طلب أو مشكلة قائمة؟ بحيث يكون من السهل متابعته وقابليته لاستخدامه بمجرد تنفيذه.

dheran سؤال جيد! في الوقت الحالي ، لا توجد مشكلات تتبع جيدة لهذا الأمر ، حيث أن هذا في المراحل المبكرة جدًا ، ولكنه يمثل أولوية عالية بالنسبة لنا ، ويحقق فريق ionic-cli الكثير من التقدم الجيد فيه. بمجرد أن يتقدم هذا الأمر ، سأحاول تحديث هذه المشكلة بتقدمنا ​​حتى تعرف ما يمكن توقعه (:

@ jgw96 إذن ، لماذا لا تبقيه مفتوحًا حتى؟

@ jgw96 ستساهم أيضًا إزالة css غير المستخدمة أثناء عملية

أستخدم ionic2 لإنشاء موقع ويب للجوال ، ثم أجد أنه عندما أستخدم متصفح android 4.4 ، أفتحه ، يكون ذلك بطيئًا جدًا. هل لديك أي اقتراحات جيدة لي؟
موقع الويب: https://zhaoxie.net/static/weixin/index.html
image

كوردوفا CLI: 6.1.1
إصدار الإطار الأيوني: 2.0.0-beta.6
إصدار CLI الأيوني: 2.0.0-beta.31
إصدار ليب التطبيق الأيوني: 2.0.0-beta.17
إصدار iOS: 1.8.5
إصدار ios-sim: 5.0.6
نظام التشغيل: Mac OS X El Capitan
إصدار العقدة: v5.3.0
إصدار Xcode: Xcode 7.2 Build version 7C68

@ jgw96 أي فكرة أي إصدار سيحصل على هذه الميزة؟

يا dheran ! سؤال جيد! لدينا تنفيذ عملي لمصافحة الأشجار باستخدام webpack 2 منذ بضعة أيام وما زلنا نعمل على استخدام المترجم غير المتصل بالإنترنت. بعد قراءة ملاحظات اجتماع فريق Angular اليوم ، يبدو أنهم لن يطلقوا على مترجم القوالب غير المتصل كلمة "ثابت" حتى Angular 2 rc 4 ، لكنني آمل أن نتمكن من تنفيذ المترجم غير المتصل بالإنترنت قبل ذلك الحين.

@ jgw96 يبدو أنهم قد أغلقوا المشكلة بالفعل. https://github.com/angular/angular/issues/3605
و Angular RC 4 اكتمل بنسبة 33٪ تقريبًا (في مرحلة هامة).
هل يمكننا توقع المترجم الجديد في الإصدار التجريبي الأيوني 10 أو 11؟

مرحبًا dheran ، نحن نعمل بنشاط على ذلك. هذا عنصر ذو أولوية عالية للغاية بالنسبة لنا ، لذا يرجى الراحة بسهولة مع العلم أننا سنقوم به في أقرب وقت ممكن.

شكرا،
دان

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

مرحبا dheran ،

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

شكرا،
دان

+1

يمكننا الانتظار حتى rc4 ، ولكن يرجى الحفاظ على تجميع القالب غير المتصل بأولوية عالية. لمعلوماتك ، الوقت الأولي لتطبيقنا هو حوالي 8 ثوانٍ ، لكن الوقت الأولي للتطبيق الأصلي الآخر هو حوالي 1-4 ثوانٍ. نحتاج حقًا إلى تقصير الوقت الأولي.

أخيرا ، شكرا على العمل.

grapemix لها بالتأكيد أولوية عالية! نحن نعمل مع فريق Angular على أساس مستمر للحصول على نموذج غير متصل بتجميع العمل مع Ionic جنبًا إلى جنب مع اهتزاز الشجرة والتصغير القوي حتى نتمكن من تقليل حجم التطبيق المتوسط ​​لدينا كثيرًا. كما هو مذكور أعلاه ، هناك بعض التغييرات على Angular التي ننتظرها الآن ، ولكن بالتأكيد سيتم إنجازها (:

+1

+1

@ jgw96danbucholtz الرجال أي تقدم في هذا؟ هل يمكننا الحصول على الإصلاح في بيتا 11؟

+1

في أي مستودع تتعقبون هذا يا رفاق
أعتقد أنني سأكون قادرًا على المساعدة قليلاً فيما يتعلق بحزمة الويب

prijindal ،

أعتقد أن @ jthoms1 يقوم بالعمل في هذا الفرع.
https://github.com/driftyco/ionic/tree/adding-offline-template-compiling

شكرا،
دان

مرحبًا @ jthoms1 ، هل سيتم دمج التغييرات مع Master قبل

نعم ، أنتظر التجميع في وضع عدم الاتصال أيضًا ، ولكن يمكن عمل شيء ما الآن.
موقعنا بالكامل على Ionic2 beta.8
http://m.sherpadesk.com/

لدي تطبيق هجين أيضًا وقمت ببعض التحسينات وحصلت على وقت تحميل 417 مللي ثانية .
انظر إلى التقرير https://tools.pingdom.com/#!/DW6Td/http://m.sherpadesk.com/17
كما انخفض حجم الموقع بنسبة 600٪ (3 ميجابايت -> 500 كيلوبايت)
تم تحسين سرعة استجابة تفاعل المستخدم بنسبة 2000٪ (ثانيتان -> 100 مللي ثانية)

توصيات جيدة: http://blog.angular-university.io/how-to-run-angular-2-in-production-today/36

سأقوم بنشر جميع إعدادات gulp الخاصة بي ورابطًا إلى متجر التطبيقات هنا: http://www.sherpadesk.com/blog/

تضمين التغريدة

بعض الأسئلة:

  1. عند تثبيت التطبيق ، يفتح على الفور ولكن ملف. أحصل على تحميل ملف التعريف الخاص بك ويبدو أنه عالق لمدة 5 ثوان. لماذا ا؟
  2. كيف قمت بتحسين وقت التحميل بدون تجميع في وضع عدم الاتصال؟
  3. هل موقع الويب للجوال الخاص بك هو ionic2؟
  4. هو موقع سطح المكتب الخاص بك ionic2؟

أفكر في استخدام أيوني 2 ولكن الشيء الوحيد الذي يمنعني من إدارة مشروع webapp + مشروع ionic2 المحمول.

شكرا

evgeniynet هل تخدمها العقدة؟
يبدو أنه تم تجميعه مسبقًا. لكن معظم حالتنا ستكون استضافة تخزين الجهاز (تطبيق phonegap).

dheran ، لا ، يتم استضافته على موقع Azure ، فقط ملفات html و js العادية التي تنتجها مهمة بناء أيونك 2 gulp.

@ Justme1

  1. نعم ، لقد خدعت مع http://www.bennadel.com/blog/3105-creating-a-pre-bootstrap-loading-screen-in-angular-2-rc-1.htm

هل موقع الويب للجوال الخاص بك هو ionic2؟
نعم

هو موقع سطح المكتب الخاص بك ionic2؟
نعم

يقوم تطبيق ios الخاص بي بتحميل الموقع في WebView ، لا شيء أكثر من ذلك.

قاعدة بيانات واحدة فقط لنظام التشغيل iOS و Android و Windows Phone وتطبيق الويب وامتداد Chrome وحتى Apple iWatch

لقد قمت بتعيين علامة خاصة لإيقاف تحميل كوردوفا ، لمنع الفجوة: // خطأ

أكتب دليلاً كاملاً حول هذا على http://www.sherpadesk.com/blog/

تضمين التغريدة

  1. هذا هو الحال ، فلا يبدو أن التحميل أسرع حقًا :-)

فيما يتعلق بقاعدة بيانات واحدة:

بناءً على ما فهمته ، لا يُفترض أن يتم استخدام ionic2 كموقع ويب لسطح المكتب لأنه مدعوم بالكامل بواسطة المتصفحات. ألا تمانع في هذه القضية؟

عد لي في انتظار هذه الميزة.

مرحبا ، أي تحديثات على هذا؟
أنا أستخدم الإصدار:
كوردوفا CLI: 6.3.0
إصدار الإطار الأيوني: 2.0.0-beta.10
إصدار أيوني CLI: 2.0.0-beta.35
إصدار ليب التطبيق الأيوني: 2.0.0-beta.19
LG Nexus 5 (نظام التشغيل 6.0)
يتم تحميل الإصدار 1 من تطبيق Sidemenu التعليمي التعليمي في 3 ثوانٍ
- تحميل sidemenu v2 في 6 ثوان

تأتي وظيفة التجميع المسبق في الإصدار التجريبي 12. سيؤدي ذلك إلى تسريع التحميل الأولي بشكل كبير وتقليل حجم الحزمة بشكل كبير. نحن على وشك إطلاق Beta 11 ، وهذا هو التالي. هذه هي أولويتنا رقم 1. لقد عملنا على فرع ، لذلك نحن قريبون.

شكرا،
دان

إنه بطيء حقًا لأول مرة. في انتظار التحسين

danbucholtz أو أي شخص أضاف هذه المشكلة إلى الإصدار التجريبي 12 معلمًا

هل يمكننا استخدام رمز الفرع
يرجى اعطاءنا الافراج السريع ..

dheran ،

يتطلب هذا التغيير Angular RC 5 الذي لم يصدر بعد. سنقوم بإصداره بمجرد أن يصبح الإصدار التجريبي 12 جاهزًا للعمل. لن نطلق سراحه حتى يصبح جاهزًا للانطلاق.

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

@Component({
   template: `
   <ion-content>
      <div>content</div>
   </ion-content>
  `
})
export MyClass {
}

شكرا،
دان

danbucholtz Inline يساعد كثيرًا في الواقع.
لقد كتبت رمزًا صغيرًا في gulpfile.js الخاص بي يقوم بذلك أثناء الإنشاء.

gulp.task('build', ['build:prequel'], function(done) {
  glob('./www/build/**/*.html', function(e,files) {
    var indexPath = './www/build/js/app.bundle.js'
    var js = fs.readFileSync(indexPath, 'utf8');

    async.eachSeries(files, function(file, callback) {
      filename = file.substr(6)
      var html = fs.readFileSync(file, 'utf8');
      js = js.replace("templateUrl: '" + filename + "'", "template: `" + html +"`")
      callback()
    }, function() {
      fs.writeFile(indexPath, js, 'utf8', function(err, data) {
        done()
      });
    })
  })
})

نعم ، هذا ليس نظيفًا وليس أفضل طريقة للقيام بذلك.
لكنها تعمل مثل السحر.

ملاحظة: لا يساعد Inlining كثيرًا في بدء التشغيل الأولي ، ربما 0.5 ثانية على الأكثر. ولكنه بالتأكيد يجعل الأمر أكثر سلاسة بين انتقال الصفحة أو عندما تقوم بتحميل أحد المكونات ديناميكيًا.

تضمين التغريدة هذا رائع! مع وجود مترجم AoT في Beta 12 ، لا يهم ما إذا كان القالب مضمّنًا أو ملفًا خارجيًا. سيتم تحويله إلى JS خالص كجزء من عملية الإنشاء. عمل جيد لمعرفة ذلك!

شكرا،
دان

مرحبًا ، لقد راجعت Angular page ولاحظت أنه تم إصدار RC5. ماذا تقصد ب "حتى rc5 خارج"؟

kLkA ، dheran امنح فريق Ionic استراحة - فهم بالتأكيد يحاولون إخراج الإصدارات التجريبية بأسرع وقت ممكن ولا يساعدهم اختبار ping كل يوم بأي شكل من الأشكال. إنهم يعملون مباشرة مع Google على Angular وبالتأكيد يجب أن يعلموا أن Angular2 rc5 خارج.

Yeah و Google أصدرت RC 5 مثل ساعات قليلة مضت.
أنا متأكد من أنهم على دراية بالإصدار ويعملون على شيء ما لإدخاله في الإصدار التجريبي 12

astec حقا؟ أتمنى ألا تكون في وضعنا.
هذه المشكلة تمنعنا من البث المباشر. هل انت في هذا الموقف؟
إذا قرأت تعليقي بعناية. سألت فريق Ionic ، هل يمكنهم إصدار تصحيح AoT (قال danbucholtz أنه تم في فرع منفصل) كإصدار سريع بدلاً من تصحيح AoT + إصلاحات أخطاء أخرى غير ذات أولوية. إذا لم تكن هذه أولوية بالنسبة لك وكانت تعليقاتنا ترسل إليك رسائل غير مرغوب فيها ، أقترح إلغاء الاشتراك.

dheran ، لقد كنت في وضعك في وقت مبكر من للإصدار . لكنني تعبت من القتال مع تغييرات API / السلوك. منذ ذلك الوقت ، أعلن موقع Parse.com أنه سيغلق ويتعين علي إعادة كتابة نظام المصادقة الخاص بي. لذلك قررت وضعه جانبًا وتحولت إلى تطوير روبوت Telegram + FB لتطبيقي. أشعر بالتعاطف مع موقفك ولكن هذا ما تحصل عليه عندما تقفز على عربة بيتا. إذا كنت تريد جدولًا زمنيًا مضمونًا ، فلديك الحرية في اختيار Ionic1 أو أي منصة أخرى غير تجريبية. سأعود بنفسي إلى تطوير تطبيق Ionic2 بمجرد أن نحصل على أول مرشح للإصدار. أو على الأقل Beta12. فإما أن أبالغ في تقدير تعقيد "التجميع المسبق" أو أن تقلل من شأنه. على أي حال ، لن أقوم بتعليم أي شخص الصبر بعد الآن - يرجى قبول اعتذاري ونتمنى لك التوفيق في مساعيك.

هذا ليس موضوع نشر احتياجاتك وخبراتك. يرجى الالتزام بالموضوع أو تركه كما هو. 👍

نتطلع إلى ionic2 beta12. كل خير فريق :)

ياdheran! أنا آسف وأشعر بالتأكيد بإحباطك ، لقد عملنا بجد قدر المستطاع لإنجاز هذا العمل ويمكنني أن أقول بسعادة أننا قريبون للغاية الآن وسوف يكون في الإصدار التجريبي 12 مع بعض الأخطاء الحرجة الأخرى الإصلاحات. كنا نرغب في الحصول على هذا في وقت سابق ولكننا كنا نعمل مع Angular خلال الأسابيع القليلة الماضية لإصلاح بعض الأخطاء من نهايتها التي كانت تتسبب في عدم عمل aot compile. لقد استغرق الأمر أيضًا بعض الوقت بالنسبة لنا أولاً ، لتحسين Ionic لتجميع aot الجديد ، وثانيًا ، لإجراء جميع التغييرات اللازمة للعمل مع Angular 2 RC5. السبب في أننا لا نستطيع أن نوصي باستخدام الفرع الذي ذكرناه أعلاه هو أن مهام gulp لبناء تطبيقك فعليًا لم تكتمل بعد. لذلك ، بينما يمكنك استخدامه تقنيًا ، فلن تكون قادرًا في الواقع على إنشاء تطبيقك. لقد عملنا مع إصدار ما قبل الإصدار من Angular 2 rc5 لفترة من الوقت الآن ، ولكن علينا انتظار هذا الإصدار ليتم نشره للعامة تمامًا مثل أي شخص آخر قبل أن نشعر بالراحة عند القيام بإصدار يتضمنه. ما زلنا في مرحلة تجريبية ، مما يعني أنه يتم العمل على الأشياء وسوف تتغير وهذا هو مجرد اسم اللعبة عندما يتعلق الأمر بالبرنامج التجريبي. أخيرًا ، عند التفاعل مع الآخرين في المجتمع ، هل تمانع في وضع قواعد السلوك لدينا في الاعتبار؟ شكرا لاستخدام Ionic! أيضًا ، إذا كنت تريد في أي وقت معرفة ما كان يعمل عليه ، فيمكنك الاطلاع على ملاحظات الاجتماع (التي تتم مشاركتها أيضًا على Twitter) وخريطة الطريق الخاصة بنا.

لست متأكدًا ، ولكن ربما يكون التقدم الرئيسي في تسريع الأيونات يحدث في فرع ngmodule . هل انا مخطئ

بقعة جيدة msaelices ! في الواقع ، يتم تنفيذ معظم جانب إطار العمل من هنا https://github.com/driftyco/ionic/commits/deeplinks-ngmodule في الوقت الحالي. شكرا!

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

أثناء انتظار وصول برنامج التحويل البرمجي AoT هذا إلى أيوني ، ما فعلته هو إضافة شاشة _splash_ (مجرد صفحة أيونية عليها شعار التطبيق) تسمى TemplatePrecompiler تأخذ جميع المكونات (أي @Component من تطبيقي ، بغض النظر عما إذا كانت صفحة أيونية أو مكونًا) ويقوم بتجميعها واحدة تلو الأخرى في وقت التشغيل. بمجرد الانتهاء من ذلك ، أعد توجيهي إلى الصفحة الرئيسية.
هذا مفيد حقًا ، لأن المستخدم يرى فقط شاشة البداية التي تستغرق بعض الوقت (حوالي 5 ثوانٍ لتطبيقي) ولكن بمجرد تحميلها جميعًا ، تصبح جميع الشاشات سريعة. ويمكنك أيضًا وضع شريط تقدم على شاشة البداية هذه.

لقد أنشأت جوهر هنا: https://gist.github.com/voliva/eb0242743661000896054601af72d1fd

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

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

شكرا،
دان

+1

و app.bundle.js الخاص بي هو 3.8 ميغابايت ، إلى كبير ...

+1
ما الوقت الافراج عن beta12? danbucholtz

فيما يتعلق بنهجprijindal لوضع القوالب في المكون ، هل سيكون هذا هو نفس مستوى التحسين المتوقع من التجميع غير المتصل؟
لقد جربت هذا الأسلوب ، فهو يوفر وقت طلبات HTTP لجلب القالب ، ولكن لا يزال هناك تأخير عند تحميل العرض الأول. أفترض أن هذا يحدث لأن angular يجمع HTML المخصص للقوالب عند تحميل العرض الأول.

أنا جديد تمامًا على Angular وسأكون ممتنًا لو أوضح لي شخص ما هذا.

moatazelgamal ،

سينتج عن تجميع AoT تسريع كبير. يستغرق تشغيل المترجم لتطبيق نموذجي في وقت مبكر عدة ثوانٍ ، لذلك هذا هو الوقت المنقضي من وقت التشغيل. من الصعب تحديد مدى سرعة تطبيق نموذجي. لقد اختبرناها فقط على عينة أساسية للغاية وذهب وقت البدء من ~ 3 ثوانٍ إلى ~ 300 مللي ثانية. لم نقم بإجراء اختبارات كافية لمعرفة نوع الأرقام التي سيشاهدها تطبيق نموذجي ، ولكن من المؤكد أنها ستكون أسرع.

التغييرات في AoT مطبقة للإطار (نعتقد ... جيد جدًا حتى الآن 😄) ونحن الآن ننتقل إلى جعل عملية الإنشاء أ) بسيطة ، ب) قابلة للتطوير وج) بأسرع ما يمكن. نعمل أنا والفريق على ذلك معًا في هذا الريبو .

نتوقع أن تسمع المزيد قريبا.

شكرا،
دان

moatazelgamal أسلوبي ليس تجميعًا في وضع عدم الاتصال ، إنه مجرد تضمين القوالب.
سيجعل التجميع في وضع عدم الاتصال التحميل الأولي أسرع كثيرًا.

الجميع،

نحن نختبر هذا بشكل كبير داخليًا الآن. لقد قطعنا خطوات كبيرة هذا الأسبوع.

شكرا،
دان

أهلا بك،
أرى أنه تم إصدار Ionic2 RC0 ، فهل هذا هو الإصدار التجريبي المتوقع من الإصدار beta12؟ لم يذكر سجل التغيير في RC0 أي شيء عن تجميع AOT. أعتقد أن هذه الميزة جيدة جدًا بحيث لا يمكن تفويتها في سجل التغيير :)

تم "الإفراج عنه". ما زلنا نملأ الفجوات في الوقت الحالي 😄 مع التغيير ، وما إلى ذلك. توقع التفاصيل الرسمية في وقت لاحق اليوم. واجهتنا صعوبات فنية أمس ، لذا فإننا متأخرون قليلاً.

شكرا،
دان

مرحبا فريق أيوني! شكرا لعملكم الشاق!

متحمس جدا بشأن هذا. لا أستطيع التوقف عن التغريد منذ أن قرأت عنه لأول مرة.
فريق مجد الأيوني.

في الخميس ، 29 سبتمبر 2016 ، 04:19 كتب gisinaction [email protected] :

مرحبا فريق أيوني! شكرا لعملكم الشاق!

-
أنت تتلقى هذا لأنك مشترك في هذا الموضوع.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/driftyco/ionic/issues/6776#issuecomment -250346182 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AAxEjznTYrcKZKFD2rElIqKkWrGIvvUrks5quxIvgaJpZM4Iuokt
.

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

لقد قمت أيضًا باختباره في نظام Android 4.4.4 منخفض المواصفات لأشعر بفرق الأداء بشكل أفضل ومقارنته بـ Ionic 1.
باستخدام Ionic 2-rc0 ، أجد هذه النتائج التقريبية:

| مشروع | التمهيد البارد | التمهيد الساخن |
| --- | --- | --- |
| 1-tabs | 4،5 ثانية | 3 ثوانٍ |
| 2-علامات تبويب | 5 ثوانٍ | 3.5 ثانية |
| 1-sidemenu | 5 ثوانٍ | 3.5 ثانية |
| 2-sidemenu الأيونية | 5 ثوانٍ | 3.5 ثانية |
| الساعة (التطبيق الأصلي) | 1 ثانية | <1 ثانية |

  • المشاريع التي تم إنشاؤها باستخدام هذه الأوامر:
ionic start myTabs1 tabs
ionic start myTabs2 tabs --v2
ionic start mySidemenu1 sidemenu
ionic start mySidemenu2 sidemenu --v2

على الرغم من أن المشاريع ليست نفس عمليات التنفيذ بالضبط ، إلا أنها تعطينا نقطة انطلاق للمقارنة.

حتى مع أيوني 2-rc0 ، تتطلب المشاريع الأساسية حوالي 5 ثوانٍ للتحميل على البارد ، وحوالي 3.5 ثانية عندما تم تحميلها مسبقًا. هذه هي الأوقات نفسها تقريبًا التي أجدها مع إصدارات Ionic 1.
يحتوي منشور المدونة الذي يقدم Ionic2 RC0 على صورة gif متحركة تُظهر وقت التحميل الحالي. حوالي 3 ثوان.

هل نعرف أين تقضي الثواني المتبقية؟ (على سبيل المثال ، بدء تشغيل محرك / عرض الويب Javascript ، ملحقات كوردوفا ، تحميل Angular 2 ، ...)؟

هل يمكن تحسين هذه الثواني للحصول على تجربة أقرب إلى التطبيقات المحلية؟

SynerG ، معلومات عظيمة. أنا غارق قليلاً في بعض الأشياء الأخرى في الوقت الحالي ولكن سيكون لدينا المزيد من التعليقات قريبًا. شكرا لتجميع ذلك!

شكرا،
دان

لقد قمت بإنشاء مشروع ionic2 rc-0 جديد مع قائمة جانبية. لقد استخدمت معمل الخدمة الأيونية ، وعندما أقوم بالنقر فوق الرمز الموجود على الجانب الأيسر من شريط الرأس ، لا تظهر القائمة. فقط عندما أقوم بالتمرير أو النقر فوق القائمة إلى زر Google الذي ينزلق

danbucholtz أردت أن أشكر فريق Ionic على إطلاق RC0! على الرغم من أنني اضطررت إلى استثمار بعض الوقت لترحيل تطبيقي بسبب كل التغييرات ، فقد تحسن وقت بدء تشغيل تطبيقي بشكل ملحوظ! على سبيل المثال ، في جهاز Samsung Galaxy 4 البالغ من العمر 3 سنوات ، كان وقت بدء التشغيل مع الإصدار التجريبي 11 حوالي 6 ثوانٍ ، حيث تم تقليل RC0 إلى حوالي 3 ثوانٍ! إنه تحسن كبير تم إجراؤه بشكل جيد :)

abhayastudios ، w00t! شكرا!

لدينا المزيد من التحسينات والتحسينات في المتجر أيضًا!

شكرا،
دان

لقد قمنا أيضًا بخفض وقت التحميل بحوالي 50٪. رفاق العمل العظيم. حقا أحب العمل مع هذا الإطار.

أعلم أن هذا لا يساعد لكنني انغمست مؤخرًا في الأيونية وأنا أستخدم 2.0.0-rc.2 ، لقد لاحظت مدى بطء التحميل الأولي مقارنة بالتطبيق الذي تم إنشاؤه على 1.1.1

geocine لقد لاحظت نفس الشيء ، في تطبيق أقدم v1 ، وقت بدء التشغيل جيد جدًا ولكن بينما يوفر Ionic v2 بيئة برمجة أفضل بكثير ، فإن أوقات بدء التشغيل بطيئة جدًا في تطبيقي (> 5 ثوانٍ في الإصدار المبني على أساس نسبي جهاز سريع يعمل بنظام Android 6.0). هل بناء Webpack يقوم بهز الشجرة؟

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

geocine لهذا السبب عادة ما تستخدم المكون الإضافي لشاشة cordova splash (https://github.com/apache/cordova-plugin-splashscreen) وإخفائه onDeviceReady.

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

أنا أطرح هذا السؤال لأنني أواجه مشكلات في وقت بدء تشغيل تطبيقي على Android ، والذي يزيد عن 5 ثوانٍ.
حتى عندما أستخدم تطبيق Ionic 2 التعليمي العادي ، فإنه يبدأ فقط بعد 4-5 ثوانٍ على جهاز عالي الأداء نسبيًا (Sony Z3 Compact ، 6.0.1).
هذا بطيء حقًا (يستغرق تطبيق Ionic 1 القديم الخاص بي مع بعض المكونات الإضافية أقل من 3 ثوانٍ للبدء).

هل هناك أي خطط (بشكل كبير) لتقليل أوقات بدء تشغيل تطبيق Ionic 2؟
يعد التطوير باستخدام Ionic 2 أمرًا رائعًا ، لكنني أخشى أنه بخلاف ذلك سأضطر إلى التبديل إلى إطار عمل آخر :-(

هل هناك أي خطط لإضافة دعم للتحميل الكسول ، فقد يكون هذا مفيدًا أيضًا في تقليل وقت التحميل الأولي. Angular cli الذي يستخدم webpack يدعم الآن تحميل Lazy ومع AoT ، يمكن للتطبيق الزاوي المصمم جيدًا تقليل وقت التحميل بشكل كبير. نظرًا لأن Ionic تستخدم حزمة الويب أيضًا ، أعتقد أنه يمكن القيام بذلك مع Ionic أيضًا.

الاحتياجات العاجلة للتحميل الكسول.

قال مستند اجتماع الفريق الأيوني إنهم يعملون في هز الأشجار ، لذا من المحتمل أن يؤدي ذلك إلى تقليل حجم الحزمة

إن اهتزاز الشجرة أمر رائع ، لكنه لا يمكنه فعل الكثير. التحميل الكسول هو مصدر قلق منفصل مهم ، وحتى الآن ، لم يعرب الفريق الأيوني عن اهتمام كبير به وفقًا للتعليقات التي رأيتها في قضايا أخرى (مثل https://github.com/driftyco/ionic/issues/8102 ). لسوء الحظ ، يبدو أن الكثير من الناس يعتقدون أنه مفيد فقط في تطبيقات الويب ، على الرغم من أنه يمكن أن يكون مفيدًا بشكل لا يصدق أيضًا في تطبيقات الأجهزة المحمولة.

@ rob3c وآخرين ،

التحميل الكسول شيء ننظر إليه ونود استكشاف المزيد. نتوقع أن تسمع المزيد عن هذا الموضوع في الأشهر المقبلة.

شكرا،
دان

@ danbucholtz ،
بخلاف التحميل البطيء ، هل تستكشف أي حلول أخرى يمكن أن تقلل بشكل كبير من وقت بدء التشغيل؟

في الوقت الحالي ، هذا هو السبب الأول الذي يجعلنا لا نتبنى Ionic 2 في مشاريع جديدة.
لا أعرف ما إذا كان بإمكانك مشاركة بعض المعلومات معنا حول ما يتم تنفيذه.
شكرا!

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

أصبح وقت بدء التشغيل أسوأ كثيرًا بعد أن تحول Angular 2 إلى الوحدات النمطية بسبب AoT. في NativeScript ، الذي يعاني أيضًا من مشاكل في وقت بدء التشغيل الطويل ، يبدو أنه لا بأس به بدون Angular 2 (https://github.com/NativeScript/nativescript-cli/issues/371). في حزيران (يونيو) ، بدأ تطبيقي سريعًا نسبيًا ، ولكن بعد أن تحول Ionic 2 إلى الإصدار الأحدث من Angular 2 ، أصبح الآن يستغرق> = 5 ثوانٍ وهذا غير قابل للاستخدام للإنتاج. هل أنت على دراية بأي تحسينات على Angular 2 يتم إجراؤها لتحسين هذا أم أن اهتزاز الأشجار والتحميل البطيء هو السبيل الوحيد؟

Kobzol ،

هذا أمر غريب ، ينتج عن AoT بالتأكيد وقت بدء أسرع بشكل ملحوظ (عادةً ، على أي حال ، أنا متأكد من وجود حالات حافة).

SynerG ،

وقت البدء سريع جدًا مع AoT. هل أنت متأكد من أنك كنت تختبر مع AoT؟ لا يزال حجم الحزمة لدينا كبيرًا نسبيًا ونعمل على تقليله. إنها ليست ضخمة تمامًا إلا إذا قمت باستيراد مجموعة من المكتبات الكبيرة. في كثير من الأحيان تصبح libs الصغيرة ضخمة بسبب مجموعة من التبعيات المتداخلة.

شكرا،
دان

لا أعرف ما إذا كنت أفعل شيئًا خاطئًا ، لكنني حاولت تشغيل تصميمات AOT prod لقالب بدء البرنامج التعليمي Ionic 2 مع كل من webpack و Rollup ويستغرق الأمر أكثر من 5 ثوانٍ لبدء التشغيل على جهازي (Sony Z3 Compact with Android 6.0.1) ، بينما يبدأ تطبيق Ionic 1 الأقدم في 3 ثوانٍ.
ساءت عملية بدء التشغيل خلال الشهرين الماضيين ، عندما تحول Angular 2 إلى نظام الوحدات (حدث نفس الشيء مع تطبيق Nativescript الخاص بي ، والذي تباطأ بعد التبديل Angular). ربما يمكن أن يساعد التحميل البطيء في ذلك.

هل لديك أي أرقام معيارية يمكنني استخدامها للمقارنة؟

5 ثوان ليست بهذا السوء مقارنة بما كنت أراه. اضطررت إلى زيادة حد المهلة في config.xml للتأكد من عدم انتهاء المهلة (الافتراضي هو 20 ثانية!).

كان ذلك لجهاز 4.4 أبطأ بالرغم من ذلك. على Sony Xperia E5 مع 6.0 ، لا يزال من 10 إلى 15 ثانية.

آيفون 7 بلس أقل من ثانيتين.

ما هو حجم حزمك؟ هل تستخدم الكثير من مكتبات الطرف الثالث؟

شكرا،
دان

مرحبًا دان!

لا شيء مجنون جدا على ما أعتقد.

حجم الحزمة الخاصة بي باستخدام webpack و AoT هو 1.9 ميغابايت.

Deps في package.json

...
  "dependencies": {
    "@angular/common": "2.2.1",
    "@angular/compiler": "2.2.1",
    "@angular/compiler-cli": "2.2.1",
    "@angular/core": "2.2.1",
    "@angular/forms": "2.2.1",
    "@angular/http": "2.2.1",
    "@angular/platform-browser": "2.2.1",
    "@angular/platform-browser-dynamic": "2.2.1",
    "@angular/platform-server": "2.2.1",
    "@biesbjerg/ng2-translate-po-loader": "^0.1.3",
    "@ionic/app-scripts": "0.0.46",
    "@ionic/storage": "1.1.6",
    "@ngrx/core": "1.2.0",
    "@ngrx/effects": "2.0.0",
    "@ngrx/store": "2.2.1",
    "angular2-uuid": "1.1.0",
    "ionic-angular": "nightly",
    "ionic-native": "2.2.7",
    "ionicons": "3.0.0",
    "ng2-translate": "^4.1.0",
    "ngrx-store-freeze": "0.1.4",
    "ngrx-store-logger": "0.1.7",
    "pofile": "^1.0.2",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "0.6.26"
  },
  "devDependencies": {
    "@biesbjerg/ng2-translate-extract": "^0.1.1",
    "@ionic/app-scripts": "0.0.46",
    "@types/cordova-plugin-media": "0.0.3",
    "del": "^2.2.2",
    "fs": "0.0.1-security",
    "path": "^0.12.7",
    "typescript": "2.0.10"
  },
  "cordovaPlugins": [
    "cordova-plugin-device",
    "cordova-plugin-console",
    "cordova-plugin-whitelist",
    "cordova-plugin-splashscreen",
    "cordova-plugin-statusbar",
    "ionic-plugin-keyboard",
    "cordova-plugin-globalization",
    "cordova-plugin-media",
    "cordova-plugin-file",
    "cordova-plugin-compat",
    {
      "locator": "https://github.com/EddyVerbruggen/cordova-plugin-backgroundaudio",
      "id": "nl.x-services.plugins.backgroundaudio"
    },
    "cordova-plugin-app-version",
    "cordova-plugin-x-socialsharing",
    {
      "locator": "https://github.com/biesbjerg/cordova-plugin-inapppurchase.git",
      "id": "cordova-plugin-inapppurchase"
    },
    {
      "locator": "https://github.com/driftyco/cordova-plugin-wkwebview-engine.git",
      "id": "cordova-plugin-wkwebview-engine"
    },
    "cordova-plugin-google-analytics",
    "cordova-sqlite-storage"
  ],
...

أهلا،
أرغب في مشاركة معلوماتي الخاصة مع وقت بدء التشغيل أيضًا.
في الواقع ، أضع Ionic V1 القديم في V2 (أعيد كتابة كل شيء من البداية).

يبدأ تطبيقي القديم المزود ببرنامج المشاة (حسب الجهاز) من 3 إلى 4 ثوانٍ.
يحتاج التطبيق الجديد من 6 إلى 7 ثوانٍ (7 ثوانٍ على الأرجح).

لقد جربت RC3 بالإضافة إلى البنية الليلية (إصدار الإطار الأيوني: 2.0.0-rc.3-201612021933)

Package.json:
{
  "name": "ionic-hello-world",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"
  },
  "dependencies": {
    "@angular/common": "2.2.1",
    "@angular/compiler": "2.2.1",
    "@angular/compiler-cli": "2.2.1",
    "@angular/core": "2.2.1",
    "@angular/forms": "2.2.1",
    "@angular/http": "2.2.1",
    "@angular/platform-browser": "2.2.1",
    "@angular/platform-browser-dynamic": "2.2.1",
    "@angular/platform-server": "2.2.1",
    "@ionic/storage": "1.1.6",
    "ionic-angular": "^2.0.0-rc.3-201612021933",
    "ionic-native": "2.2.3",
    "ionicons": "3.0.0",
    "moment": "2.15.1",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "0.6.26"
  },
  "devDependencies": {
    "@ionic/app-scripts": "0.0.44",
    "typescript": "2.0.9",
    "webpack-bundle-analyzer": "^1.5.3"
  },
  "cordovaPlugins": [
    "cordova-plugin-whitelist",
    "cordova-plugin-statusbar",
    "cordova-plugin-console",
    "cordova-plugin-device",
    "cordova-plugin-splashscreen",
    "ionic-plugin-keyboard"
  ],
  "cordovaPlatforms": [],
  "description": "o2: An Ionic project"
}

يبلغ حجم مجلد الأصول الخاصة بي (ملحقات / صور الطرف الثالث) حوالي 2.14 ميجابايت.
أنا أستخدم 6 ملحقات مختلفة لجهات خارجية (jQuery ، و moment ، و hammer ، و jquery 3.1 ، و fullcalendar ، و svg-panzoom ، و fontawesome).

حجم APK: 6.58 ميجا بايت
هذه الحزمة التي تم فك ضغطها هي: 15 ميغا بايت.

الطي:

  • الأصول: 10.1 ميجابايت
    -> www / الأصول: 2.93 ميجابايت
    -> www / build: 7.07 ميجا بايت
    -> www / build / main.js: 3.003 ميجابايت
    -> www / build / main.js.map: 3.790 ميجا بايت (هل هذا مطلوب للإنتاج؟)
  • الدقة: 1.73 ميجا بايت
  • class.dex: 3.07 ميجابايت
  • resources.arsx: 0.13 ميجا بايت

معلومات الإصدار الأيوني:

Your system information:
Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3-201612021933
Ionic CLI Version: 2.1.13
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.44
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 8.1
Node Version: v6.9.1
Xcode version: Not installed

ربما يكون ذلك مفيدًا ، إذا كان بإمكانك @ danbucholtz / @ jgw96 مشروعي الفعلي لتصحيح هذه المشكلة ، فسأكون سعيدًا بمشاركتها (خاصة).

تحيات
الجريب فروت

أعتقد أنه يجب تعطيل خرائط المصادر لبناء الإنتاج. أضاف Angular CLi مؤخرًا خيارًا لتعطيله https://github.com/angular/angular-cli/pull/3262

Graphefruit ، هل يمكنك أيضًا مشاركة عدد المكونات والتوجيهات التي يحتوي عليها تطبيقك؟

مرحبا @ naveedahmed1 ،
ها نحن ذا:

  • الخدمات: 10
  • الأنابيب: 3
  • الصفحات: ~ 49
  • التكوين المخصص: 1
  • التوجيهات: 0 (؛))

تحيات
الجريب فروت

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

@ rob3c ،

سيكون شكلي.

شكرا،
دان

danbucholtz ، نحتاج حقًا إلى تحسين وقت التمهيد. حتى تطبيق المؤتمر الأيوني الذي تم تنزيله من متجر الألعاب يستغرق من 9 إلى 10 ثوانٍ على الإصدار 5.0.1 من Samsung Galaxy S4 Android.
هذا هو التطبيق الذي قمت بتنزيله --- https://play.google.com/store/apps/details؟id=io.ionic.conferenceapp

يبلغ وقت تشغيل تطبيقي الذي يحتوي على صفحات قليلة حوالي 7-8 ثوانٍ على نفس الهاتف.

لذلك حاولت إرفاقي عبر Developer-Tools وحصلت على نتيجة جيدة في الجدول الزمني.
لم أتمكن من التعقب من البداية بسبب الإرفاق ، لكنك ترى ما يحدث:
image

يستغرق البرنامج النصي Compile حوالي 500 مللي ثانية ، بينما يستغرق البرنامج النصي التقييمي من 0 مللي ثانية إلى 5000 مللي ثانية.

إذا لزم الأمر danbucholtz @ jgw96 يمكنني أن أرسل لك الجدول الزمني المحفوظ لهذا.

كيف تمكنت من تشكيل هذا؟ لا يمكنني الاتصال بالتطبيق حتى يتم تشغيله بالكامل.

راجع للشغل لا أعرف ما إذا كانت هذه نتيجة جيدة بالنسبة لك ، ولكن للأسف بالنسبة لعميلي ، فإن وقت بدء التشغيل> 5/6 ثوانٍ غير مقبول.

Kobzol ليست نتيجة جيدة ، الصفحة بحاجة إلى 7 ثوانٍ ~ أيضًا.
ما فعلته: افتح صفحة ، واطلع على قائمة الأجهزة المرفقة ، وابدأ تشغيل التطبيق لأول مرة بشكل عادي ، وافتح مفتاح "المفتش" إلى علامة تبويب المخطط الزمني
أغلق التطبيق الآن ، وسيقوم المفتش الآن ببدء تشغيل التطبيق مرة أخرى ، واضغط على فحص ، واضغط على علامة تبويب المخطط الزمني بسرعة فائقة على زر التسجيل ؛)
أول 1-2 ثانية عند بدء تشغيل التطبيق لا يمكنني إرفاقه أيضًا ، لكن الباقي ممكن مع القليل من الأصابع السريعة.

تحديث: مع Ionic1 حصلت على 3-4 ثوانٍ لبدء التشغيل وهو أمر مقبول تمامًا بالنسبة لي

هل تقوم بالبناء باستخدام AoT ؟ تبدو تلك الأوقات بطيئة.

شكرا،
دان

danbucholtz ، في حالتي ، قمت بتنزيل تطبيق مؤتمر أيوني من متجر هنا

savanvadalia ،

لقد سحبناها من متجر الألعاب لأنها في الواقع لم تكن AoT مجمعة. مطورنا أخطأ قبل النشر. سنقوم بإعادة نشر نسخة جديدة قريبا.

هل يمكنك تثبيت أحدث إصدار من CLI الأيوني والبرامج النصية للتطبيق؟

npm install -g ionic<strong i="9">@latest</strong>
npm install @ionic/app-scripts<strong i="10">@latest</strong>

ثم قم بتشغيل ionic build android --prod --release ؟ سيعطيك هذا بنية AoT مع APK محسّن. يجب أن تبدأ أسرع بكثير من 9 ثوان حتى على جهاز بطيء.

شكرا،
دان

Dan على ما هي الأجهزة التي تختبر هذا؟ حتى مع تحديث كل حزمة ، لا يمكنني الحصول على أقل من 6 ثوانٍ ومما رأيته هنا ، يواجه الآخرون تجارب مماثلة.

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

مشاكل التحديث:

إذا حاولت تثبيت أحدث البرامج النصية للتطبيق ، فسأحصل على الخطأ التالي: (لقد قمت بتثبيت أيوني

C:\Users\graphefruit\Documents\o3>npm install @ionic/app-scripts<strong i="9">@latest</strong>
ionic-hello-world@ C:\Users\graphefruit\Documents\o3
`-- @ionic/[email protected]  invalid
  +-- [email protected]
  +-- [email protected]
  `-- [email protected]
    +-- [email protected]
    `-- [email protected]

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\ch
okidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@
1.0.15: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"
})

بعد ذلك بدأت مشروعًا جديدًا كاملاً ، ionic start o4 --v2 بنفس الخطأ.

ربما لا أحصل على آلية التحديث - هل أحتاج إلى إدخال نفسي في المجلد package.json ، أم أحتاج إلى حذف المجلد node_modules ؟
حاولت تحديث البرامج النصية للتطبيقات التي تم تعيينها يدويًا وتشغيل تثبيت npm ، لكنها تعطلت.
لم يتم تحديث package.json تلقائيًا إلى 0.47

لذلك أقوم ببناء المشروع الآن بـ 0.0.45 و --prod --release

_ وكان وقت بدء التشغيل من 7 إلى 8 ثوانٍ أيضًا. _

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

سافان

danbucholtz لقد قمت بالتحديث إلى أحدث البرامج النصية للتطبيق الأيوني وبدأت في تلقي هذا الخطأ (انظر أدناه لقطة الشاشة).
كما أنني اتبعت بدقة إجراء الترقية المذكور في ملاحظات الإصدار.

هل يمكنك المساعدة في هذا من فضلك؟

image

شكرا
سافان

graphefruit لم أواجه أي مشاكل في تثبيت أحدث أيوني cli وتثبيت حزم npm على مستوى المشروع. أتمنى أن تتبع إجراءات الإفراج هنا . ولكن ، كما ذكرت أعلاه ، أحصل على خطأ وقت تشغيل مختلف "قيمة غير متوقعة" غير محددة "تم الإعلان عنها بواسطة الوحدة النمطية" AppModule "".

أيضًا تشغيل 0.0.45 مع --prod --release لن يساعد. طلب Dan تشغيل ذلك باستخدام الإصدار 0.0.47 بدءًا من 0.0.47 وفي الأجنحة ستكون هذه هي الطريقة لإنشاء بنية إنتاج. مع الإصدارات السابقة للنصوص الأيونية للتطبيق ، قام ionic run android بإنشاء إنشاء الإنتاج افتراضيًا.

savanvadalia شكرًا على ملاحظاتك ، في الإجراء ليس هناك الكثير مكتوبًا.
لقد بدأت أيضًا مشروعًا جديدًا ، وقمت بعمل npm install -g ionic@latest قبل.
هل قمت للتو بتشغيل كلا الأمرين في مجلد مشروعك؟ أو هل فعلت أي شيء محدد؟
كما قلت ، حاولت بالفعل إزالة المجلد node_modules أيضًا ، وفعلت npm-install بعد ذلك.
لكن في رأيي ، لن يساعد ذلك عندما لا يتم تحديث package.json إلى أحدث إصدار من البرامج النصية للتطبيق. 0.47 ولكن عندما أفعل هذا يدويًا فإنه يتعطل أكثر ...

عادةً ما ينشرون في سجل التغيير أحدث package.json وما يجب تحديثه.

التحديث ، تمكن أخيرًا من حلها باستخدام هذه الأوامر:

npm install ionic-angular<strong i="18">@nightly</strong> --save
npm install @ionic/app-scripts<strong i="19">@latest</strong> --save-dev

دع البناء يبدأ.

اختبار البناء

لذلك ، مر البناء ، حقيقة مضحكة - كنت بحاجة إلى "strg + c" لأنه تم عرض ngc-started لأكثر من 10 دقائق ، بعد ذلك ، استمر البناء ، للمرة الثانية يتم تشغيله دون أي مشاكل.

الحجم: 9.2 ميجا بايت
لا يزال main.js.map موجودًا عند الإنشاء للإنتاج

يحتاج بدء تشغيل التطبيق من 7 إلى 10 ثوانٍ (حسب الجهاز) ، لذا يبدو أنه أصبح أسوأ من ذي قبل.
(الملاحظة 1 ، Note2)

على Google Pixel XL ، كان وقت بدء التشغيل حوالي 4.5 إلى 5 ثوانٍ
مقارنةً بإصدار التطبيق القديم ، لا يزال أبطأ بمقدار 1-2 ثانية (وقت بدء التشغيل 3.5 ثانية)

Your system information:

Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3-201612142137
Ionic CLI Version: 2.1.17
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.47
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 8.1
Node Version: v6.9.1
Xcode version: Not installed

التحديث 2:

لقد قارنت للتو الأحجام من الإصدار القديم بـ 0.45 و 0.47 - يحتوي main.js (حوالي 10 كيلو بايت تقريبًا) على نفس الحجم - 3 ميجا بايت. - لا أعرف ما إذا كان هذا يجب أن يتأثر أيضًا.

تحديث 3:

هذه هي أفضل لقطة بعد 15 دقيقة ، جرب التحميل:
image

danbucholtz تمكنت من حل خطأ وقت التشغيل بنفسي ، فقد كان متعلقًا بالبراميل الزاوية. اضطررت إلى الرجوع إلى الوحدات بمسار كامل في ملف app.module.ts. لا أعرف لماذا بدأت بالفشل مع إصدار البرنامج النصي الأحدث رغم ذلك !!

ومع ذلك ، بعد إصلاح الخطأ وتشغيل ionic run android --prod --release على جهاز Samsung Galaxy S4 Android الإصدار 5.0.1 ، لا يزال التحميل الأولي 7-8 ثوانٍ. لا يوجد أي تغيير في الأولي على الإطلاق بعد تحديثه إلى أحدث إصدارات البرامج النصية للتطبيقات الأيونية.

نحتاج حقًا إلى تحسين وقت التحميل الأولي. أنا شخصياً لا أعتقد أن الهاتف وإصدار Android الذي أستخدمه قديم نسبيًا بحيث يكون وقت التمهيد بطيئًا. سأكون سعيدًا في مكان ما بين 3-4 ثوانٍ من وقت التمهيد على الهواتف القديمة متوسطة المدى.


graphefruit ، لقد قمت بخطوتين غير مذكورين في إجراء الإصدار
1) لقد قمت بتعديل ملف package.json يدويًا لتغيير إصدار البرنامج النصي إلى 0.0.47 ثم تشغيل تثبيت npm.
2) قمت أيضًا بإزالة دليل tmp. وهو غير صالح مع عملية الإنشاء الجديدة وفقًا لملاحظات الإصدار.

بصرف النظر عن هذا ، فقد اتبعت للتو إجراء الإفراج.

هل تقوم بتشغيل أحدث CLI الأيونية؟ هل يمكنك التحقق؟ npm install -g ionic@latest .

هل يمكنك تشغيل npm run ionic:build --aot والتحقق من تشغيل ngc في المحطة؟ عند تشغيل ionic run android --prod --release هل ترى ngc في المحطة؟

شكرا،
دان

مرحبا danbucholtz ،

نعم أرى ngc عند التشغيل - prod --release.
كما أنني قمت بتثبيت أيوني @ الأحدث أكثر من 4 مرات ؛) عبر cmd دون أي أخطاء - ربما نحتاج إلى تغيير بعض الإعدادات في package.json - لم تتم الترقية من تلقاء نفسها.
كما أنني قمت بتثبيت الليل ربما لأرى بعض الاختلاف.

الأمر الآخر الذي يمكنني محاولة تشغيله صباح الغد.

تحيات
الجريب فروت

تضمين التغريدة

نعم ، أنا أستخدم أحدث أيوني cli (يرجى الاطلاع على معلومات بيئة مساحة العمل الخاصة بي في النهاية)
أرى أيضًا ngc في المحطة في كلتا الحالتين اللتين ذكرتهما ، يرجى الاطلاع على لقطة شاشة لكل منهما
1) npm run ionic:build --aot
2) ionic run android --prod --release

1) Aot build
image

2) بناء الإنتاج أثناء التشغيل على الجهاز

image

لا يزال لا يوجد فرق في أوقات التحميل الأولية بالنسبة لي والتي 7-8 ثوان 😞 😞

cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3
Ionic CLI Version: 2.1.17
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.47
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v6.9.1
Xcode version: Not installed

قد يكون وقت تحميل savanvadalia الطويل خاصًا بتطبيقك. سيكون من المفيد إذا حاولت توفير أرقام لتطبيق مبتدئ أو تطبيق مؤتمر أيوني حتى تكون الأرقام قابلة للمقارنة.

كما أنه من المنطقي الترقية إلى RC4 الأيوني الزاوي.

@ danbucholtz Care ، ستكون هذه المشاركة أطول قليلاً:

بلدي / مشروع مخصص

npm run ionic:build --aot
image

ionic run android --prod --release
image

ionic build android --prod --release
image

لا يزال وقت التحميل 10 ثوان.

كاتب التطبيق

astec بعد أن طلبت ذلك ، قمت بتثبيت تطبيق المبتدئين.
وفعلت الشيء نفسه هنا.

  1. npm install -g ionic@latest
  2. ionic start o5 --v2
  3. ionic info
Your system information:

Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.4
Ionic CLI Version: 2.1.17
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.47
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 8.1
Node Version: v6.9.1
Xcode version: Not installed
  1. ionic platform add android
  2. npm run ionic:build --aot
    image
  3. ionic run android --prod --release
    image

  4. الأوقات:
    7.1 الملاحظة 1 - Android 4.1 - استغرق مشروع البداية حوالي 5 إلى 5.5 ثانية
    7.2 الملاحظة 2 - Android 7.0 (CM14) - استغرق مشروع البداية حوالي 5.5 إلى 6.5 ثانية

مؤتمر - التطبيق

لذا حاول بعد ذلك تنزيل تطبيق المبتدئين: https://github.com/driftyco/ionic-conference-app

  1. npm install
  2. ionic info
    image

-> يبدو أن هذا ليس على rc.4 ، سبب هذا

  1. لقد غيرت package.json كما هو مذكور في سجل التغيير.
"dependencies": {
  "@angular/common": "2.2.1",
  "@angular/compiler": "2.2.1",
  "@angular/compiler-cli": "2.2.1",
  "@angular/core": "2.2.1",
  "@angular/forms": "2.2.1",
  "@angular/http": "2.2.1",
  "@angular/platform-browser": "2.2.1",
  "@angular/platform-browser-dynamic": "2.2.1",
  "@angular/platform-server": "2.2.1",
  "@ionic/storage": "1.1.6",
  "ionic-angular": "2.0.0-rc.4",
  "ionic-native": "2.2.11",
  "ionicons": "3.0.0",
  "rxjs": "5.0.0-beta.12",
  "zone.js": "0.6.26"
},
"devDependencies": {
  "@ionic/app-scripts": "0.0.47",
  "typescript": "2.0.9"
}
  1. تم حذف node_modules
  2. npm install
  3. ionic info
    image
  4. ionic platform add android
  5. npm run ionic:build --aot
    image
  6. ionic run android --prod --release
    image
  7. ionic build android --prod --release
    image
  8. أوقات بدء التشغيل
    11.1 الملاحظة 1 - Android 4.1 - 7 - 8s
    11.2 الملاحظة 2 - Android 7 (CM 14) - 7 - 8.5 ثانية

تم قياس الوقت من خلال "النقر على أيقونة التطبيق" حتى تظهر الشاشة مع المحتوى
لذا ، حتى تطبيق المؤتمرات الذي يحتوي على أحدث إصدار يحتاج إلى 7-8 ثوانٍ ، لذا فهو ليس مشروعًا مخصصًا.
ومع ذلك ، لا يزال تطبيق المؤتمرات صغيرًا حقًا بدون نشاط كبير على الإنترنت ، أو نظام ملفات html-5.

أتمنى أن يساعدك هذا.
تحيات
الجريب فروت

@ jgw96 ، هل يمكنك تقييم ما ورد أعلاه؟ جاستن هو خبير Android المقيم لدينا. فكرتي المبدئية هي أن تلك الهواتف القديمة (الجيل السابع) قديمة حقًا ويمكن أن يلعب ذلك عاملاً ، لكنني سأذعن لجوستين.

شكرا،
دان

FWIW لديّ Sony Compact Z3 ، وهي ليست قديمة حقًا والأوقات متشابهة إلى حد كبير في Android 6.x.

@ jgw96danbucholtz لقد تثبيته الآن على بلدي جوجل بكسل aswell - وقت بدء التشغيل من التطبيق المؤتمر - تولى 3،5-4 ثواني.
حقيقة ممتعة: لقد كان لدي 10 مرات بدء تشغيل إلى 8-10 ثوانٍ - ثم قمت بإزالة التطبيق وتثبيته مرة أخرى ، وانخفض الوقت إلى 3.5 إلى 4 ثوانٍ مرة أخرى.

graphefruit نعم ، لكن إعادة التثبيت لا يمكن أن تكون الطريقة الصحيحة. ؛-)
سيكون من المثير للاهتمام (التنميط) أن يتم إنفاق الكثير من الوقت على ومدى سرعة الأطر (الزاويّة) الأخرى (Ionic 1 و OnsenUI وما إلى ذلك) في بدء تطبيق بسيط "hello world" على نفس الجهاز.
وقت بدء تشغيل تطبيق RC4 conf على Moto G2 (ليس قديمًا جدًا) حوالي 6 ثوانٍ: - /

mpaland هذا صحيح ، لن يكون هذا هو الطريق الصحيح ، ولكن في بعض الأحيان تقديم جميع المعلومات التي وجدتها هو أفضل طريقة وآمل أن يتمكن أيونيك من استخدامها.
كما ذكرت في بعض المنشورات سابقًا - أقوم بنقل تطبيق Ionic1 الخاص بي إلى Ionic2 ، كان هناك وقت بدء تشغيل من 3 إلى 4 ثوانٍ بحد أقصى.
يستغرق المشروع المنقول من 7 إلى 8 ثوانٍ على نفس الجهاز.

HTC One M8 (Android 6.0 - Vanilla)

بعد اقتراحك قمت بتثبيت مشروع Ionic1:

  1. ionic start myproject
  2. ionic platform add android
  3. ionic build android
  4. Ionic1 - كان وقت بدء التشغيل على HTC One M8 (Android 6.0) حوالي 2.5 ثانية.
  5. Ionic 2 - Conference App - وقت البدء: 5 ثوانٍ
  6. تطبيق Ionic 2- Starter - وقت البدء: 4 ثوانٍ
  7. Ionic 1 - مشروعي المخصص: 4 ثوانٍ
  8. Ionic2 - مشروعي المخصص: 7 ثوانٍ.

صدمة! - تجاهل هذه الجملة.

لذلك حتى مع تطبيق المبتدئين في أيونك 2 ، لا يزال الاختلاف حوالي 1.5 ثانية
تم إصدار HTC One M8 في مارس 2014

Moto G (Android 5.1)

لذا وها نحن نذهب مع الجهاز التالي - Moto G - Android 5.1.

  1. Ionic1 - 4.5 إلى 5.5 ثانية
  2. تطبيق Ionic 2- Conference: 8.5 إلى 10.5 ثانية
  3. Ionic 2 - Starter app: من 6 إلى 6.5 ثانية
  4. Ionic 1 - مشروعي المخصص - 5.5 - 6 ثوانٍ
  5. Ionic 2 - مشروعي المخصص - 7-8 ثوانٍ.

كما ترى ، ما زلنا فرق 1.5 ثانية ، تطبيق المؤتمر يحتاج إلى الكثير من الوقت
تم إصدار Moto G في نوفمبر 2013

لذلك أعتقد أن هذا يجب أن يجيب على جميع الأسئلة الآن.

_ ونعم: تم تجميع كل مشروع في ionic2 باستخدام RC4 والتطبيقات 0.0.47 - قبل أن يسأل أي شخص_

هل تستخدم أحدث Ionic CLI؟ ما هو حجم حزمتك؟ هل يمكنك تجميعها باستخدام npm run ionic:build --aot والتحقق من عدم وجود platformBrowserDynamic هناك؟ يجب أن يتخطى --aot عملية التصغير مع استمرار منحك بنية AoT.

شكرا،
دان

@ danbucholtz سوف أتحقق من ذلك وأعطيك تحديثًا خلال 15 دقيقة ... - ربما أخطأت ، إلى الكثير من التجميعات في آخر ساعتين لهذا المنشور = / آسف

ضع في اعتبارك أن platformBrowserDynamic يجب أن يقوم أساسًا بتشغيل ngc في المتصفح عند بدء تشغيل التطبيق. في النهاية ، سواء كنت تستخدم AoT أم لا ، فأنت لا تزال تستخدم ملفات .ngfactory.js` في المتصفح. يستغرق الأمر حوالي 20 ثانية في مشاركاتك السابقة. إذن 20 ثانية من التجميع في المتصفح + 5 ثوانٍ لبدء التشغيل = وقت طويل.

5 ثوان لا تزال طويلة حقا. شيء ما ليس صحيحا هناك.

شكرا،
دان

@ danbucholtz مرحبا مرة أخرى دان! أنا آسف. لقد قمت بتثبيت أحدث البرامج النصية ، لكن npm run ionic: build --aot لم يكن متاحًا في مشروعي المخصص. - لقد قمت بالفعل بتحديث رسالتي في الأعلى.

لقد أنشأت مشروعًا جديدًا الآن ، وقمت بتجميعه وتوقيعه ، والآن عاد وقت بدء التشغيل إلى 7 ثوانٍ.

_أود أن أذكر أن جميع الشيكات الأخرى_ - تطبيقات المؤتمرات / المبتدئين كانت جميعها مزودة بالتطبيق الأيوني: build --aot ويمكنني التحقق من أن platformBrowserDynamic هي NOT هناك.
لقد استخرجت كل ملفات ZIPS وألقيت نظرة على main.js .

اسف مجددا.

graphefruit جهد كبير لإنتاج مثل هذه الإحصائيات على مجموعة متنوعة من الأجهزة 👍
@ danbucholtz @ jgw96 ، كيف يقوم فريق abt Ionic Team بإصدار إصدار الإنتاج من تطبيق مؤتمر الأيوني في متجر

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

@ danbucholtz لقد كان الأمر هكذا منذ RC.0 ، أشك في أن أي شخص تمكن من بدء التشغيل في أقل من 5 ثوانٍ على Android. أوقات بدء التشغيل Ionic 1 أفضل من Ionic 2.

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

إحصائياتي:
Sony Z3 Compact Android 6.0.1 - AOT / prod / minified build (2 MiB JS bundle) يستغرق 6 ثوانٍ لبدء التشغيل مع Crosswalk وبدونه. على الأجهزة الأبطأ ، يستغرق الأمر وقتًا أطول بكثير (تم الإبلاغ عن 10 ثوانٍ وأكثر من قبل المستخدمين الذين اختبروا تطبيقي).

danbucholtz هل تمانع في مشاركة إعداد اختبار جهاز فريقك معنا؟ من غير الواضح سبب عدم تعرضك لنفس التأخيرات في بدء التشغيل كما يبدو لنا بقيتنا.

مرحبًا بالجميع ، شكرًا جزيلاً لكم _ so_ على التشخيصات التفصيلية ومعلومات الاختبار. هذه هي أولويتنا رقم 1 في الوقت الحالي ، وبينما لا يرى البعض منا هنا بعض أوقات التحميل الطويلة ، يعتمد البعض الآخر على الجهاز / نظام التشغيل / إلخ. نحن نقوم بتضييق نطاقه ، نرحب دائمًا بأي معلومات إضافية لديك.

mlynch على الرغم من أن هذه ليست الثواني الخمس المفقودة ، فقد يكون من الممكن أن يكون بعض الوقت يستحق التوفير

https://github.com/driftyco/ionic-storage/issues/54

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

أهلا،
لقد اختبرت جهازًا آخر:

Nexus 7 (2012) - Android 4.1

أيوني 1 - تطبيق المبتدئين: 4 ثوانٍ
تطبيق Ionic 2- Conference: 7 ثوانٍ
Ionic 2 - تطبيق المبتدئين: 5.5 ثانية
Ionic 1 - مشروعي المخصص - 5.5 ثانية
Ionic 2 - مشروعي المخصص - 8.5 ثانية

ربما يمكنني تقديم اختبار آخر هذا المساء من Ulefone-Metal مع Android 6.0.

تحيات
الجريب فروت

بعد ترقية Ionic إلى 2.1.17 وتشغيل ionic run android --prod أدى ذلك إلى تحسين الأداء بشكل ملحوظ وبدأ تطبيقي في غضون 2 إلى 3 ثوانٍ. لا أعرف ما الذي تم تغييره ولكني سعيد جدًا به. : مبتسم:

PrithiviRajG هل يمكنك مشاركة بعض المعلومات

  1. ما هو حجم تطبيقك؟
  2. ionic info - معلومات
  3. package.json - معلومات
  4. الإضافات المثبتة / مكتبات الطرف الثالث
  5. ما الجهاز الذي تستخدمه؟
  6. هل يمكنك أيضًا اختباره باستخدام starter-app و ionic conference app ؟
    شكرا لك مقدما
    الجريب فروت

تضمين التغريدة

  1. حجم Apk الخاص بي 7 ميجا بايت ، وحجم مجلد WWW 7.88 ميجا بايت ، ومجلد الملحقات 67.1 ميجا بايت ، ومجلد الموارد 1.01 ميجا بايت
  2. ionic info
 ordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.2
Ionic CLI Version: 2.1.17
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.39
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 7
Node Version: v6.7.0
Xcode version: Not installed

  1. package.json
{
  "name": "ionic-app-base",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "build": "ionic-app-scripts build",
    "watch": "ionic-app-scripts watch",
    "serve:before": "watch",
    "emulate:before": "build",
    "deploy:before": "build",
    "build:before": "build",
    "run:before": "build"
  },
  "dependencies": {
    "@angular/common": "2.1.1",
    "@angular/compiler": "2.1.1",
    "@angular/compiler-cli": "2.1.1",
    "@angular/core": "2.1.1",
    "@angular/forms": "2.1.1",
    "@angular/http": "2.1.1",
    "@angular/platform-browser": "2.1.1",
    "@angular/platform-browser-dynamic": "2.1.1",
    "@angular/platform-server": "2.1.1",
    "@ionic/cloud-angular": "0.5.2",
    "@ionic/storage": "1.1.6",
    "angular2-swing": "^0.10.0",
    "ionic-angular": "2.0.0-rc.2",
    "ionic-native": "2.2.3",
    "ionicons": "3.0.0",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "0.6.21"
  },
  "devDependencies": {
    "@ionic/app-scripts": "0.0.39",
    "typescript": "2.0.3"
  }
}

  1. الإضافات المثبتة
cordova-plugin-device
cordova-plugin-facebook4
cordova-plugin-googleplus
cordova-plugin-nativeaudio
cordova-plugin-splashscreen
cordova-plugin-statusbar
cordova-plugin-whitelist
ionic-plugin-keyboard
angular2-swing
  1. معلومات الجهاز: MOTO G 1st Generation - Android 5.1

    1. سيختبر تطبيق بدء التشغيل والمؤتمر الأيوني قريبًا ويخبرك بذلك.

PrithiviRajG شكرا لمعلوماتك. يبدو أنك لست في آخر المستجدات:

Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.2
Ionic CLI Version: 2.1.17
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.39
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 7
Node Version: v6.7.0
Xcode version: Not installed

-> أنت تستخدم RC2 وليس RC4 - كما أن النصوص الأيونية موجودة الآن على 0.0.47.

ولكن ربما هذا مؤشر على @ jgw96 ؟

أهلا،
لقد اختبرت جهازًا آخر:

Ulefone Metal (Android 6.0)

Ionic 1 - تطبيق Starter: 3.5 ثانية
تطبيق Ionic 2- Conference: 5 ثوانٍ
Ionic 2 - Starter app: 4.5 - 4.7 ثانية
Ionic 1 - مشروعي المخصص - 5 ثوانٍ
Ionic 2 - مشروعي المخصص - 7 ثوانٍ

تحيات
الجريب فروت

mlynch بدافع الفضول ، أريد فقط معرفة أن وقت التحميل الأولي يتحسن ،
هل سيتم إصلاحه كجزء من العمل الحالي @ danbucholtz على اهتزاز الأشجار أم سيكون هذا إصلاحًا منفصلاً محددًا

تعرفت على عمل دان من خلال ملاحظات الاجتماع ، أحب العمل معكم يا رفاق. لا أصدق مدى شفافية الفريق مع إطار العمل. :قلب:

savanvadalia ،

لن ننتهي أبدًا من محاولة جعل Ionic أسرع.

في الوقت الحالي ، نحن نركز على الحصول على عمل مناسب للاهتزاز بالأشجار والحصول على دعم مجمع الإغلاق. يمكن أن ينتج عن الإغلاق حزم JS أصغر بكثير من البدائل مما يؤدي إلى أوقات تحميل أسرع. نحن أيضًا نبحث في تقسيم الشفرة في الوقت الحالي لتقليل مقدار الوقت اللازم لتحميل جافا سكريبت وتحليلها.

شكرا،
دان

@ danbucholtz عظيم أن نسمع هذا. كيف يمكنني المساهمة في الحصول على ميزات أسرع؟

أقوم حاليًا بتقييم تقنيات الواجهة الأمامية والمتنقلة لخطوط إنتاج جديدة طويلة الأجل في مجال تمويل المستهلك. أداء التحميل الأولي هو عامل قرار أساسي.

من الاختبار الأخير للتطبيق الصغير ، فإن أداء iOS / Android مقبول. يعد أداء تحميل المستعرض جيدًا نوعًا ما: سأقدم عرض جانب الخادم لاحقًا. يكمن القلق الأكبر في أداء التحميل الأولي عندما نبدأ في تقديم المزيد من الصفحات ووحدات الطرف الثالث.

هل هناك أي طريقة لإظهار شاشة البداية أو أي تقدم في التحميل الأولي لتطبيق Ionic2 / Webview؟

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

أستخدم npm run ionic:build --aot و ionic run android --prod للتشغيل على الجهاز ، والوقت الأولي للتطبيق المبدئي حوالي ثانيتين ، ولكن عندما أستخدم مشروعي الخاص ، فإنه يأتي

خطأ لم يتم اكتشافه: لا يمكن العثور على الوحدة النمطية "./app.module.ngfactory"

لقد قمت بإزالة node_modules و www ، لكنها لا تعمل.
عندما أقوم بتشغيل ionic run android ، فإن مشروعي يعمل ولكن الوقت الأولي حوالي 7-8 ثوانٍ

هذه هي معلوماتي الأيونية

كوردوفا CLI: 6.4.0
إصدار الإطار الأيوني: 2.0.0-rc.4
إصدار أيوني CLI: 2.1.18.1
إصدار ليب التطبيق الأيوني: 2.1.9
إصدار البرامج النصية للتطبيق الأيوني: 0.0.48.1
إصدار ios-publish: غير مثبت
إصدار ios-sim: غير مثبت
نظام التشغيل: Windows 10
إصدار العقدة: v6.6.0
إصدار Xcode: غير مثبت

تحديث
تم حل المشكلة عن طريق الرجوع إلى إصدار مطبوع إلى "2.0.9"

أيا كان ما أفعله ، سيكون الجهاز جاهزًا للنيران بعد 5 ثوانٍ.

الجميع،

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

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

إن تقليص حجم الحزمة وتقسيم الكود وتحسين سرعة التشغيل هو أولويتنا رقم 1.

شكرا،
دان

تضمين التغريدة لقد اقترحت مترجم الإغلاق لفريق Angular CLI في الماضي. قد يكون هناك مفتاح يمكن إدخاله مما يجعل التجميع باستخدام مترجم الإغلاق اختياريًا. أولئك الذين لديهم كود سهل لمجمع الإغلاق يمكنه تمكينه ، يمكن للباقي تجميعه بطريقة قياسية. يمكن لفريق Ionic التأكد من أن مكتبة Ionic الأساسية و Ionic native متوافقان تمامًا مع مترجم الإغلاق. راجع للشغل هل ترغب في مشاركة ما هي أفضل سرعة إطلاق يمكنك تحقيقها بدون / خارج مترجم الإغلاق؟

http://hybridtonative.com ، NativeScript لا يزال غير ناضج ، ولكنه يزداد جاذبية مع استمرار ظهور المشكلات الأيونية ، واستمرار أو نمو التذاكر المفتوحة ، وتدور تقنية عرض الويب حول نفسها ، مما يجبر المطورين على العمل على التكنولوجيا بدلاً من العمل معها. حتى المهام الأساسية تتطلب قدرًا هائلاً من الحلول البديلة ، وحفر المشكلات ، وتتطلب الكثير من تحديث الكود ، واتباع التغييرات والتحديثات التي تترك الإنتاج على قاعدة موحلة من التلميع الذي لا ينتهي أبدًا ، وهو في الواقع إصلاح أخطاء لخيارات التصميم السيئة ، وإصلاح خيارات التصميم السيئة الأخرى. في نهاية اليوم ، ندفع الثمن ويصبح مشابهًا لتطوير التطبيقات محليًا على كل من iOS و Android.

barocsi المبالغة كثيرا؟ هل تدرك أن Angular 2 و ionic هما في طليعة التكنولوجيا التي يعملان بها ويعملان على إيجاد أفضل مسار ممكن للعمل بالنسبة لنا كمطورين؟ ضع في اعتبارك أيضًا أن الإصدار 2 المستقر لم يتم إصداره بعد.

barocsi إذا لم تكن سعيدًا باستخدام Ionic2 ، فاستخدم Ionic1 أو اكتب تطبيقك الزاوي.
حتى مع التطبيق الزاوي الخاص بك ، سوف تتعثر في العديد من المشكلات التي يتم حلها في إطارها بالفعل.
كما أن هذا الإطار مفتوح المصدر ويمكنك المساهمة فيه ؛ إذا واجهتك أية مشكلات تتعلق بالسرعة التي يعملون عليها ، أو يمكنك تفرعها وإنشاء شوكة أيونية 2 الخاصة بك.
لا أريد المجادلة أو كسر شيء ما من السياج ، حتى لو كان لدى Ionic2 مرشح إطلاق ، فقد خرج للتو من الإصدار التجريبي cyclus.
لذا يرجى إعطائها بعض الوقت ، وإذا كنت لا تستطيع الانتظار ، خذ أيونيك 1 واستخدم ممر المشاة ، الذي وضع بالفعل عدة سنوات في هذا السوق

شكرًا على الاقتراحات ، أتساءل عن بدائل للقرارات الحالية والمستقبلية. لدينا بالفعل بعض تطبيقات Ionic V1 و V2 القوية والثقيلة جنبًا إلى جنب مع ما يقرب من 1.5 عام من النضال والمساهمة في المشكلات في جميع أنحاء مستودع جيثب هذا. على الرغم من أن هذا خيط مؤيد للأيونات ، يجب أن نتوقع إلى أين تتجه هذه التكنولوجيا ، حتى لو تم وضع علامة على شيء ما على أنه متقدم بواسطة لمثابرة من قبل المجتمع ويجب تقييمه بصدق ومعاملته بصبر كما نفعل ، يبلغ عمر هذا الخيط 6 أشهر تقريبًا ، ولا يزال يتعامل مع مشكلة أساسية وحرجة الإنتاج.

يمكنني أن أفهم مخاوفك ، ولهذا السبب استخدمت angularjs العادي في تطبيقي الثقيل.
المشكلة هي أنني ما زلت أعثر على العديد من القضايا ، لأنه إذا لم تكتب كل شيء بنفسك أو من الصفر ، فستصل إلى هناك عاجلاً أم آجلاً.
واجهت مشاكل كبيرة مع Angular-Material V1 (الأداء على سبيل المثال) وكنت بحاجة إلى البحث في الإطار بنفسي ، والباقي كتب بنفسي بلغة angularjs.
ولكن حتى هناك وصلت إلى النقطة التي ظهرت فيها مشكلات الأداء.
لذلك كنت بحاجة إلى قضاء بعض الوقت في إطار العمل "الخاص" للعثور عليها ومحاولة إصلاحها.
لذلك يمكنني أن أفهم أيوني مع مشاكلهم ، لأنني وقعت في هذه المشاكل بنفسي.
حتى لو كانت شركة كبيرة / أكبر ، فإن لديهم أيضًا موارد محدودة.

الشيء التالي هو أن Ionic2 ليس مجرد تطبيق ، بل إنه يوفر أيضًا موقعًا على الويب ، كما أنه يدعم UWP (وهذا يمثل الكثير من الألم) كما أنه يدعم PWA.
الكثير من الميزات الجديدة في إطار واحد ، والتي تستخدم في الغالب للتطبيقات ، ولكنها تدعم العديد من الأشياء الأخرى أيضًا.
مع هذه الميزات ، هناك الكثير من التبعيات والكثير من المشاكل عند التنقيب فيها.
لكن مخاوفك مؤهلة ، لكنني أرى المشكلات في التكنولوجيا الجديدة الكاملة التي تم طرحها في السوق وتحاول Ionic الاستيلاء عليها والحصول على الكثير من التبعيات معها.

تضمين التغريدة

دان ، شجعه بشدة تعليقاتك التي تعيد "التجربة" على تقسيم الكود ، مترجم الإغلاق ، اهتزاز الشجرة وسرعة الإطلاق هذه هي الأولوية الحالية رقم 1 لـ ionic2 (4 يناير). يعد تطبيق مؤتمر ionic2 من Github تطبيقًا جيدًا بسيطًا لقياس الأداء يمكن للجميع استخدامه لمقارنة تقدمك. أتمنى أن يتقدم عملك بشكل جيد (وبسرعة). تحتاج حقًا إلى وقت بدء تشغيل يبلغ <= 3 ثوانٍ هذه الأيام أو من المحتمل أن "يرحل المستخدمون" - أكثر من 6 ثوانٍ وهم بالتأكيد "يبتعدون" للأبد.

تم تصميم تطبيق المؤتمر باستخدام --prod وتم تشغيله على جهاز Nexus 7 (2013) Android 6.0.1 ، ويستغرق حاليًا حوالي 8 ثوانٍ للتشغيل (متوسط ​​الوقت عن طريق ساعة التوقف على مدار عدة عمليات إطلاق).

لذا ، لا يزال الطريق طويلاً ، أتمنى لكم كل النجاح !!! - لا سيما أنني أحب الهيكل والتسهيلات التي توفرها ionic2 من وجهة نظر مطور متمرس.

فيل

barocsi أستطيع أن أفهم وضعك وفي الوقت الحالي إنه أمر محبط للغاية بالنسبة لي أيضًا.
لتلخيص ذلك: يجب أن يعمل مشروع تطبيقي على Android و iOS و Win10 (سطح المكتب) ويجب أن يبدأ بسرعة ، 2 ثانية كحد أقصى - حتى على الأجهزة الأقدم (يعني سنتان).
أريد أن أكتب بلغة JS و HTML ، بسبب الكثير من الإيحاءات والخبرة. هذا يضيق المجال لتطبيقات WebView بدلاً من التطبيقات الأصلية (Java ، Obj C).
أحتاج إلى وصول معين إلى المخلفات الخطرة ، لذا فإن كوردوفا اختيار جيد. NativeScript ، Appcelerator ، OnsenUI w / o ng2 ... قد يكون كذلك ، لكني لا أحب الفكرة على الإطلاق.

في الوقت الحالي ، ألوم ng2 على حجم الكود الضخم هذا ولست متأكدًا مما إذا كان برنامج التحويل البرمجي المناسب لمصافحة الأشجار والإغلاق سيقلل من وقت بدء التشغيل بشكل كبير (العامل 4-5 ضروري) في مشروع أكبر. نحتاج أن ننتظر ونرى ...

mpaland هل سبق لك استخدام Ionic1؟
أود حقًا أن أرى كيف تحصل على وقت بدء التشغيل لمدة 2 ثانية - حتى على الأجهزة القديمة.
يحتاج مشروعي المخصص بدون ionic1 أيضًا إلى وقت بدء تشغيل يبلغ حوالي 3 ثوانٍ ، وهنا أذهب مع:

  1. index.html
  2. min.css
  3. min.js

وهذا كل شيء.

هل أنجزت بالفعل مثل هذا وقت التحميل السريع مع كوردوفا (الزاوي ، إلخ)؟

graphefruit ، لا ، لم أجرب Ionic 1 ولم أجرب أي شيء آخر بعد ، لأنني وجدت Ionic 2 الأنسب

تضمين التغريدة
آمل حقًا أن تحقق ionic2 أخيرًا بدء تشغيل <= 3 ثوانٍ ، حتى على الأجهزة الأقدم. يمكنني بالفعل تحقيق ذلك باستخدام إطار عمل هجين آخر + كوردوفا "خارج الصندوق". ومع ذلك ، أفضل استخدام ionic2 نظرًا لأنه يتمتع بنسب جيد يتم بناؤه على angular2 ، والذي بدوره يمنحه دعمًا وتوثيقًا وتسهيلات كبيرة وما إلى ذلك - كل الأشياء التي يقدرها مطور متمرس مثلي بدرجة عالية.

philrob فضولي للغاية حول أي إطار عمل هجين آخر + كوردوفا (بما في ذلك كل ما تحتاجه لمشروعك) يجلب لك أقل من 3 ثوانٍ. من فضلك قل.

لوردج
ليس حقًا مكانًا مناسبًا لإدخال أطر أخرى. آمل فقط أن يتمكن فريق ionic2 من تحقيق انخفاض كبير في وقت الإطلاق مما يجعله أقرب إلى ما أطمح إليه في <= 3 ثوانٍ.

أهلا
لا يزال تطبيق ionic2 الخاص بي يستغرق 10 ثوانٍ للتشغيل. لكن تطبيق ionic1 يستغرق 4 ثوانٍ فقط. كيفية تحسين وقت التحميل الأولي.

philrob بجدية ، تحقق من التعليقات الأخرى ، ستلاحظ سريعًا أن هناك دائمًا مقارنات. هيك ، حتى هذا الخيط لهم. ما تقوله ليس كذبة ، لكن توضيح أن تطبيقك المختلط الذي لا يعمل أكثر من jQuery (مثال) داخل حاوية كوردوفا يفتح في أقل من 3 ثوانٍ هو أمر سخيف تمامًا. استخدام الإطار الذي لا يتعامل مع التصميم أو ليس على الأقل معقدًا مثل Ionic ، أو أنه لا يعتمد على أي مكتبة ضخمة أخرى (angular2) يشبه المقارنة بين الليل والنهار. لا معنى له.

@ mobinius-shreesha قم بتشغيل المشروع كـ ionic build android --prod أو ionic run android --prod للحصول على وقت الإطلاق في 5 ثوانٍ. التشغيل في وضع التصحيح ionic run android سيزيد الوقت إلى أكثر من 10 ثوانٍ

لوردج

لا أعتقد أننا نختلف. لهذا السبب اخترت عمدًا استخدام تطبيق مؤتمر ionic2 من Github (مُصمم باستخدام --prod) لإعطاء توقيت الإطلاق (حوالي 8 ثوانٍ) خصيصًا لجهاز Nexus 7 (2013) Android 6.0.1. من الواضح أنه إذا كان بإمكان إطار عمل آخر تحقيق وقت إطلاق أسرع على نفس المعدات ولا يزال يوفر التسهيلات التي أحتاجها (بما في ذلك أدوات الهاتف المحمول المصممة لواجهة المستخدم) ، فعندها بالنسبة لي ،

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

كما أنني أتطلع إلى زيادة وقت التمهيد.

أعتقد أن فريق Ionic قد قام بعمل رائع بإصداره v1 من نصوص التطبيقات الأيونية الأسبوع الماضي. أدى هذا إلى تحسين وقت البناء بشكل كبير هنا في بيئتي.

أنا متأكد من أنهم سيفعلون الشيء نفسه مع وقت تشغيل التطبيق.

أعتقد أن المشكلة تكمن في مكان آخر: الأيونية v2 في حالة RC. هذا هو ما يجب أن يحترمه معظم المطورين ، على الرغم من ذلك: تشير الوثائق الأيونية من جانب الفريق الأيوني لأي وافد جديد إلى أن الإصدار 2 هو شيء جاهز للإنتاج. لا تعترض هذا هو الحال. حتى المستندات تتخلف الآن إلى الإصدار 2.

هذا السلوك المخادع من الفريق طوعي أم لا هو نوع من نتيجة ضغط الصناعة. تعتمد فترة بقاء Ionics الوحيدة على وضع شيء متقدم له قاعدة مطور كبيرة (js + angular2) قبل أن ينتقل المجتمع إلى تقنية مختلفة عبر منصة ناشئة ، على سبيل المثال تلك التي ذكرتها من قبل: Nativescript

لذلك يجب أن يقترح الفريق الأيوني أن الإصدار 2 هو الإصدار الفعلي لـ Ionic. ولكن يمكن أن تكون علامة السعر أعلى في هذه الحالة: طرح منتج بأجزاء مهمة في الأخطاء بدون إصلاحات في أسرع وقت ممكن يؤدي إلى عدم الثقة من المجتمع الذي يكون في بعض الأحيان أكثر خطورة من الانتظار شهرين أكثر قبل وضع المنتج على أنه طليعة ترقية كبرى ناضجة.

يجب أن يقوم المطورون بالإنتاج وكل خطوة إلى الوراء أو عدم وجود إصلاحات سيجعلهم يلجأون إلى حلول أخرى للتحوط من مستقبلهم واستقرارهم تجاه عملائهم.

أي تحديثات على هذا؟ :)

PrithiviRajG شكرًا على إجابتك. أنا قادر على تشغيل التطبيق في غضون 10 ثوانٍ ، ولكن هل هناك أي تحديثات على ionic2 لتحسين وقت التشغيل. عندما يخططون لإصدار نسخة كاملة من ionic2.do لديك أي فكرة.

تشغيل بارد لمدة 14.99 ثانية مع الإضافات الحالية المثبتة والإصدار الأيوني الحالي:

com-badrit-base64 0.2.0 "Base64"
com.synconset.imagepicker 2.1.7 "ImagePicker"
Cordova-plugin-camera 2.3.1 "الكاميرا"
كوردوفا-البرنامج المساعد- متوافق 1.1.0 "متوافق"
كوردوفا-المساعد-وحدة التحكم 1.0.5 "وحدة التحكم"
جهاز cordova-plugin-device 1.1.4 "الجهاز"
cordova-plugin-Dials 1.3.1 "الإعلام"
cordova-plugin-nativestorage 2.2.0 "NativeStorage"
cordova-plugin-secure-storage 2.6.3 "التخزين الآمن"
كوردوفا-البرنامج المساعد-الدوار الدوار 1.3.1 "حوار سبينر"
cordova-plugin-splashscreen 4.0.1 "Splashscreen"
cordova-plugin-statusbar 2.2.1 "شريط الحالة"
cordova-plugin-whitelist 1.3.1 "القائمة البيضاء"
لوحة المفاتيح الأيونية 2.2.1 "لوحة المفاتيح"

معلومات نظامك:

كوردوفا CLI: 6.4.0
إصدار الإطار الأيوني: 2.0.0-rc.1
إصدار أيوني CLI: 2.1.18.1
إصدار ليب التطبيق الأيوني: 2.1.9
إصدار البرامج النصية للتطبيق الأيوني: 0.0.48.1
إصدار iOS: 1.9.0
إصدار ios-sim: غير مثبت
نظام التشغيل: macOS Sierra
إصدار العقدة: v6.9.2
إصدار Xcode: Xcode 8.2.1 Build version 8C1002

الإصدار الأيوني الحالي tryadelion هو rc4 ، وليس rc1.

الجميع ، دعنا ننتظر RC5 أو إطلاقه حيث يجب أن يكون هناك الكثير من التغييرات فيما يتعلق بهذا.

كيف أقوم بفرض تحديث أيوني لـ rc4؟ هل هناك شيء آخر قديم قد يسبب تأخيري؟

بالنسبة لي ، كان حجم المشروع المعقد في الإصدار 1 من برنامج أيوني هو 1.8 ميجابايت من build.js ، مع الإصدار 2 من المشروع الأساسي main.js يزيد حجمه عن 6.7 ميجابايت.
لا تؤثر إضافة أو إزالة ملحقات كوردوفا بالضرورة على وقت التمهيد.

مرحبا جميعا! سنقوم بإغلاق هذه المشكلة وإغلاق الخيط في الوقت الحالي. في هذه المرحلة ، كنا نقوم بالكثير من العمل لتحسين أوقات التحميل وسرعة إطار العمل وجعله يعمل في كل مكان.

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

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات