آرٹیکل ڈائرکٹری
W3 Total Cache Minify کے لیے صحیح ایمبیڈنگ قسم کا انتخاب کرنے کے لیے جدوجہد کر رہے ہیں؟ یہ مضمون ویب ماسٹر کے حقیقی دنیا کے تجربے کا اشتراک کرتا ہے اور درست Minify ایمبیڈنگ کی قسم کو درست طریقے سے منتخب کرنے کے لیے ایک مرحلہ وار گائیڈ فراہم کرتا ہے۔ اس میں ایک فول پروف سیٹ اپ حل بھی شامل ہے جسے ابتدائی افراد بھی آسانی سے لاگو کر سکتے ہیں۔WordPress کریش ہوئے بغیر تیز کریں!
میں ایک ویب سائٹ کو بہتر بنا رہا تھا اور جب میں نے W3 ٹوٹل کیش میں Minify کی سیٹنگیں کھولیں تو میں پوری طرح حیران رہ گیا۔ ایمبیڈڈ قسم کے ڈراپ ڈاؤن مینو میں چار آپشنز تھے: ڈیفالٹ (بلاک)، نان بلاکنگ کے لیے جے ایس کا استعمال کریں، نان بلاکنگ کے لیے "ایسینکرونس" استعمال کریں، اور نان بلاکنگ کے لیے "دیری شدہ" کا استعمال کریں۔
میں نے ایک لمحے کے لیے سوچا کہ یہ سب کیا ہے؟
مجھ پر بھروسہ کریں، آپ اکیلے نہیں ہیں۔ یہ چار اختیارات ممکنہ طور پر ایک نوآموز کو بھی حیران کر دیں گے، کسی ایسے شخص کو چھوڑ دیں جو برسوں سے ورڈپریس استعمال کر رہا ہو۔ یہ مضمون ان خرابیوں کو پیش کرتا ہے جن کا میں نے سامنا کیا ہے اور جو سبق میں نے براہ راست سیکھے ہیں۔ آپ کو دستاویزات سے مشورہ کرنے کی ضرورت نہیں ہے۔ بس میری ہدایات پر عمل کریں۔
یہ چار سرایت کرنے والی اقسام بالکل کیا ہیں؟

