آرٽيڪل ڊاريڪٽري
ڇا توهان W3 ٽوٽل ڪيش مينيفائي لاءِ صحيح ايمبيڊنگ قسم چونڊڻ ۾ ڏکيائي محسوس ڪري رهيا آهيو؟ هي مضمون ويب ماسٽر جي حقيقي دنيا جي تجربي کي شيئر ڪري ٿو ۽ ويب سائيٽ جي انداز جي غلطين ۽ لوڊنگ جي ڪريشز کان بچڻ لاءِ صحيح مينيفائي ايمبيڊنگ قسم کي صحيح طور تي چونڊڻ لاءِ قدم بہ قدم گائيڊ فراهم ڪري ٿو. ان ۾ هڪ فول پروف سيٽ اپ حل پڻ شامل آهي جيڪو شروعاتي ماڻهو به آساني سان لاڳو ڪري سگهن ٿا.WordPress ٽڪرائجڻ کان سواءِ تيز ڪريو!
مان هڪ ويب سائيٽ کي بهتر بڻائي رهيو هوس ۽ جڏهن مون W3 ٽوٽل ڪيش ۾ Minify سيٽنگون کوليون، ته مان مڪمل طور تي حيران ٿي ويس. ايمبيڊڊ ٽائپ لاءِ ڊراپ ڊائون مينيو ۾ چار آپشن هئا: ڊفالٽ (بلاڪ)، نان بلاڪنگ لاءِ JS استعمال ڪريو، نان بلاڪنگ لاءِ "Asynchronous" استعمال ڪريو، ۽ نان بلاڪنگ لاءِ "Delayed" استعمال ڪريو.
مون هڪ لمحي لاءِ سوچيو، هي سڀ ڇا آهي؟
مون تي يقين ڪريو، توهان اڪيلا نه آهيو. اهي چار آپشن شايد هڪ نئين سکندڙ کي به حيران ڪري ڇڏيندا، ڪنهن کي ته ڇڏيو جيڪو سالن کان ورڈپریس استعمال ڪري رهيو آهي. هي آرٽيڪل انهن نقصانن کي پيش ڪري ٿو جن کي مون منهن ڏنو آهي ۽ اهي سبق جيڪي مون سڌو سنئون سکيا آهن. توهان کي دستاويزن سان صلاح ڪرڻ جي ضرورت ناهي؛ صرف منهنجي هدايتن تي عمل ڪريو.
اهي چار ايمبيڊنگ قسم اصل ۾ ڪهڙا آهن؟

