مقالې لارښود
د W3 Total Cache Minify لپاره د سم ایمبیډینګ ډول غوره کولو لپاره مبارزه کوئ؟ دا مقاله د ویب ماسټر د حقیقي نړۍ تجربه شریکوي او د سم Minify ایمبیډینګ ډول په سمه توګه غوره کولو لپاره ګام په ګام لارښود چمتو کوي، د ویب پاڼې سټایل غلطیو او بار کولو حادثو څخه مخنیوی کوي. دا د یو بشپړ خوندي تنظیم حل هم لري چې حتی پیل کونکي یې په اسانۍ سره پلي کولی شي.WordPress پرته له ټکر څخه ګړندی کړئ!
زه یوه ویب پاڼه اصلاح کوله او کله چې ما په W3 Total Cache کې د Minify ترتیبات پرانیستل، زه په بشپړ ډول حیران وم. د ایمبیډ شوي ډول لپاره د ډراپ ډاون مینو څلور اختیارونه درلودل: ډیفالټ (بلاک)، د غیر بلاک کولو لپاره JS وکاروئ، د غیر بلاک کولو لپاره "غیر متزلزل" وکاروئ، او د غیر بلاک کولو لپاره "ځنډ شوی" وکاروئ.
ما د یوې شیبې لپاره فکر وکړ، دا ټول د څه لپاره دي؟
باور وکړئ، تاسو یوازې نه یاست. دا څلور انتخابونه به حتی یو نوی نوښتګر هم حیران کړي، هغه څوک چې له کلونو راهیسې ورڈپریس کاروي، پریږدئ. دا مقاله هغه ستونزې وړاندې کوي چې ما ورسره مخ شوي او هغه درسونه چې ما په مستقیم ډول زده کړي دي. تاسو اړتیا نلرئ چې اسناد وګورئ؛ یوازې زما لارښوونې تعقیب کړئ.
دا څلور د سرایت ډولونه په حقیقت کې څه دي؟

