سپر تیزی سے جاوا اسکرپٹ کے لئے 21 اقدامات

Sep 11, 2025
کيسے
Speed up JavaScript
(تصویری کریڈٹ: Pexels.com)

پہلی نظر میں، متوازی پروسیسنگ آواز مفت دوپہر کے کھانے کے دعوت نامے کی طرح - کثیر کور CPU استعمال کرنے کے قابل ہونے کے قابل ہونے سے زیادہ مؤثر طریقے سے آپ کے کوڈ کو زبردست رفتار فروغ دینا چاہئے. عملی تجربے سے پتہ چلتا ہے کہ یہ ہمیشہ کیس نہیں ہے: متوازی کرنے کے لئے کچھ مسائل ناممکن ہیں. اس کے علاوہ، متوازی عملدرآمد نئے مسائل کے پورے خاندان کو لے جاتا ہے جو واحد کور مشینوں پر نہیں دیکھا جاتا ہے.

متوازی کوڈ، اصول میں، کام کے دو گروپوں میں ٹوٹ ڈال سکتا ہے. پہلا گروپ کلاسک رفتار میں اضافہ ہے - اگر آپ کا پروگرام 3000 تصاویر سے گزرنا پڑتا ہے، تو اس کا مطلب یہ ہے کہ کسی بھی وقت زیادہ تصاویر پر عملدرآمد کی جا سکتی ہے. یقینی طور پر فائدہ مند، اس قسم کا کام ہر روز ویب ترقی میں کم از کم کا سامنا ہے. (اگر آپ ایک تصویری بھاری سائٹ بنا رہے ہیں، تو اس بات کو یقینی بنائیں کہ آپ ان کو مہذب کے ساتھ واپس آتے ہیں کلاؤڈ اسٹوریج ).

متوازی نوکری کا زیادہ عام شکل طویل عرصے سے چلنے والے کاموں کے ارد گرد کام کرتا ہے جس میں زیادہ سی پی یو وقت کی ضرورت نہیں ہے. اس کے لئے ایک اچھی مثال ایک ڈاؤن لوڈ یا کسی قسم کے آلے کے ان پٹ کے لئے انتظار کر رہے ہیں: اگر یہ ایک متوازی فیشن میں کیا جاتا ہے، باقی GUI کو بلاک کرنے کی ضرورت نہیں ہے. اس بات کو سمجھا جاتا ہے کہ صارفین کو سمجھنے کے لۓ 'بٹن پر کلک نہیں کیا جاتا ہے'، یہ صارف کی اطمینان میں اضافہ کر سکتا ہے یہاں تک کہ اگر اصل رفتار میں اضافہ نہیں ہوتا ہے.

اگر آپ کو آپ کو کوڈ ہوشیار بنانے میں مدد کرنے کے لئے کچھ نئے وسائل کی ضرورت ہوتی ہے تو، ہمارے گائیڈ کو بہترین کرنے کے لئے چیک کریں ویب ڈیزائن کے اوزار 2019 کی. اگر آپ کو مکمل طور پر کوڈ سے بچنے کے لئے چاہتے ہیں تو، اپنی سائٹ کو بہترین کے ساتھ ڈیزائن کریں ویب سائٹ بلڈر ، اور اس بات کو یقینی بنائیں کہ آپ نے بہترین انتخاب کیا ہے ویب میزبانی ہمارے گائیڈ کے ساتھ سروس.

01. انٹرویو پر عملدرآمد

 var نیند = کی ضرورت ہے ('نیند')؛

فنکشن کارکن () {
    کنسول .log ("کارکن اپ")
    نیند .میں (1000)
    کنسول. لوگ ("کارکن نیچے")
}

SEATINTERVAL (کارکن، 2000)؛
جبکہ (1 == 1)
{
    نیند .میں (250)
    کنسول .log ("ہیلو سے ہیلو")
} & gt؛ 

ہمیں ایک اچھی طرح سے پسندیدہ پسندیدہ کی بنیاد پر ایک چھوٹی سی مثال کے ساتھ شروع کرنے دو سیٹنٹور فنکشن یہ ملیسیکنڈ میں ایک فنکشن حوالہ اور ایک عددی قدر لیتا ہے. اس کے بعد، جب بھی تاخیر ٹائمر ختم ہوجاتا ہے تو اس تقریب کو وقفے سے نکال دیا جاتا ہے.

