Sunday 7 January 2018

عقدة جس-فوريكس


وهذا هو على الارجح واحدة من الأشياء الأكثر إثارة إيف تأتي مع منذ بدأت اللعب حولها مع جافا سكريبت. إذا كنت من أي وقت مضى كتبت مقتطف جس معقدة إلى حد ما قد لاحظت أن أبطأ أجهزة الكمبيوتر المتصفحات (مثل FF2 على ماك) سوف تجمد إذا قمت بتشغيل من خلال حلقة كبيرة أن تفعل بعض العمليات الثقيلة (ربط الحدث، التلاعب دوم، وما إلى ذلك). بالنسبة لي في المستخدم كان هذا دائما مزعج جدا لأنه يحصل فقط في تدفق العمل الخاص بك، وإذا كنت تحصل على سيئ الحظ قد تحطم حتى المتصفح الخاص بك. حتى الآن اعتقدت أن الطريقة الوحيدة لتجنب هذا كان ببساطة عن طريق كتابة أقل كثافة جافا سكريبت أندور تحسين الجحيم للخروج منه. ومع ذلك، مع ترقيات الأخيرة القادمة ل بوستتاسك وصلنا إلى نقطة كنا في كثير من الأحيان تحتاج إلى ربط ما يصل إلى 300 الأحداث () على تحميل الصفحة وكذلك تنفيذ مجموعة كاملة من العمليات الأخرى. وصلت إلى نقطة حيث تحميل الجانب سوف تجميد FF2 على ماك لمدة مجنون 16 ثانية - غير مقبول على الاطلاق من قبل أي معيار. هذه المشاركة حول كيفية خدعة بسيطة تقليل الوقت التهيئة وصولا الى 5 ثوان مع تجنب أي متصفح تجميد على الإطلاق في نفس الوقت. السر الكبير - استخدام جافا سكريبت لتقسيم عبء العمل المشكلة الرئيسية التي حددتها هي المسؤولة عن تجميد المتصفح هو أن جافا سكريبت يعمل في مؤشر ترابط واحد. وهذا يعني أنه في حين أن هناك بعض التعليمات البرمجية جس تنفيذ، لا يمكن تشغيل رمز آخر في نفس الوقت. من بلدي الأيام القديمة القديمة تذكرت أن هناك كان هناك وظيفة تسمى دويفنتس () التي يمكن وضعها في حلقات كبيرة للحفاظ على التطبيقات الخاصة بك من التجمد. ما فعله هو أساسا لمعرفة ما إذا كان هناك أي رمز آخر التي تحتاج إلى تشغيل وتنفيذها ومن ثم العودة إلى حلقة الخاص بك. جافاسكريبت لا تملك مثل هذه الوظيفة، ولكن شيئا يأتي قريبا جدا - توقيت. قام جون مؤخرا بعمل جيد حولهم أكد تجربتي السابقة معهم: إذا قمت بتعيين فاصل زمني أو مهلة من السماح لنقول 50ms في جافاسكريبت لا يوجد أي ضمان على الإطلاق لوقت إطلاق الحدث. الشيء الوحيد جس وعدكم هو عدم إطلاق الحدث قبل 50ms قد انتهت. آخر ثم أنه يحاول فقط لتنفيذ الحدث في اسرع وقت ممكن. وهذا يعني إذا كان هناك أي رمز جس قيد التشغيل حاليا ثم أي حدث سوف النار حتى كتلة من التعليمات البرمجية الانتهاء من التنفيذ. وهذا يعني أيضا أن العديد من الأحداث (فاصل المهلة الفاصلة الخ الاستدعاءات) يمكن طابور حتى على مدى فترة من الوقت ثم النار مرة أخرى إلى الوراء. ما يبدو وكأنه مشكلة مزعجة جدا أن لديك للعمل حولها إذا كنت تريد أن تفعل يتيح القول الرسوم المتحركة على نحو سلس، اتضح أن هذا يفتح أيضا سلسلة واسعة من إمكانيات كتابة رمز غير متزامن في جس. وغير متزامن يعني رمز التي لن تنفذ كجزء من تدفق البرنامج العادي الخاص بك، ولكن كلما كان ذلك مناسبا ل جس المتصفح لتنفيذ ذلك. قد يكون لديك بالفعل إلى الاستنتاج الذي أدليت به منذ بعض الوقت: هذا هو آلية مثالية لتقسيم عملية كبيرة تصل إلى قطع أصغر أن المتصفح يمكن معالجة كلما مريحة ولن يسبب أي تجميد. هذا يعمل دائما أفضل إذا تركت بعض غرفة للتنفس للمتصفح بين تنفيذ قطع رمز (1-5ms عادة ما تكون كافية). هنا هو بعض التعليمات البرمجية التي يمكن تحقيق ذلك بطريقة سهلة الاستخدام:. طابور 123 الموقت: نول، طابور: 91 93، إضافة: وظيفة 40 فن، السياق، الوقت 41 123 فار سيتيمر وظيفة 40 الوقت 41 123. طابور. timer سيتيموت 40 وظيفة 40 41 123 الوقت. طابور. أضف 40 41 إذا 40. طابور. queue. طول 41 123 سيتيمر 40 الوقت 41 125 125. الوقت 2 41 125 إذا 40 فن 41 123. طابور. queue. دفع 40 91 فن، السياق، الوقت 93 41 إذا 40. طابور. queue. لينغث 1 41 123 سيتيمر 40 تايم 41 125 ريتورن 125 فار نيكست. طابور. queue. شيفت 40 41 إذا 40 التالي 41 123 العودة 0 125 التالي 91 0 93. استدعاء 40 التالية 91 1 93 ويندو 41 ريت نيكست 91 2 93 125، كلير: فونكتيون 40 41 123 كليرتيموت 40. طابور. طابور. queue 91 93 125 125 وقت متأخر ملزم واحد من الأشياء التي نستخدمها هذا في بوستتاسك هو ما أسميه الحدث في وقت متأخر ملزمة. دعونا نقول لديك التعليمات البرمجية التالية: (ملاحظة: هذا يمكن تبسيط الكثير، ولكن بهذه الطريقة من الأسهل أن نفهم كيف أعمال إعادة هيكلة) 40 وثيقة 41. جاهزة 40 وظيفة 40 41 123 الكثير من ليس، دعونا نقول 500 40 لي 41. كل 40 وظيفة 40 41 123 40 هذا 41. ربط 40 فوق. فونكتيون 40 41 123 أليرت 40 نعم نقرت لي 41 125 41 125 41 125 41 من المحتمل أنك ستلاحظ أن لديها بالفعل تأثير ملحوظ على وقت تهيئة صفحاتك أثناء تجميد المتصفح أثناءها. لتجنب ذلك يمكن أن يكون سهلا كما: 40 وثيقة 41. جاهزة 40 وظيفة 40 41 123 الكثير من ليس، دعونا نقول 500 40 لي 41. كل 40 وظيفة 40 41 123 فار النفس هذا. دوبيند وظيفة 40 41 123 40 الذاتي 41. ربط 40 انقر. وظيفة 40 41 123 تنبيه 40 نعم كنت النقر لي 41 125 41 125. طابور. إضافة 40 دوبيند، هذا 41 125 41 125 41 هذا يجب تقليل وقت تهيئة صفحاتك وصولا إلى ما يقرب من سرعة غير جس في حين ملزمة أيضا الأحداث في الوقت المناسب. أساسا بدلا من ربط الحدث مباشرة مع وثيقة جاهزة الابتكار، يمكنك ببساطة تغليف كل ربط في إغلاق الخاصة التي قمت بإضافة إلى طابور لتنفيذها في وقت لاحق. وهذا يعني أن المستخدم سوف نرى الصفحة سريع جدا بينما في الخلفية كل 2ms عنصر لي جديد يحصل ملزمة لها القيام به. بالطبع يمكن للمستخدم الآن أن تفعل شيئا مزعج حقا وانقر على عنصر قبل الانتهاء من ربط التي قد المسمار الأشياء. ومع ذلك، هذا أمر مستبعد جدا. واحد، يحتاج المستخدم ليكون سريع جدا، لأن الجحيم بحاجة إلى النقر في أنيق. إيف تم استخدام إكستجس لتطوير بلدي ويباب وخافت ركض في هذه المسألة (حتى الآن) أو حتى تعتبر إذا كان هناك دويفنتس مثل دعوة ل جس. وأتساءل عما إذا كان يمكن تنفيذ هذه الاستراتيجية بسهولة في إكستجس. عندما كنت في حاجة إليها، سوء يأتي يطرق) لأي واحد منكم لا تزال عالقة في اليوم مثل نفسي، للحلقات المكثفة في ف، استدعاء دويفنتس والدعوة أبي النوم (صفر مللي ثانية كافية) لإنتاج حقا المعالجة. وإلا، فإن وحدة المعالجة المركزية تبقى مربوطة خلال حلقة. مادة كبيرة فيليكس إم دق هذا بعيدا ليوم ممطر بالتأكيد. إم مع أتاناس بشأن التعامل مع الحدث ملزم لل أول الأم بدلا من الأطفال الفردية، ولكن بالطبع كل ملزم الحدث ليس دائما هذا قطع نظيفة. يجب أن يكون السطر 6 في أول الكود الخاص بك على النحو التالي:.queue. timer سيتيموت (فونكتيون () أعتقد أن المنطق صعب بعض الشيء، ويمكن أن يستخدم بعض التعليقات .. جافا سكريبت مثل نكتة، مما يعطي أخطاء الكثير من الوقت، على توافق المتصفح لماذا يتوقف مطوري البرامج عن ضرب أنفسهم وتطوير متصفح مشترك بيتر: أنا إصلاحه، وذلك بفضل لاكتشاف ذلك. أسف عن رمز، وهذا هو المقصود كما بوك وأريد أن إجراء بعض التغييرات في ذلك قبل اخماد نسخة الإصدار الفوركس: لا، في محاولة لتعزيز العلاقات العامة الخاصة بك مع عدم المتابعة الرابط هو نكتة). يجب أن تفكر في التحول الوظيفي - لا جس ولا البريد المزعج ويبدو أن شيء جيد الخاص بك at. Your خبرتك في المنزل الموسعة وتنوع عند الطلب. مشاريع مصدر مشترك معنا - جعل أكثر طموحا من المشاريع الخاصة بك ممكن خدمات تطوير التطبيقات بناء تطبيق مبتكر من الصفر، ودمج أصول البرمجيات أو الحفاظ على نشر الحية مداش مهما كان هدفك، ونحن يمكن أن تساعدك على تحقيق ذلك تحديث التطبيق الأمبير الهجرة تجديد متجانسة ، وقطع التطبيقات القديمة والاستفادة من أحدث التقنيات. الاستثمار في مستقبل عملك اليوم كا أمب البرمجيات اختبار كا هو حجر الزاوية في نجاح المشاريع. نحن نخلق عملية الاختبار المتطورة الفعالة لتقديم الجودة التي تتجاوز توقعات العملاءنيد لتحميل بيانات الأسهم التاريخية تحتاج إلى كمية كبيرة أي: منذ عام 1962 حسنا ننظر إلى أبعد من ذلك، حصلت حصلت على تغطية كيفية تحميل معلومات الأسهم التاريخية من ياهو ياهو لديه أبي السرية التي تستخدمها على صفحات خاصة التي تمكنك من عرض بيانات الأسهم التاريخية. أبي هو ريست مقرها وسهلة جدا للاستخدام. تحتاج إلى تحديد كل شريط الأسهم التي تبحث عنها وتاريخ بدء تريد التاريخ من. (تاريخ أقدم يبدو أن حوالي عام 1962.) C الأسهم التاريخية تحميل التعليمات البرمجية لاستخدام أبي ياهو غير موثقة لتحميل بيانات الأسهم التاريخية سوف تحتاج إلى تحديد الأسهم مثل ذلك: رمز لتحميل الواقع وتحليل نتائج الأسهم التاريخية البيانات، سوف تحتاج إلى شيء مماثل إلى رمز C أدناه: مثال على استخدام C التاريخية الأسهم تنزيل إنشاء تطبيق وحدة التحكم C بسيطة ثم إضافة هذا الرمز:

No comments:

Post a Comment