Friday 22 December 2017

Nodejs عازلة ثنائي - خيارات


لا تبعيات، سرعة معتدلة، أي إصدار من العقدة استخدام مارتن ثومسونس الإجابة. الذي يمتد في O (n) الوقت. (انظر أيضا ردودي على التعليقات على إجابته حول عدم التحسينات. استخدام داتافيو بطيء، وحتى إذا كنت بحاجة إلى الوجه بايت، وهناك طرق أسرع للقيام بذلك.) مخازن هي Uint8Arrays، لذلك تحتاج فقط للوصول إلى أرايبوفر . هذا هو O (1): مطلوب شريحة والإزاحة الاشياء لأن مخازن صغيرة (lt4096 بايت، وأعتقد) وجهات النظر على أرايبوفر المشتركة. دون ذلك قد ينتهي بك الأمر مع أرايبوفر تحتوي على بيانات من تيبيداراي آخر. يمكنك استخدام نمبسباكاجيمكبي للذهاب في أي من الاتجاهين (العازلة إلى أرايبوفر والعودة). أسرع من الإجابات الأخرى نشرت هنا وهي مكتبة مكتوبة بشكل جيد. عقدة 0.12 من خلال إوجس 3.x تتطلب نغوسنس شوكة (انظر هذا). الرد أفاتار جول 13 15 في 22: 04 استخدام مخازن في Node. js مقدمة صاف جافاسكريبت لا يعالج البيانات الثنائية مباشرة بشكل جيد للغاية، على الرغم من جافا سكريبت هو يونيكود ودية. عند التعامل مع تيارات تكب والقراءة والكتابة إلى نظام الملفات، فمن الضروري التعامل مع تيارات ثنائية بحتة من البيانات. عقدة لديها العديد من الاستراتيجيات للتلاعب، وخلق، واستهلاك الثماني (واحد ثماني يمكن استخدامها لتمثيل القيم العشرية تتراوح بين 0 إلى 255.) تيارات. يتم تخزين البيانات الخام في حالات فئة المخزن المؤقت (الذي تم تصميمه للتعامل مع البيانات الثنائية الخام) في العقدة. ملحوظة. الثمانية هي وحدة من المعلومات الرقمية في الحوسبة والاتصالات التي تتكون من ثمانية بت. وكثيرا ما يستخدم هذا المصطلح عندما يكون مصطلح البايت غامضا، حيث لم يكن هناك تاريخيا أي تعريف موحد لحجم البايتة. المخزن المؤقت عبارة عن منطقة تخزين ذاكرة فعلية تستخدم لتخزين البيانات مؤقتا أثناء نقلها من مكان إلى آخر. في العقدة، كل المخزن المؤقت يتوافق مع بعض الذاكرة الخام المخصصة خارج V8. يعمل المخزن المؤقت مثل مجموعة من الأعداد الصحيحة، ولكن لا يمكن تغيير حجمها. الطبقة العازلة هو عالمي. وهو يتعامل مع البيانات الثنائية مباشرة ويمكن بناؤها في مجموعة متنوعة من الطرق. قائمة التشفير المستخدمة مع العقدة يتطلب التحويل بين المخازن المؤقتة وسلاسل سلسلة جافا سكريبت طريقة ترميز صريحة. يوضح الجدول التالي ترميزات السلسلة المختلفة. قيمة الإرجاع. عدد الثمانيات المكتوبة. إذا لم يكن هناك مساحة كافية في المخزن المؤقت لتتناسب مع السلسلة بأكملها، فإنه سيتم كتابة جزء من السلسلة. السماح بإنشاء المخزن المؤقت من حجم 15 أوكتيتس. الآن اكتب سلسلة إليه: في المثال أعلاه، الوسيطة الأولى إلى buffer. write هو السلسلة (كوتنود. جسكوت) للكتابة إلى المخزن المؤقت، والوسيطة الثانية هي ترميز السلسلة (quutf8quot). في هذه الحالة، الوسيطة الثانية ليست إلزامية كما كوتوتفوت هو التشفير الافتراضي. str1.write عاد 7، أي أننا قد كتبنا سبعة بايت من المخزن المؤقت. طول السلسلة CTNode. jsquot هو أيضا سبعة. في ما يلي مثال آخر حيث أضفنا كل الوسيطات الثلاثة، تشير الوسيطة الثانية إلى الإزاحة. القراءة من بوفرس buf. toString (ترميز، بداية، نهاية) طريقة buf. toString (ترميز، بداية، نهاية) تقوم بترميز وإرجاع سلسلة من بيانات المخزن المؤقت. هنا في البيانات بوف كتب بالفعل من خلال طريقة الكتابة المخازن. قيمة الإرجاع. سلسلة. في المثال التالي أنشأنا المخزن المؤقت من حجم 15 ثماني، ثم كتابة سلسلة Node. js. يقرأ الأسلوب توسترينغ () المخزن المؤقت بأكمله ويظهر بعض الأحرف الفارغة (u0000)، لأن المخزن مؤقت لا يحتوي على كافة الأحرف النصية. والثانية قراءة الأحرف العازلة من 0 إلى 7 المركز والعودة Node. js. تمثيل جسون. buf. toJSON () يتم استخدام طريقة buf. toJSON () للحصول على تمثيل جسون للمثيل العازلة، وهو مطابق للإخراج لصفائف جسون. هنا مثال. كان حجم المخزن المؤقت من str1 10 وطول السلسلة المحددة هو 7، وبالتالي فإن القيم الثلاث الأخيرة داخل الصفيف يظهر 0. إعداد ثماني الفردية. بوفيندكس يستخدم بوفيندكس للحصول على وتعيين الثمانية في الفهرس. تشير القيم إلى وحدات البايت الفردية، النطاق القانوني بين 0x00 و 0xFF عرافة أو 0 و 255. في المثال التالي، قمنا بإدراج ثلاثة أحرف في نهاية سلسلة Node. js داخل المخزن المؤقت. ملحوظة. انظر تفاصيل كاركوديات () الطريقة هنا. الاختبارات إذا كان كائن هو المخزن المؤقت - يتم استخدام Buffer. isBuffer (أوبج) Buffer. isBuffer (أوبج) طريقة للتحقق مما إذا كان كائن في Node. js المخزن المؤقت أم لا. قيمة الإرجاع. عودة صحيح إذا كان الكائن عبارة عن مخزن مؤقت أو خطأ خلاف ذلك. نوع القيمة. منطقية. انظر الأمثلة التالية: طول البايت الفعلي لسلسلة. Buffer. byteLength (ستر، ترميز) يتم استخدام طريقة Buffer. byteLength (سلسلة، ترميز) للحصول على طول البايت الفعلي لسلسلة مع ترميز معين. قيمة الإرجاع. المخزن المؤقت إذا كانت القائمة لا تحتوي على عناصر أو إذا كان توتالنغث 0، فإنه يعود المخزن المؤقت طول صفر. إذا كانت القائمة تحتوي على عنصر واحد بالضبط، فسيتم إرجاع العنصر الأول من القائمة. إذا كانت القائمة تحتوي على أكثر من عنصر واحد، يتم إنشاء مخزن مؤقت جديد. إذا لم يتم توفير توتالنغث، يتم قراءته من المخازن المؤقتة في القائمة. ومع ذلك، وهذا يضيف حلقة إضافية إلى وظيفة، لذلك فمن أسرع لتوفير طول صراحة. انظر الأمثلة التالية. طول buffer1 هو 4 و buffer2 هي 2. في المثال الأخير ذكرنا الطول الكلي للمخازن المؤقتة (5) ولذلك فإنه يظهر نوديج لا نوديجس. طول المخزن المؤقت في بايت - buf. length يستخدم طريقة buf. length للحصول على حجم المخزن المؤقت ويمثل مقدار الذاكرة المخصصة. انها ليست نفس حجم محتويات المخازن المؤقتة، منذ المخزن المؤقت قد ثلث شغلها. على سبيل المثال: نسخة المخزن المؤقت. buf. copy (تارجيتبوفر، تارجيتستارت، سورسستارت، سورسند) يتم استخدام الأسلوب buf. copy (تارجتبوفر، تارجيتستارت، سورسستارت، سورسيند) لنسخ محتويات المخزن المؤقت واحد على آخر. بيانات تخزين مع Node. js تيارات للكتابة هذا البرنامج التعليمي سوف يشرح كيفية تخزين البيانات مع Node. js تيارات للكتابة وكيفية إنشاء الخاصة بك تيار مخصص للكتابة. معلومات الإصدار المؤلف: جيف بارسزوسكي نشرت: أوغست 18th، 2013 العلامات: نوديجس، تيارات المستوى: متوسط ​​المتطلبات المسبقة: مخازن، الأحداث، تثبيت نبم وحدات Node. js v0.10 (آخر مستقرة هو v0.10.16 حتى كتابة هذه السطور)، ولكن تيارات كانت عموما جزءا من Node. js من أيامها الأولى Streams2 يمكن استخدام فئة مجردة للكتابة مع الإصدارات القديمة (قبل v0.10) من العقدة باستخدام نبم وحدة مقروءة للقراءة (اختبار مع v1.0.15) تخزين البيانات مع للكتابة تيارات ملف نصي الكتابة أبسط مثال هو فقط في كتابة النص utf8، لأن الترميز الافتراضي إذا كنت أكتب سلاسل هو utf8. إذا كنت ترغب في كتابة سلاسل مع ترميز مختلفة ثم يمكنك ببساطة تغيير خط كريتوريستريم أو إضافة ترميز لكل الكتابة. كتابة ملف ثنائي كتابة ملف ثنائي هو مجرد مسألة استخدام المخازن المؤقتة بدلا من سلاسل للكتابة. في المثال أعلاه، استخدم crypto. createRandomBytes () لإنشاء مخزن مؤقت للبيانات، ولكن يمكنك استخدام البيانات الثنائية التي تقوم بإنشائها أو قراءتها من مصدر آخر بنفس السهولة. معرفة متى تم كتابة الملف المدخلات والمخرجات هي عمليات غير متزامنة في Node. js لذلك ماذا لو أردنا أن نعرف متى تم كتابة ملف بالكامل الجواب هو إعداد المستمعين إلى الأحداث التي ينبعث منها تيار. الحدث النهاية (المضافة في Node. js v0.10) يشير إلى أن جميع البيانات تم مسحها إلى النظام الأساسي. في Node. js قبل v0.10، هل يمكن إضافة سب إلى. end () للحصول على مؤشر على متى تم مسحها، ولكن الانتهاء يأخذ في الاعتبار أي تحولات أخرى المصب وما شابه ذلك. إنشاء تراكب قابلة للكتابة Node. js عندما تحتاج إلى إنشاء دفق قابل للكتابة للكتابة الخاص بك لتخزين البيانات في قاعدة بيانات أو منشأة تخزين أخرى، فمن السهل إذا كنت تستخدم فئة Streams2 للكتابة المجردة الجديدة المتوفرة أصلا في Node. js 0.10 أو عبر نبم وحدة بوليفيل للقراءة-تيار. لإنشاء تيار قابل للكتابة الذي ينفذ كل من السلوك Node. js تيار العادية لديك فقط إلى الفئة الفرعية للكتابة وتنفيذ الكتابة (قطعة، ترميز، سب). إنشاء تيار ذاكرة قابل للكتابة هنا مثال على الكتابة إلى مخزن بيانات بسيط في الذاكرة. نحن نستخدم اسم معين في إنشاء تيار كمفتاح، ونحن إلحاق البيانات إلى قيمة حتى الانتهاء. تيارات للكتابة هي أنيقة وسهلة الاستخدام كتابة النص أو البيانات الثنائية لتيارات Node. js هو جهد، وحتى خلق تيارات قابلة للكتابة مخصصة وظيفية بالكامل هو المشي في الحديقة مع وظائف streams2 جديدة أدخلت في Node. js v0.10 (أو وذلك باستخدام وحدة تيار قابل للقراءة بوليفيل). لقراءة إضافية شير ذيس بادج لماذا يحافظ بافرس جافاسكريبت النقي، في حين أنه عظيم مع سلاسل مشفرة ونيكود، لا يعالج البيانات الثنائية مباشرة بشكل جيد للغاية. هذا على ما يرام على المتصفح، حيث معظم البيانات في شكل سلاسل. ومع ذلك، فإن خوادم node. js يجب أن تتعامل أيضا مع تيارات تكب والقراءة والكتابة إلى نظام الملفات، وكلاهما يجعل من الضروري التعامل مع تيارات ثنائية بحتة من البيانات. طريقة واحدة للتعامل مع هذه المشكلة هي مجرد استخدام السلاسل على أي حال. وهو بالضبط ما فعله Node. js في البداية. ومع ذلك، فإن هذا النهج هو مشكلة للغاية للعمل مع بطء، يجعلك تعمل مع أبي مصممة للسلاسل وليس البيانات الثنائية، ولها ميل لكسر بطرق غريبة وغامضة. لا تستخدم سلاسل ثنائية. استخدام المخازن المؤقتة بدلا من ذلك ما هي المخازن المؤقتة المخازن المؤقتة مثيلات فئة المخزن المؤقت في العقدة، والتي تم تصميمها للتعامل مع البيانات الثنائية الخام. كل المخزن المؤقت يتوافق مع بعض الذاكرة الخام المخصصة خارج V8. المخازن المؤقتة تتصرف إلى حد ما مثل صفائف من الأعداد الصحيحة، ولكن أرينت يمكن تغيير حجم ولها مجموعة كاملة من الأساليب على وجه التحديد للبيانات الثنائية. بالإضافة إلى ذلك، فإن الأعداد الصحيحة في المخزن المؤقت تمثل بايت وهكذا تقتصر على القيم من 0 إلى 255 (28 - 1)، شاملة. حيث ترى مخازن: في البرية، وعادة ما ينظر المخازن المؤقتة في سياق البيانات الثنائية القادمة من تيارات، مثل fs. createReadStream. إنشاء المخازن المؤقتة: هناك بعض الطرق لإنشاء مخازن مؤقتة جديدة: هذا المخزن المؤقت غير مهيأ ويحتوي على 8 بايت. يؤدي هذا إلى تهيئة المخزن المؤقت لمحتويات هذه المصفوفة. ضع في اعتبارك أن محتويات الصفيف هي أعداد صحيحة تمثل وحدات البايت. يؤدي هذا إلى تهيئة المخزن المؤقت إلى ترميز ثنائي من السلسلة الأولى كما هو محدد بواسطة الوسيطة الثانية (في هذه الحالة، أوتف-8). أوتف-8 هو إلى حد بعيد الترميز الأكثر شيوعا المستخدمة مع عقدة، ولكن العازلة كما يدعم: أسكي. هذا الترميز هو طريقة سريعة، ولكن يقتصر على مجموعة الأحرف أسي. وعلاوة على ذلك، فإنه سيتم تحويل الأحرف فارغة إلى مساحات، على عكس الترميز أوتف-8. ucs2. A ترميز ثنائي البايت، قليلا إنديان. يمكن ترميز مجموعة فرعية من ونيكود. base64. Base64 ترميز السلسلة. الثنائية . هذا هو تنسيق السلسلة الثنائية المذكورة سابقا، وهي في طور الإهمال. تجنب استخدامه. الكتابة إلى المخازن المؤقتة نظرا لوجود بالفعل المخزن المؤقت الذي تم إنشاؤه: يمكننا البدء في كتابة السلاسل إليه: الوسيطة الأولى إلى المخزن المؤقت. الكتابة هي السلسلة للكتابة إلى المخزن المؤقت، والوسيطة الثانية هي ترميز السلسلة. يحدث ذلك إلى الافتراضي إلى أوتف-8 حتى هذه الوسيطة غريبة. متعادل. كتابة عاد 5. وهذا يعني أننا كتبنا إلى خمسة بايت من المخزن المؤقت. حقيقة أن سلسلة مرحبا هو أيضا 5 أحرف طويلة من قبيل الصدفة، لأن كل حرف حدث للتو ليكون 8 بت لكل منهما. هذا مفيد إذا كنت ترغب في إكمال الرسالة: عندما المخزن المؤقت. الكتابة 3 وسيطات، الوسيطة الثانية تشير إلى إزاحة، أو فهرس المخزن مؤقت لبدء الكتابة في. القراءة من المخازن المؤقتة: ربما الطريقة الأكثر شيوعا لقراءة المخازن المؤقتة هي استخدام الأسلوب توسترينغ، لأن العديد من المخازن المؤقتة تحتوي على نص: مرة أخرى، الوسيطة الأولى هي الترميز. في هذه الحالة، يمكن أن ينظر إلى أنه لم يتم استخدام المخزن المؤقت بأكمله لحسن الحظ، لأننا نعرف كم بايت كتبنا إلى المخزن المؤقت، يمكننا ببساطة إضافة المزيد من الحجج لترتيب الشريحة التي مثيرة للاهتمام في الواقع: الثماني الفردية: يمكنك أيضا تعيين البتات الفردية باستخدام بناء جملة يشبه الصفيف: في هذا المثال، أضبط البايتات المتبقية، باليد، بحيث تمثل الحروف المشفرة أوتف-8 و 1 حرفا. المزيد من المرح مع المخازن المؤقتة Buffer. isBuffer (كائن) يتحقق هذا الأسلوب لمعرفة ما إذا كان الكائن هو المخزن المؤقت، على غرار Array. isArray. Buffer. byteLength (سلسلة، ترميز) مع هذه الوظيفة، يمكنك التحقق من عدد وحدات البايت المطلوبة لترميز سلسلة مع ترميز معين (الذي افتراضيا إلى أوتف-8). هذا الطول ليس نفس طول السلسلة، لأن العديد من الأحرف تتطلب المزيد من وحدات البايت لتشفير. على سبيل المثال: ثلج يونيكود هو حرف واحد فقط، ولكن يأخذ 3 بايت كامل لترميز المخزن المؤقت. طول هذا هو طول المخزن المؤقت الخاص بك، ويمثل كم يتم تخصيص الذاكرة. أنها ليست هي نفسها حجم محتويات المخازن المؤقتة، منذ المخزن المؤقت قد تكون مليئة نصف. على سبيل المثال: في هذا المثال، محتويات مكتوبة إلى المخزن المؤقت تتكون فقط من ثلاث مجموعات (لأنها تمثل ثلج أحرف أحادية)، ولكن طول المخازن المؤقتة لا يزال 16، كما تم تهيئة. buffer. copy (الهدف، targetStart0، sourceStart0، sourceEndbuffer. length) المخزن المؤقت. النسخ يسمح واحد لنسخ محتويات المخزن مؤقت واحد على آخر. الوسيطة الأولى هي المخزن المؤقت الهدف الذي لنسخ محتويات المخزن المؤقت. وبقية الحجج تسمح بنسخ قسم فرعي فقط من المخزن المؤقت المصدر إلى مكان ما في منتصف المخزن المؤقت الهدف. على سبيل المثال: في هذا المثال، نسخت المخزن المؤقت ثلج، الذي يحتوي على 3 بايت حرف طويل، إلى المخزن المؤقت متجمد، الذي كنت قد كتبت إلى أول 16 بايت. لأن الطابع ثلج هو 3 بايت طويلة، والنتيجة يستغرق 19 بايت من المخزن المؤقت. buffer. slice (ستارت، endbuffer. length) هذه الأساليب أبي عموما نفس صفيف. النموذج المبدئي. شريحة. ولكن مع فارق استيراد واحد جدا: شريحة ليست عازلة جديدة ويشير مجرد مجموعة فرعية من مساحة الذاكرة. تعديل شريحة أيضا تعديل المخزن المؤقت الأصلي. على سبيل المثال: الآن تحولت فروستي إلى بركة من الشرطات السفلية. المشكله.

No comments:

Post a Comment