02. موسم خزاں کے لئے قائم

 این پی ایم نیند انسٹال
npm مثال 1 .js 

کا استعمال کرتے ہوئے نیند () فنکشن ہمیں مقامی این پی ایم پروجیکٹ میں نیند ماڈیول لوڈ کرنے کی ضرورت ہے. یہ آپریٹنگ سسٹم کی نیند لائبریری میں ایک انٹرفیس کے طور پر کام کرتا ہے - حیرت نہیں کہ اگر آپ کے ورکسشن کا کمپائلر پیکج کی تعیناتی کے دوران نکالا جاتا ہے.

03. ملٹی ماسک کے خطرات

Speed up JavaScript: 03

(تصویری کریڈٹ: ٹام ہنا)

اس پروگرام کو چلاتے وقت، آپ اپنے آپ کو اس مرحلے کے ساتھ اعداد و شمار میں دکھایا گیا ہے اسی طرح کی پیداوار کے ساتھ سامنا کرنا پڑے گا. یہ واضح ہے کہ ہمارے کارکن نے کبھی بھی مدعو نہیں کیا ہے - کچھ سیٹٹورٹل فنکشن کے ساتھ غلط ہونا ضروری ہے.

04. ملٹی ماسک کے خطرے، حصہ 2

جدید براؤزر ایک جاوا اسکرپٹ دھاگے کے ساتھ ہر ٹیب کو لیس کرتے ہیں. ہمارے لوپ پر ایک محتاط نظر سے پتہ چلتا ہے کہ یہ لامتناہی ہے. اس کا مطلب یہ ہے کہ یہ ہمیشہ کے لئے چل جائے گا، اور کبھی کنٹرول نہیں کرے گا. اس کو لے کر SEATINTERVAL () ایک پیغام کے ساتھ کام کرتا ہے، اس کے پے لوڈ کبھی نہیں چلتی ہے کیونکہ پیغام ہینڈلر چلانے سے روک دیا گیا ہے.

05. پریشانیوں پر توجہ مرکوز

 کان بار = () = & gt؛ کنسول .log ('بار')

Const Baz = () = & gt؛ کنسول .log ('بز')

const foo = () = & gt؛ {
  کنسول .log ('foo')
  Settimeout (بار، 0)
  باز ()
}

foo ()

فلوییو کاپی 'بلاگ ، مسئلہ کی وضاحت کرنے والے کوڈ کا ایک انتہائی دلچسپ تھوڑا سا فراہم کرتا ہے. جب چلاتے ہیں، تو اس اعداد و شمار میں دکھایا گیا پیداوار میں دکھایا گیا پیداوار تک جب تک پیغام کی قطار تک بند ہوجائے گی foo () مرکزی دھاگے کے کنٹرول کو کنٹرول کرتا ہے.

06. تھریڈنگ متعارف کرایا

Speed up JavaScript: 06

(تصویری کریڈٹ: ٹام ہنا)

یہ سمجھا جاتا ہے کہ بنیادی آپریٹنگ سسٹم منفی کثیر مقصود انجام دینے میں کامیاب ہے، ہمیں اس کی صلاحیتوں کو ایک وقفے API کے ذریعہ ویب ورکرز کے ذریعہ سپلائی کے سلسلے کی طرف سے استعمال کرتے ہیں جو وسیع پیمانے پر سپورٹ سے لطف اندوز ہوتے ہیں. اس مرحلے کے ساتھ اعداد و شمار سے پتہ چلتا ہے موجودہ لسٹنگ خصوصیت کے لئے.

07. اضافی فائل بنائیں

کنسول .log ("کارکن کا کہنا ہے کہ ہیلو!")؛
کنسول .log ("کارکن اپ")؛
جبکہ (1 == 1)
{
   کنسول .log ("X")؛
}