اچو ته پهرين ڳالهايون ته اهي چار آپشن ڪهڙي قسم جا ڪردار آهن.
ڊفالٽ (بلاڪ ٿيل)ان کي ڊفالٽ بلاڪنگ چئبو آهي. اهو سڀ کان سڌو طريقو آهي: برائوزر جڏهن ڪنهن اسڪرپٽ سان ملندو آهي ته بند ٿي ويندو آهي، ان کي مڪمل طور تي ڊائون لوڊ ۽ عمل ڪندو آهي، ۽ پوءِ صفحي کي رينڊر ڪرڻ جاري رکندو آهي. قابل اعتماد لڳي ٿو، صحيح؟ پر واپار بند اهو آهي ته توهان جو شروعاتي صفحو لوڊ بلاڪ ڪيو ويندو؛ صارفين کي ڪجهه به ڏسڻ کان اڳ اسڪرپٽ جي هلڻ ختم ٿيڻ جو انتظار ڪرڻو پوندو.
غير بلاڪنگ لاءِ JS استعمال ڪرڻهي ڪافي دلچسپ آهي. صفحي تي سڌو سنئون `<script>` ٽيگ لکڻ جي بدران، اهو پهريان هڪ ننڍڙو اسڪرپٽ آئوٽ پُٽ ڪري ٿو، ۽ پوءِ متحرڪ طور تي انهن اسڪرپٽن کي انجيڪٽ ڪري ٿو جيڪي صفحي جي هلڻ کان پوءِ جاوا اسڪرپٽ ذريعي صفحي ۾ لوڊ ڪرڻ جي ضرورت آهي. هن طريقي سان، صفحو پهريان رينڊر ڪري سگهجي ٿو، ۽ اسڪرپٽ بتدريج لوڊ ٿي سگهن ٿا. سٺو لڳي ٿو، صحيح؟ بهرحال، مسئلو اهو آهي ته هي متحرڪ انجيڪشن عمل اسڪرپٽ جي اصل عملدرآمد جي ترتيب کي خراب ڪري سگهي ٿو. جيڪڏهن توهان جي صفحي تي ڪجهه اسڪرپٽ عملدرآمد جي ترتيب تي تمام گهڻو ڀروسو ڪن ٿا، ته مسئلا پيدا ٿي سگهن ٿا.
غير بلاڪنگ لاءِ "غير هم وقت ساز" استعمال ڪريوان ۾ `<script>` ٽيگ ۾ ``async` خاصيت شامل ڪرڻ شامل آهي. اسڪرپٽ پس منظر ۾ غير هم وقت سازي سان ڊائون لوڊ ٿيندي ۽ ڊائون لوڊ ڪرڻ کان پوءِ فوري طور تي عمل ۾ ايندي، بغير صفحي جي انتظار جي. بهرحال، نقصان اهو آهي ته عملدرآمد جو حڪم مڪمل طور تي بي قابو آهي؛ جيڪو به اسڪرپٽ پهريان ڊائون لوڊ ڪرڻ ختم ڪري ٿو اهو پهريان عمل ۾ اچي ٿو، قطع نظر ته توهان ڪوڊ ۾ ڪهڙو آرڊر بيان ڪيو آهي.
غير بلاڪنگ لاءِ "دير" استعمال ڪنديهي اهو آهي جيڪو 'ڊيفر' خاصيت کي شامل ڪرڻ جو مطلب آهي. اسڪرپٽ انتظار ڪندي جيستائين پوري صفحي کي عمل ڪرڻ کان اڳ پارس نه ڪيو وڃي، ۽ اهم طور تي، اهو اصل ترتيب برقرار رکندو جيڪو توهان ان کي لکيو هو. هي ڪافي استعمال ڪندڙ دوستانه آهي، ڇاڪاڻ ته اهو نه ته پهرين اسڪرين کي بلاڪ ڪري ٿو ۽ نه ئي آرڊر کي خراب ڪري ٿو.
مون کي ڪهڙو چونڊڻ گهرجي؟
سادي لفظن ۾، اهي چار آپشن هڪ گھڻ-چونڊي سوال وانگر آهن:توهان کي رفتار گهرجي يا آرڊر؟
منهنجي تجويز هن ريت آهي:
جيڪڏهن توهان جي ويب سائيٽ ننڍي آهي، ان ۾ ڪجهه اسڪرپٽ آهن، ۽ توهان کي لوڊ ڪرڻ جي رفتار لاءِ تمام گهڻيون گهرجون نه آهن، ته پوءِ ڊفالٽ (بلاڪ ٿيل) سيٽنگ استعمال ڪرڻ سڀ کان آسان آپشن آهي. جيتوڻيڪ اهو ٿورو سست آهي، پر ان سان ڪو به مسئلو نه ٿيندو.
جيڪڏهن توهان پهرين اسڪرين جي رفتار کي بهتر بڻائڻ چاهيو ٿا ۽ توهان جي اسڪرپٽ ۾ مضبوط انحصار نه آهي جهڙوڪ "A کي B کان اڳ عمل ڪرڻ گهرجي"، ترجيح ڏيو...غير بلاڪنگ لاءِ "دير" استعمال ڪندي(ملتوي). هي هن وقت تقريبن سڀ کان وڌيڪ مثالي حل آهي، ڇاڪاڻ ته اهو نه ته رينڊرنگ کي روڪي ٿو ۽ نه ئي آرڊر ۾ خلل وجهي ٿو.
جيڪڏهن توهان ڊيفر ڪرڻ جي ڪوشش ڪئي ۽ اڃا تائين ڏسندا ته ڪجهه ڪمن ۾ مسئلا آهن، ته پوءِ غور ڪريو...غير بلاڪنگ لاءِ JS استعمال ڪرڻهي حل وڌيڪ بنيادي آهي، پر ان جي مطابقت ٿوري خراب آهي.
غير بلاڪنگ لاءِ "غير هم وقت ساز" استعمال ڪريو(async) اهو آپشن آهي جيڪو مان گهٽ ۾ گهٽ سفارش ڪريان ٿو. ڇاڪاڻ ته عملدرآمد جو حڪم مڪمل طور تي خراب آهي، ان کي ڪريش ڪرڻ آسان آهي جيستائين توهان کي مڪمل طور تي پڪ نه هجي ته توهان جا سڀئي اسڪرپٽ آزاديءَ سان هلي رهيا آهن.
ٻہ وڏا ڦڙا جن ۾ مان پئجي ويس
ڳالهائڻ سستو آهي. مون ٻہ غلطيون لکيون آهن جيڪي مون ڪيون آهن؛ توهان انهن کي پنهنجي تجربي سان جانچي سگهو ٿا ته ڏسو ته ڇا توهان انهن کان بچي سگهو ٿا.
پهريون نقصان: ڪسٽم ورڈپریس ٿيمز کي حقيقي وقت ۾ ڏسي نه ٿو سگهجي.
ڪجهه وقت لاءِ، جڏهن ڪنهن ٿيم کي ڪسٽمائيز ڪيو ويندو هو، ته پوءِ محفوظ ڪريو تي ڪلڪ ڪرڻ کان پوءِ، پريويو ريفريش نه ٿيندو هو. مان ڪجهه تبديليون ڪندس، صفحي کي ريفريش ڪندس، ۽ اهو اڃا تائين ساڳيو رهندو.
ڪجهه جاچ کان پوءِ، مون کي خبر پئي ته Minify جو ڪمپريشن فنڪشن مجرم هو. حل سادو آهي:
W3 ٽوٽل ڪيش پلگ ان تائين رسائي حاصل ڪريوعام سيٽنگون،وڌايو"دٻاءُ"ان آپشن کي چيڪ نه ڪريو. پوءِ مٿي ساڄي ڪنڊ ۾ "سيو سيٽنگون" هيٺان ننڍڙي تير تي ڪلڪ ڪريو ۽ "..." چونڊيو.سيٽنگون محفوظ ڪريو ۽ ڪيش صاف ڪريوهي قدم اهم آهي؛ جيڪڏهن توهان ڪيش صاف نه ڪيو، ته توهان اڃا تائين پراڻو ورجن ڏسندا.
جڏهن توهان مڪمل ڪري وٺو، ته پوءِ ٿيم ڪسٽمائيزيشن ڏانهن واپس وڃو، ۽ لائيو پريويو معمول تي واپس اچي ويندو.
ٻيو مسئلو: ايسٽرا ٿيم سرچ باڪس ڪلڪ ڪرڻ تي جواب نٿو ڏئي.
مون کي ڪافي وقت اڳ هي مسئلو پيش آيو هو. مان ايسٽرا ٿيم استعمال ڪري رهيو هوس، ۽ هڪ ڏينهن اوچتو مون ڏٺو ته سرچ باڪس جواب نه ڏئي رهيو هو، جيتوڻيڪ مان ان تي ڪيترو به ڪلڪ ڪريان. پهرين ته، مون سوچيو ته اهو ٿيم سان ئي مسئلو آهي، پر بعد ۾ مون کي خبر پئي ته اهو W3TC جي Minify سيٽنگن جي ڪري ٿيو آهي.
حل هن ريت آهي:
W3 ٽوٽل ڪيش → جنرل سيٽنگون → ايڊوانسڊ ڪمپريشن سيٽنگون → JS → مينيفائي انجن سيٽنگون → لوڪل سيٽنگون ڏانهن وڃو، ۽ ايمبيڊنگ جي قسم کي انهن ٻن مان هڪ ۾ تبديل ڪريو:
- اڳي، جاوا اسڪرپٽ استعمال ڪندي نان بلاڪنگ حاصل ڪئي ويندي هئي.
- ان کان پوءِ، غير بلاڪنگ لاءِ JS استعمال ڪريو
ساڳئي طرح، ڪيش صاف ڪرڻ ۽ صفحي کي ريفريش ڪرڻ سان سرچ باڪس صحيح طريقي سان ڪم ڪندو.
جيئن ته انهن ٻن اختيارن کي ٻين جي بدران ڇو چونڊيو ويو، مون ڪجهه تحقيق ڪئي آهي. آسان لفظن ۾، ايسٽرا ٿيم جا فرنٽ اينڊ جزا اسڪرپٽ ايگزيڪيوشن جي وقت لاءِ ڪافي حساس آهن، ۽ ڪجهه نان بلاڪنگ طريقا ايونٽ بائنڊنگ کي ناڪام بڻائي سگهن ٿا. "نان بلاڪنگ وِد جي ايس" موڊ استعمال ڪرڻ يقيني بڻائي ٿو ته اسڪرپٽ صرف صفحي جي لوڊ ٿيڻ کان پوءِ عمل ڪري ٿي، جڏهن ته ايس سنڪ سان نظر ايندڙ بي ترتيب عملدرآمد کان پاسو ڪري ٿي.
گهمڻ لاءِ جڳهن جي فهرست
آخرڪار، هتي هڪ چيڪ لسٽ آهي جنهن تي توهان سڌو سنئون عمل ڪري سگهو ٿا:
پهريون قدم توهان جي مقصد کي واضح ڪرڻ آهي. ڇا توهان تيز ترين شروعاتي صفحي لوڊ چاهيو ٿا، يا توهان استحڪام ۽ غلطي کان پاڪ آپريشن کي ترجيح ڏيو ٿا؟ اهو طئي ڪندو ته توهان کي ڪهڙي قسم جي ايمبيڊنگ استعمال ڪرڻ گهرجي.
ٻيو قدم اهو ناهي ته سڀ ڪجهه هڪ ئي وقت تبديل ڪيو وڃي. پهرين، هڪ گهٽ اهم صفحو ڳوليو ان کي جانچڻ لاءِ، ان کي هڪ يا ٻن ڏينهن لاءِ مشاهدو ڪريو، ۽ ان کي صرف پوري سائيٽ تي فروغ ڏيو جيڪڏهن توهان کي پڪ آهي ته ڪو مسئلو ناهي.
ٽيون، هر ترميم کان پوءِ هميشه ڪيش صاف ڪريو. W3TC جو ڪيشنگ ميڪانيزم توهان کي تازيون تبديليون ڏسڻ کان روڪيندو، تنهن ڪري "ڪيش صاف ڪريو ۽ ٻيهر ٽيسٽ ڪريو" قدم بلڪل ضروري آهي.
چوٿون، پنهنجي برائوزر جي ڊولپر ٽولز يا پيج اسپيڊ انسائيٽس جهڙن اوزارن کي استعمال ڪريو لوڊنگ جي رفتار کان اڳ ۽ پوءِ جو مقابلو ڪرڻ لاءِ. ڊيٽا کي پاڻ لاءِ ڳالهائڻ ڏيو، صرف توهان جي آنڊن جي احساس کي نه.
آخر ۾ لکو
سچ پڇو ته، جڏهن مون پهريون ڀيرو هي ايمبيڊڊ ٽائيپ سيٽنگ ڏٺي، ته مان گهڻي وقت تائين دنگ رهجي ويس. ڊفالٽ بلاڪنگ موڊ تمام سست لڳي رهيو هو، جڏهن ته غير مطابقت وارو موڊ آرڊر جي ضمانت نه ڏيندو هو، ۽ ملتوي ڪرڻ سان مطابقت جا مسئلا پيدا ٿي سگهن ٿا. مون کي پڪ نه هئي ته ڪهڙو آپشن چونڊيو وڃي.
پر مون کي بعد ۾ احساس ٿيو ته اهو هڪ واپار آهي. توهان وٽ تيز ترين ۽ مستحڪم ٻئي نه ٿي سگهن؛ توهان کي هميشه هڪ قربان ڪرڻو پوندو. منهنجو تجربو اهو آهي ته پهريان ڊيفر استعمال ڪيو وڃي، جيڪو هن وقت محفوظ ترين غير بلاڪنگ حل آهي، ۽ پوءِ جيڪڏهن مسئلا پيدا ٿين ٿا ته ڪال بيڪ استعمال ڪيو وڃي.
جيڪڏهن توهان کي ساڳين مسئلن جو منهن ڏسڻو پوي ٿو، يا منهنجي طريقي تي عمل ڪرڻ کان پوءِ به توهان کي ٻيا مسئلا درپيش آهن، ته ان تي بحث ڪرڻ لاءِ آزاد محسوس ڪريو. ويب سائيٽ ڊولپمينٽ سڀ آزمائش ۽ غلطي بابت آهي؛ ڪو به استثنا نه آهي.
منهنجو مضمون پڙهڻ لاءِ مهرباني. ايندڙ ڀيري ملنداسين.
اميد چن ويلانگ بلاگ ( https://www.chenweiliang.com/ مضمون "W3 ٽوٽل ڪيش منيفائي پلگ ان سيٽنگون: ايمبيڊنگ ٽائپ ڪيئن چونڊيو؟ منهنجا نقصان ۽ زندگي بچائڻ جا طريقا،" جيڪو مون شيئر ڪيو آهي، توهان لاءِ مددگار ثابت ٿي سگهي ٿو.
هن آرٽيڪل جي لنڪ کي حصيداري ڪرڻ لاء ڀليڪار:https://www.chenweiliang.com/cwl-34003.html