آئیے پہلے بات کرتے ہیں کہ یہ چار آپشنز کس قسم کے کردار ہیں۔
ڈیفالٹ (مسدود)اسے ڈیفالٹ بلاکنگ کہا جاتا ہے۔ یہ سب سے سیدھا طریقہ ہے: جب براؤزر اسکرپٹ کا سامنا کرتا ہے تو وہ رک جاتا ہے، اسے مکمل طور پر ڈاؤن لوڈ اور اس پر عمل کرتا ہے، اور پھر صفحہ کو پیش کرنا جاری رکھتا ہے۔ قابل اعتماد لگتا ہے، ٹھیک ہے؟ لیکن ٹریڈ آف یہ ہے کہ آپ کا ابتدائی صفحہ لوڈ بلاک کر دیا جائے گا۔ صارفین کو کچھ بھی دیکھنے سے پہلے اسکرپٹ کے چلنے کا انتظار کرنا پڑے گا۔
نان بلاکنگ کے لیے جے ایس کا استعمالیہ کافی دلچسپ ہے۔ صفحہ پر براہ راست `<script>` ٹیگز لکھنے کے بجائے، یہ پہلے ایک چھوٹی اسکرپٹ کو آؤٹ پٹ کرتا ہے، اور پھر متحرک طور پر ان اسکرپٹس کو انجیکٹ کرتا ہے جنہیں صفحہ چلنے کے بعد JavaScript کے ذریعے صفحہ میں لوڈ کرنے کی ضرورت ہوتی ہے۔ اس طرح، صفحہ کو پہلے پیش کیا جا سکتا ہے، اور اسکرپٹ آہستہ آہستہ لوڈ ہو سکتے ہیں۔ بہت اچھا لگتا ہے، ٹھیک ہے؟ تاہم، مسئلہ یہ ہے کہ انجیکشن کا یہ متحرک عمل اسکرپٹس کے اصل عمل درآمد میں خلل ڈال سکتا ہے۔ اگر آپ کے صفحہ پر کچھ اسکرپٹس پر عمل درآمد کے حکم پر بہت زیادہ انحصار کرتے ہیں، تو مسائل پیدا ہو سکتے ہیں۔
غیر مسدود کرنے کے لیے "اسینکرونس" کا استعمال کریں۔اس میں `<script>` ٹیگ میں `async` وصف شامل کرنا شامل ہے۔ اسکرپٹ پس منظر میں متضاد طور پر ڈاؤن لوڈ ہو جائے گا اور صفحہ کو انتظار کیے بغیر، ڈاؤن لوڈ کرنے کے فوراً بعد اس پر عمل درآمد ہو گا۔ تاہم، منفی پہلو یہ ہے کہ پھانسی کا حکم مکمل طور پر بے قابو ہے۔ جو بھی اسکرپٹ ڈاؤن لوڈ کرنا ختم کرتا ہے پہلے اس پر عمل درآمد ہوتا ہے، قطع نظر اس کے کہ آپ نے کوڈ میں جس ترتیب کی وضاحت کی ہے۔
نان بلاکنگ کے لیے "تاخیر" کا استعمالیہ وہی ہے جو 'defer' وصف کو شامل کرنے کا مطلب ہے۔ اسکرپٹ اس وقت تک انتظار کرے گا جب تک کہ عمل کرنے سے پہلے پورے صفحے کی تجزیہ نہ ہو جائے، اور اہم بات یہ ہے کہ یہ آپ کی لکھی ہوئی اصل ترتیب کو برقرار رکھے گی۔ یہ کافی صارف دوست ہے، کیونکہ یہ نہ تو پہلی اسکرین کو روکتا ہے اور نہ ہی آرڈر میں خلل ڈالتا ہے۔
میں کون سا انتخاب کروں؟
سیدھے الفاظ میں، یہ چار اختیارات ایک سے زیادہ انتخابی سوال کی طرح ہیں:کیا آپ رفتار یا آرڈر چاہتے ہیں؟
میری تجویز درج ذیل ہے:
اگر آپ کی ویب سائٹ چھوٹی ہے، اس میں کچھ اسکرپٹس ہیں، اور آپ کے پاس لوڈنگ کی رفتار کے لیے بہت زیادہ تقاضے نہیں ہیں، تو ڈیفالٹ (بلاک) سیٹنگ کا استعمال کرنا سب سے آسان آپشن ہے۔ اگرچہ یہ تھوڑا سا سست ہے، اس سے کوئی پریشانی نہیں ہوگی۔
اگر آپ پہلی اسکرین کی رفتار کو بہتر بنانا چاہتے ہیں اور آپ کے اسکرپٹس میں مضبوط انحصار نہیں ہے جیسے "A کو B سے پہلے عمل میں لانا چاہیے"، ترجیح دیں...نان بلاکنگ کے لیے "تاخیر" کا استعمال(موخر کرنا)۔ یہ اس وقت تقریباً سب سے بہترین حل ہے، کیونکہ یہ نہ تو رینڈرنگ کو روکتا ہے اور نہ ہی آرڈر میں خلل ڈالتا ہے۔
اگر آپ ٹال مٹول کرنے کی کوشش کرتے ہیں اور پھر بھی محسوس کرتے ہیں کہ کچھ افعال میں مسائل ہیں، تو غور کریں...نان بلاکنگ کے لیے جے ایس کا استعمالیہ حل زیادہ بنیاد پرست ہے، لیکن اس کی مطابقت قدرے خراب ہے۔
غیر مسدود کرنے کے لیے "اسینکرونس" کا استعمال کریں۔(async) وہ آپشن ہے جس کی میں کم سے کم تجویز کرتا ہوں۔ چونکہ عمل درآمد کا حکم مکمل طور پر گڑبڑ ہے، اس لیے کریش ہونا آسان ہے جب تک کہ آپ کو مکمل یقین نہ ہو کہ آپ کے اسکرپٹس آزادانہ طور پر چل رہے ہیں۔
دو بڑے نقصانات جن میں میں پڑ گیا۔
بات سستی ہے۔ میں نے اپنی دو غلطیاں لکھ دی ہیں؛ آپ انہیں اپنے تجربے کے مطابق دیکھ سکتے ہیں کہ آیا آپ ان سے بچ سکتے ہیں۔
پہلا نقصان: حسب ضرورت ورڈپریس تھیمز کو حقیقی وقت میں پیش نظارہ نہیں کیا جا سکتا۔
تھوڑی دیر کے لیے، تھیم کو حسب ضرورت بناتے وقت، محفوظ کریں پر کلک کرنے کے بعد، پیش نظارہ ریفریش نہیں ہوگا۔ میں کچھ تبدیلیاں کروں گا، صفحہ کو ریفریش کروں گا، اور یہ اب بھی ویسا ہی رہے گا۔
کچھ تحقیقات کے بعد، میں نے دریافت کیا کہ Minify کا کمپریشن فنکشن مجرم تھا۔ حل آسان ہے:
W3 ٹوٹل کیشے پلگ ان تک رسائی حاصل کریں۔常规设置,پڑو"کمپریشن"اس آپشن کو غیر چیک کریں۔ پھر اوپری دائیں کونے میں "سیو سیٹنگز" کے نیچے چھوٹے تیر پر کلک کریں اور "..." کو منتخب کریں۔ترتیبات کو محفوظ کریں اور کیش صاف کریں۔یہ قدم اہم ہے؛ اگر آپ کیشے کو صاف نہیں کرتے ہیں، تب بھی آپ کو پرانا ورژن نظر آئے گا۔
آپ کے کام کرنے کے بعد، تھیم حسب ضرورت پر واپس جائیں، اور لائیو پیش نظارہ معمول پر آجائے گا۔
دوسرا مسئلہ: Astra تھیم سرچ باکس کلک کرنے پر جواب نہیں دیتا۔
مجھے کافی عرصہ پہلے اس مسئلے کا سامنا کرنا پڑا۔ میں Astra تھیم استعمال کر رہا تھا، اور ایک دن میں نے اچانک پایا کہ سرچ باکس جواب نہیں دے رہا ہے چاہے میں نے اسے کیسے بھی کلک کیا ہو۔ پہلے تو میں نے سوچا کہ یہ تھیم کے ساتھ ہی ایک مسئلہ ہے، لیکن بعد میں میں نے دریافت کیا کہ یہ W3TC کی Minify سیٹنگز کی وجہ سے ہوا ہے۔
اس کا حل درج ذیل ہے۔
W3 ٹوٹل کیش → جنرل سیٹنگز → ایڈوانسڈ کمپریشن سیٹنگز → JS → Minify Engine Settings → Locale Settings پر جائیں، اور ایمبیڈنگ کی قسم کو ان دو میں سے ایک میں تبدیل کریں:
- پہلے، جاوا اسکرپٹ کا استعمال کرتے ہوئے نان بلاکنگ حاصل کی جاتی تھی۔
- اس کے بعد، نان بلاکنگ کے لیے جے ایس کا استعمال کریں۔
اسی طرح، کیشے کو صاف کرنے اور صفحہ کو ریفریش کرنے سے سرچ باکس صحیح طریقے سے کام کر سکے گا۔
جہاں تک ان دو اختیارات کو دوسروں کے بجائے کیوں چنا گیا، میں نے کچھ تحقیق کی ہے۔ سیدھے الفاظ میں، Astra تھیم کے فرنٹ اینڈ پرزنٹ اسکرپٹ پر عمل درآمد کے وقت کے حوالے سے کافی حساس ہیں، اور کچھ غیر مسدود طریقے ایونٹ بائنڈنگ کو ناکام کرنے کا سبب بن سکتے ہیں۔ "JS کے ساتھ نان بلاکنگ" موڈ کا استعمال اس بات کو یقینی بناتا ہے کہ صفحہ کی لوڈنگ مکمل ہونے کے بعد ہی اسکرپٹ پر عمل درآمد ہوتا ہے، جبکہ async کے ساتھ نظر آنے والے بے ترتیب عمل سے گریز کیا جاتا ہے۔
دیکھنے کے لیے مقامات کی فہرست
آخر میں، یہاں ایک چیک لسٹ ہے جس کی آپ براہ راست پیروی کر سکتے ہیں:
پہلا قدم اپنے مقصد کو واضح کرنا ہے۔ کیا آپ ابتدائی صفحہ کا تیز ترین لوڈ چاہتے ہیں، یا آپ استحکام اور غلطی سے پاک آپریشن کو ترجیح دیتے ہیں؟ یہ اس بات کا تعین کرے گا کہ آپ کو ایمبیڈنگ کی کون سی قسم استعمال کرنی چاہیے۔
دوسرا مرحلہ یہ نہیں ہے کہ سب کچھ ایک ساتھ تبدیل کیا جائے۔ سب سے پہلے، اسے جانچنے کے لیے ایک کم اہم صفحہ تلاش کریں، ایک یا دو دن تک اس کا مشاہدہ کریں، اور صرف اس صورت میں پوری سائٹ پر اس کی تشہیر کریں جب آپ کو یقین ہو کہ کوئی مسئلہ نہیں ہے۔
تیسرا، ہر ترمیم کے بعد ہمیشہ کیشے کو صاف کریں۔ W3TC کا کیشنگ میکانزم آپ کو تازہ ترین تبدیلیوں کو دیکھنے سے روکے گا، اس لیے "کیش صاف کریں اور دوبارہ ٹیسٹ کریں" مرحلہ بالکل ضروری ہے۔
چوتھا، پہلے اور بعد میں لوڈنگ کی رفتار کا موازنہ کرنے کے لیے اپنے براؤزر کے ڈویلپر ٹولز یا PageSpeed Insights جیسے ٹولز کا استعمال کریں۔ اعداد و شمار کو خود ہی بولنے دیں، نہ صرف آپ کے آنتوں کا احساس۔
آخر میں لکھیں
سچ پوچھیں تو جب میں نے پہلی بار اس ایمبیڈڈ ٹائپ سیٹنگ کو دیکھا تو میں کافی دیر تک دنگ رہ گیا۔ پہلے سے طے شدہ بلاکنگ موڈ بہت سست لگ رہا تھا، جبکہ غیر مطابقت پذیر موڈ آرڈر کی ضمانت نہیں دیتا تھا، اور موخر کرنے سے مطابقت کے مسائل پیدا ہو سکتے ہیں۔ مجھے یقین نہیں تھا کہ کون سا آپشن منتخب کرنا ہے۔
لیکن مجھے بعد میں احساس ہوا کہ یہ ایک تجارت ہے۔ آپ کے پاس تیز ترین اور مستحکم دونوں نہیں ہو سکتے۔ آپ کو ہمیشہ ایک قربانی کرنی ہوگی۔ میرا تجربہ یہ ہے کہ پہلے ڈیفر کا استعمال کریں، جو کہ اس وقت سب سے محفوظ نان بلاکنگ حل ہے، اور پھر اگر مسائل پیدا ہوں تو کال بیک استعمال کریں۔
اگر آپ کو اسی طرح کے مسائل کا سامنا ہے، یا اگر آپ کو میرے طریقہ کار پر عمل کرنے کے بعد بھی دیگر مسائل درپیش ہیں، تو بلا جھجھک اس پر بات کریں۔ ویب سائٹ کی ترقی آزمائش اور غلطی کے بارے میں ہے؛ کوئی بھی ایک استثنا نہیں ہے.
میرا مضمون پڑھنے کے لیے آپ کا شکریہ۔ اگلی بار ملتے ہیں۔
ہوپ چن ویلیانگ بلاگ ( https://www.chenweiliang.com/ مضمون "W3 Total Cache Minify Plugin Settings: Embedding Type کا انتخاب کیسے کریں؟ My Pitfalls and Life Saving Tips" جو میں نے شیئر کیا ہے، آپ کے لیے مددگار ثابت ہو سکتا ہے۔
اس مضمون کا لنک شیئر کرنے میں خوش آمدید:https://www.chenweiliang.com/cwl-34003.html