راځئ چې لومړی د دې په اړه وغږیږو چې دا څلور انتخابونه څه ډول شخصیت دي.
ډیفالټ (بند شوی)دې ته ډیفالټ بلاک کول ویل کیږي. دا تر ټولو ساده طریقه ده: براوزر کله چې سکریپټ سره مخ کیږي ودریږي، په بشپړ ډول یې ډاونلوډ او اجرا کوي، او بیا د پاڼې رینډر کولو ته دوام ورکوي. د باور وړ ښکاري، سمه ده؟ مګر تبادله دا ده چې ستاسو د پاڼې لومړنی بار به بند شي؛ کاروونکي به د سکریپټ د چلولو پای ته رسیدو لپاره انتظار وکړي مخکې لدې چې دوی څه وګوري.
د نه بندولو لپاره د JS کارولدا ډېره په زړه پورې ده. د دې پر ځای چې په پاڼه کې په مستقیم ډول ``<script>` ټګونه ولیکي، دا لومړی یو کوچنی سکریپټ تولیدوي، او بیا په متحرک ډول هغه سکریپټونه داخلوي چې د پاڼې له چلولو وروسته د جاواسکریپټ له لارې پاڼې ته پورته کولو ته اړتیا لري. پدې توګه، پاڼه لومړی وړاندې کیدی شي، او سکریپټونه په تدریجي ډول پورته کیدی شي. ښه ښکاري، سمه ده؟ په هرصورت، ستونزه دا ده چې دا متحرک انجیکشن پروسه ممکن د سکریپټونو اصلي اجرا کولو ترتیب ګډوډ کړي. که ستاسو په پاڼه کې ځینې سکریپټونه په پراخه کچه د اجرا کولو امر باندې تکیه وکړي، نو ستونزې رامینځته کیدی شي.
د نه بندولو لپاره "غیر متزلزل" وکاروئپدې کې د `<script>` ټګ ته د ``غیر متناسب` ځانګړتیا اضافه کول شامل دي. سکریپټ به په شالید کې په غیر متناسب ډول ډاونلوډ شي او د ډاونلوډ کولو وروسته سمدلاسه اجرا شي، پرته لدې چې پاڼه یې انتظار وکړي. په هرصورت، نیمګړتیا دا ده چې د اجرا کولو ترتیب په بشپړ ډول غیر کنټرول شوی دی؛ هر سکریپټ چې لومړی ډاونلوډ بشپړ کړي لومړی اجرا کوي، پرته له دې چې تاسو په کوډ کې مشخص شوي ترتیب ته پام وکړئ.
د نه بندولو لپاره د "ځنډ" کارولدا هغه څه دي چې د ``defer` ځانګړتیا اضافه کول یې معنی لري. سکریپټ به تر هغه وخته پورې انتظار وکړي چې ټوله پاڼه د اجرا کولو دمخه تجزیه شي، او مهمه دا چې دا به هغه اصلي ترتیب وساتي چې تاسو یې لیکلی و. دا خورا د کاروونکي دوستانه دی، ځکه چې دا نه لومړی سکرین بندوي او نه هم ترتیب ګډوډوي.
کوم یو باید غوره کړم؟
په ساده ډول، دا څلور انتخابونه د څو انتخابي پوښتنې په څیر دي:ایا تاسو سرعت غواړئ یا نظم؟
زما وړاندیز په لاندې ډول دی:
که ستاسو ویب پاڼه کوچنۍ وي، لږ سکریپټونه ولري، او تاسو د بارولو سرعت لپاره خورا لوړې اړتیاوې نلرئ، نو د ډیفالټ (بلاک شوي) ترتیب کارول ترټولو اسانه انتخاب دی. که څه هم دا یو څه ورو دی، دا به کومه ستونزه رامینځته نکړي.
که تاسو غواړئ د لومړي سکرین سرعت ښه کړئ او ستاسو سکریپټونه قوي انحصار نلري لکه "A باید د B څخه مخکې اجرا شي"، لومړیتوب ورکړئ ...د نه بندولو لپاره د "ځنډ" کارول(ځنډول). دا په اوس وخت کې تقریبا تر ټولو غوره حل دی، ځکه چې دا نه د رینډرینګ مخه نیسي او نه هم ترتیب ګډوډوي.
که تاسو د ځنډ هڅه وکړئ او بیا هم ومومئ چې ځینې دندې ستونزې لري، نو بیا په پام کې ونیسئ ...د نه بندولو لپاره د JS کارولدا حل ډیر بنسټیز دی، مګر د هغې مطابقت یو څه خراب دی.
د نه بندولو لپاره "غیر متزلزل" وکاروئ(async) هغه انتخاب دی چې زه یې لږ تر لږه وړاندیز کوم. ځکه چې د اجرا کولو امر په بشپړ ډول ګډوډ دی، نو دا په اسانۍ سره خرابیږي پرته لدې چې تاسو په بشپړ ډول ډاډه یاست چې ستاسو ټول سکریپټونه په خپلواکه توګه روان دي.
دوه لویې کندې چې زه پکې ولوېدم
خبرې کول ارزانه دي. ما دوه غلطۍ چې ما کړې دي لیکلي دي؛ تاسو کولی شئ هغه د خپلې تجربې سره وګورئ ترڅو وګورئ چې ایا تاسو کولی شئ له دوی څخه مخنیوی وکړئ.
لومړۍ ستونزه: د ګمرکي ورڈپریس موضوعات په ریښتیني وخت کې نشي لیدل کیدی.
د یو څه وخت لپاره، کله چې یوه موضوع تنظیموئ، د خوندي کولو کلیک کولو وروسته، مخکتنه به تازه نه شي. زه به ځینې بدلونونه راوړم، پاڼه به تازه کړم، او دا به لاهم ورته وي.
د یو څه پلټنې وروسته، ما وموندله چې د Minify کمپریشن فعالیت مجرم و. حل ساده دی:
د W3 Total Cache پلگ ان ته لاسرسی ومومئ常规设置، را پورته شه"کمپرېشن"دا انتخاب له چک څخه خلاص کړئ. بیا په پورتنۍ ښیې کونج کې د "Save Settings" لاندې کوچني تیر باندې کلیک وکړئ او "..." غوره کړئ.ترتیبات خوندي کړئ او کیچ پاک کړئدا ګام خورا مهم دی؛ که تاسو کیش پاک نه کړئ، تاسو به بیا هم زوړ نسخه وګورئ.
وروسته له دې چې تاسو کار بشپړ کړئ، بیرته د موضوع دودیز کولو ته لاړ شئ، او ژوندۍ مخکتنه به بیرته عادي حالت ته راشي.
دویمه ستونزه: د اسټرا موضوع لټون بکس د کلیک کولو پر مهال ځواب نه ورکوي.
زه ډېر وخت وړاندې له دې ستونزې سره مخ شوم. زه د اسټرا موضوع کاروم، او یوه ورځ ما ناڅاپه وموندله چې د لټون بکس ځواب نه ورکوي، مهمه نده چې ما څنګه کلیک وکړ. په لومړي سر کې، ما فکر کاوه چې دا پخپله د موضوع سره ستونزه ده، مګر وروسته ما وموندله چې دا د W3TC د Minify ترتیباتو له امله وه.
حل په لاندې ډول دی:
د W3 Total Cache → General Settings → Advanced Compression Settings → JS → Minify Engine Settings → Locale Settings ته لاړ شئ، او د ایمبیډینګ ډول له دې دوو څخه یو ته بدل کړئ:
- پخوا، د جاواسکریپټ په کارولو سره غیر بلاک کول ترلاسه شوي وو.
- وروسته، د غیر بلاک کولو لپاره JS وکاروئ
په ورته ډول، د کیش پاکول او د پاڼې تازه کول به د لټون بکس ته اجازه ورکړي چې په سمه توګه کار وکړي.
د دې لپاره چې ولې دا دوه انتخابونه د نورو پر ځای غوره شوي، ما یو څه څیړنه کړې ده. په ساده ډول، د اسټرا موضوع د مخکینۍ برخې برخې د سکریپټ اجرا کولو وخت ته خورا حساس دي، او ځینې غیر بلاک کولو میتودونه کولی شي د پیښې پابندۍ ناکامه کړي. د "JS سره غیر بلاک کول" حالت کارول ډاډ ورکوي چې سکریپټ یوازې د پاڼې د بارولو پای ته رسیدو وروسته اجرا کیږي، پداسې حال کې چې د غیر مطابقت سره لیدل شوي بې نظمه اجرا څخه مخنیوی کیږي.
د لیدلو وړ ځایونو لیست
په پای کې، دلته یو چک لیست دی چې تاسو یې په مستقیم ډول تعقیبولی شئ:
لومړی ګام دا دی چې خپل هدف روښانه کړئ. ایا تاسو غواړئ چې د پاڼې چټکه لومړنۍ بار ولرئ، یا تاسو ثبات او له خطا پاک عملیات ته لومړیتوب ورکوئ؟ دا به معلومه کړي چې تاسو باید د کوم ډول ایمبیډینګ څخه کار واخلئ.
دوهم ګام دا نه دی چې هرڅه په یو ځل بدل کړئ. لومړی، د ازموینې لپاره یو لږ مهم پاڼه ومومئ، د یوې یا دوو ورځو لپاره یې وګورئ، او یوازې هغه وخت یې په ټوله سایټ کې خپور کړئ که تاسو ډاډه یاست چې کومه ستونزه نشته.
دریم، تل د هر تعدیل وروسته کیش پاک کړئ. د W3TC کیش میکانیزم به تاسو د وروستي بدلونونو لیدلو مخه ونیسي، نو د "کیش پاک کړئ او بیا ازموینه وکړئ" ګام په بشپړ ډول اړین دی.
څلورم، د خپل براوزر د پراختیا کونکي وسیلو یا د پیج سپیډ انسایټس په څیر وسیلو څخه کار واخلئ ترڅو د بارولو سرعت مخکې او وروسته پرتله کړئ. اجازه راکړئ چې معلومات پخپله خبرې وکړي، نه یوازې ستاسو د کولمو احساس.
په پای کې ولیکئ
په ریښتیا سره، کله چې ما د لومړي ځل لپاره دا ایمبیډ شوی ډول ترتیب ولید، زه د ډیر وخت لپاره حیران وم. د ډیفالټ بلاک کولو حالت ډیر ورو ښکاریده، پداسې حال کې چې غیر متمرکز حالت امر تضمین نه کړ، او ځنډول ممکن د مطابقت ستونزې رامینځته کړي. زه ډاډه نه وم چې کوم انتخاب غوره کړم.
خو وروسته ما پوه شوم چې دا یوه معامله ده. تاسو نشئ کولی دواړه ګړندی او خورا باثباته ولرئ؛ تاسو باید تل یو قرباني کړئ. زما تجربه دا ده چې لومړی defer وکاروئ، کوم چې اوس مهال ترټولو خوندي غیر بلاک کولو حل دی، او بیا د ستونزې رامینځته کیدو په صورت کې د کال بیک څخه کار واخلئ.
که تاسو ورته ستونزې سره مخ شئ، یا که تاسو زما د طریقې تعقیبولو وروسته بیا هم نورې ستونزې لرئ، نو د هغې په اړه بحث کولو کې آزاد اوسئ. د ویب پاڼې پراختیا ټول د آزموینې او تېروتنې په اړه ده؛ هیڅوک استثنا نه ده.
زما د مقالې د لوستلو لپاره مننه. بل ځل به سره ګورو.
امید چن وییلینګ بلاګ ( https://www.chenweiliang.com/ مقاله "د W3 ټول کیش مینیفای پلگ ان ترتیبات: د ایمبیډینګ ډول څنګه غوره کړئ؟ زما زیانونه او د ژوند ژغورنې لارښوونې"، کوم چې ما شریک کړی، ممکن ستاسو لپاره ګټور وي.
د دې مقالې لینک شریکولو ته ښه راغلاست:https://www.chenweiliang.com/cwl-34003.html