ویب ورکرز ایک فنکشن پے لوڈ کے ساتھ نہیں لات مار سکتے ہیں. اس کے بجائے، ایک نئی فائل کی ضرورت ہے جس میں اس کوڈ پر مشتمل ہے جس کا مقصد دھاگے میں چلانے کا ارادہ رکھتا ہے. ہمارے مثال کے طور پر، مثال کے طور پر 7thrad.js. اس مرحلے کے ساتھ دکھایا گیا مواد ہے.

08. کارکن چلائیں ...

 COST کارکن = کی ضرورت ہے ('worker_thrads')؛

var myworker = نیا کارکن. ورکر ('./
مثال کے طور پر 7thrad.js ')؛
var myworker2 = نیا ورکر. ورکر ('./
EXAME7HREAD.JS ')؛ 

ہمارے کارکن وزیراعظم کے لئے تیار ہے. NODE.JS رن ٹائم فورسز کی خصوصیات ہمیں کارکن موضوعات ماڈیول شامل کرنے اور ایک رشتہ دار راستے میں منتقل کرنے کے لئے - براؤزر میں کوئی مسئلہ نہیں ہے. اس کے علاوہ، اس کے بارے میں تعجب نہ کرو لاپتہ آغاز () کال - مثال کے طور پر آن لائن آتا ہے جب ایک ویب کارکن سیٹ کرتا ہے.

09. ... اور اس کے نتائج کو سمجھنے

Speed up JavaScript: 09

(تصویری کریڈٹ: ٹام ہنا)

پیغام کی ترسیل عام طور پر رن ​​ٹائم اور باقی آپریٹنگ سسٹم کے درمیان کچھ قسم کی بات چیت کی ضرورت ہوتی ہے. افسوس سے، ہمارے لامتناہی لوپ اس عمل کو روکتا ہے - جس کا مطلب یہ ہے کہ پیغامات میں سے صرف ایک 'بڑا اسٹال' سے پہلے پاپتا ہے.

10. ماسک شامل کریں

Speed up JavaScript: 10

(تصویری کریڈٹ: ٹام ہنا)
 COST کارکن = کی ضرورت ہے ('worker_thrads')؛

var myworker = نیا کارکن. ورکر ('./
مثال کے طور پر 7thrad.js ')؛
var myworker2 = نیا ورکر. ورکر ('./
مثال کے طور پر 7thrad.js ')؛


جبکہ (1 == 1)
{

}

ایک اور تجربہ میں دو تعمیراتی انوائسز کے بعد خالی لوپ رکھنے میں شامل ہے. اس صورت میں، موضوعات کبھی کام شروع نہیں کریں گے - انضمام کا پیغام آپریٹنگ سسٹم کے ساتھ کبھی نہیں آتا.

11. انٹرپرائز مواصلات

جبکہ کارکنوں کو سخت لامتناہی loops چل رہا ہے جبکہ مندرجہ بالا مسائل کی نمائش ہوتی ہے، معمولات ایک دوسرے کے ساتھ بات چیت کرسکتے ہیں. یہ ایک پیغام گزرنے والے انٹرفیس کے ذریعہ کیا جاتا ہے - اس کی سہولت کے طور پر اس کے بارے میں سوچتے ہیں کہ آپ کو ایک پیغام کی اشیاء کو ایک مرسل سے دھاگے کی حدود میں ایک وصول کنندہ میں منتقل کرنے کی اجازت دیتا ہے.

12. کیوں پیغام پاس؟

موضوعات ای ایف ایف کو سنبھالنے کے قابل ہونے کے فوائد کے علاوہ (اور 'ٹرانزیشن' کے خطرے کو کم کرنے کے لئے، اور دوڑ کے حالات کے طور پر بھی جانا جاتا ہے)، مرکزی دھاگے کو گزرنے والے پیغام کو ڈوم کے ساتھ بات چیت کرنے کا ایک واحد طریقہ ہے، کی تخلیق کے ڈی ایف ایف کی ترتیبات کی وجہ سے موضوع محفوظ GUI اسٹیک.

13. براؤزر میں منتقل

node.js میں گزرنے والے پیغام کو محتاط ہے. کوڈ کو ویب پر منتقل کریں - ایک ایچ ٹی ایم ایل کا استعمال کرتے ہوئے شروع کریں جو بوجھ امتحان . آگاہ رہو کہ یہ کوڈ ڈوم اصل پابندیوں کی وجہ سے صرف مقامی ہسٹسٹ ویب سرور سے چل سکتا ہے.

14. میل باکس قائم کریں ...

 var myworker = نیا کارکن ('./
ExplyMithread.js ')؛
var myworker2 = نیا کارکن ('./
ExplyMithread.js ')؛


myworker.onmessage = تقریب (ای)
{
کنسول .log (ای)؛
}

myworker2.onmessage = تقریب (ای)
{
کنسول .log (ای)؛
}

ہر کارکن ایک پراپرٹی کی جائیداد کو بے نقاب کرتا ہے جس میں ایک فنکشن کا حوالہ ملتا ہے جو کسی بھی پیغام کو دوسرے اختتام سے پاپتا ہے. آنے والے پیغامات صرف مرکزی دھاگے سے براؤزر کے کنسول کو آگے بڑھا رہے ہیں.

15. ... اور اسے کارکن سے کھانا کھلانا

 PostMessage ("کارکن کا کہنا ہے کہ ہیلو!")؛
PostMessage ("کارکن اپ")؛
جبکہ (1 == 1)
{
   PostMessage ("X")؛
}

میل باکس میں پیغامات بھیجنے کے بعد پوسٹ پیغام کی تقریب کو مدعو کرکے پورا کیا جاتا ہے. ذہن میں رکھو کہ ایک کارکن بھی لاگو کرسکتا ہے OnMessage. واقعہ، جو کارکن مثال کے طور پر اعتراض کرتا ہے اس سے معلومات حاصل کرسکتا ہے.

16. اسے بند کرو ...

اس وقت اس وقت، کوڈ چلانے کے لئے تیار ہے. ڈیپارٹمنٹ کنسول MPI انٹرفیس کے اعلی ای ایف ایف کی شبیہیں کی وجہ سے پیغامات کے ساتھ سیلاب نہیں ہے، مطلب یہ ہے کہ اعداد و شمار نظام کے ارد گرد سفر اور ایف ایف کے ارد گرد سفر کر سکتے ہیں.

17. عینک اور انتظار

Speed up JavaScript: 17

(تصویری کریڈٹ: ٹام ہنا)

مائیکروسافٹ کے ASYNC اور منتظر مطلوبہ الفاظ نے C # اور BisionBasic.net کی تاریخ میں ترمیم کی. اصول میں، ایک طریقہ نشان لگایا گیا ہے ASYNC باقی پروگرام کے ساتھ تعاون سے چلتا ہے. پھر انتظار کی تقریب کے ذریعے نتائج حاصل کر سکتے ہیں.

18. ہماری نیند کو تبدیل کریں

 کان نیند = (ملیسیکنڈ) = & gt؛ {
  نیا وعدہ واپس لو (حل = & gt؛
Settemout (حل، ملیسیکنڈ))
} 

جب یہ مقامی افعال تک رسائی حاصل کرنے کے لئے آتا ہے تو براؤزر سخت حدود کے تحت ہیں، ہم اس سے پہلے ذکر نیند کی تقریب کو دوبارہ استعمال نہیں کرسکتے ہیں. اس کے علاوہ، اس میں suboptimal ہے کہ اس نے پورے node.js رن ٹائم کو روک دیا. اس قدم کے ساتھ اسپیپیٹ زیادہ مؤثر نقطہ نظر فراہم کرتا ہے.

19. کوڈ کو سمجھنا ...

یہ کوڈ ایک وعدہ آبجیکٹ واپس کرتا ہے - یہ ایک اور سہولت کلاس ہے جس میں جاوا اسکرپٹ میں شامل ہونے کی کوشش میں شامل ہے. آپ کو اس کے ذریعہ اپنے حل کے طریقہ کار کو مدعو کرنے کی ضرورت ہوگی Settemout. ، اس بات کو یقینی بنانا کہ کوڈ کو تھوڑا سا وقت لگتا ہے.

20. ... اور اسے کہیں بھی تعین کریں

انتظار کی منتظر صرف ASYNC افعال کے اندر اندر اجازت دی جاتی ہے. اس کا مطلب یہ ہے کہ کارکن کو دوبارہ لکھنا کی ضرورت ہے - ایک ایسوسی ایشن بیئرر کی تقریب کو مدعو کرکے شروع کریں. یہ باقی کوڈ کی بات چیت کو ہینڈل کرتا ہے.

 کان نیند = (ملیسیکنڈ) = & gt؛ {
  نیا وعدہ واپس لو (حل = & gt؛
Settemout (حل، ملیسیکنڈ))
}
PostMessage ("کارکن کا کہنا ہے کہ ہیلو!")؛
PostMessage ("کارکن اپ")؛
کارکن ()
ASYNC فنکشن کارکن () {
جبکہ (1 == 1)
{
   PostMessage ("X")؛
   نیند کا انتظار کرو (1000)؛
}
} 

21. مقامی کی طاقت کا استعمال کریں!

Node.js کوڈ پر کام کرنے والے ڈویلپرز کو یہ نہیں بھولنا چاہئے کہ وہ عام طور پر - مکمل طور پر اصل ماڈیولز تخلیق کریں اگر انتہائی اعلی کارکردگی کی ضرورت ہو. یہ نہ صرف مختلف آپریٹنگ سسٹم APIs کا فائدہ اٹھا سکتے ہیں، لیکن یہ بھی پروگرامنگ زبانوں میں لکھا جا سکتا ہے جو مشین کوڈ پر مطابقت رکھتا ہے.

یہ مضمون اصل میں تخلیقی ویب ڈیزائن میگزین کے مسئلہ 291 میں شائع کیا گیا تھا ویب ڈیزائنر . مسئلہ 291 خریدیں .

مزید پڑھ:

  • بہترین جاوا اسکرپٹ لائبریریوں
  • سب سے بہترین جاوا اسکرپٹ API.
  • واقعی مفید ویب ڈیزائن سبق

کيسے - انتہائی مشہور مضامین

فوٹوشاپ میں کہانی بورڈ کس طرح

کيسے Sep 11, 2025

(تصویری کریڈٹ: مارک ایون لیم) فوٹوشاپ میں کہانی بورڈنگ آپ کے خیال�..


artrage 6 سے زیادہ حاصل کریں: آپ کے کام کے بہاؤ کو فروغ دینے کے لئے اوپر کی تجاویز

کيسے Sep 11, 2025

(تصویری کریڈٹ: اسٹیو گولڈ) اس آرٹیکل میں میں آرچرج پر مشورہ اور بص..


جامسٹیک: آج تیزی سے، زیادہ موثر ویب سائٹس کی تعمیر

کيسے Sep 11, 2025

(تصویری کریڈٹ: مستقبل / جوزف فورڈ) جمسٹیک سرور کی طرف سے ضروری کم س..


ایک سپر حقیقت پسندانہ فنتاسی مخلوق کیسے بنائیں

کيسے Sep 11, 2025

ایک فنتاسی مخلوق کی پینٹنگ بہت مزہ ہوسکتی ہے. میری رائے میں، آپ کسی بھی �..


MARMOSET ٹول بیک استعمال کریں VR میں ماڈلز پیش کرنے کے لئے

کيسے Sep 11, 2025

Marmoset ٹول بگ ایک نیا مطلب نہیں ہے 3D آرٹ صنعت. یہ سال کے لئے باہر ہ�..


Monotype پرنٹنگ کے ساتھ شروع کریں

کيسے Sep 11, 2025

کبھی کبھی آپ کو آپ کے ساتھ چیزیں ہلانے کی ضرورت ہے پنسل ڈرائنگ ،..


PixiJs کے ساتھ ریپ اثرات بنائیں

کيسے Sep 11, 2025

بہت سے دلچسپ اثرات ہیں جو مصروفیت کو بڑھانے کے لئے صفحے میں شامل کیا جا �..


Chatbot تجربہ کس طرح ڈیزائن کرنے کے لئے

کيسے Sep 11, 2025

چاہے ہم اسے تسلیم کرنا چاہتے ہیں یا نہیں، پیغام رسانی بات چیت کے پلیٹ فا..


اقسام