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

راځئ چې لومړی د دې په اړه وغږیږو چې دا څلور انتخابونه څه ډول شخصیت دي.
د ډیفالټ بلاک کول ترټولو ساده لاره ده. کله چې براوزر له سکریپټ سره مخ شي، نو ودریږي، سکریپټ په بشپړ ډول ډاونلوډ او اجرا کوي، او بیا د پاڼې رینډر کولو ته دوام ورکوي. د باور وړ ښکاري، سمه ده؟ مګر تبادله دا ده چې ستاسو د پاڼې لومړني بار به وځنډول شي؛ کاروونکي به د سکریپټ د چلولو پای ته رسیدو لپاره انتظار وکړي مخکې لدې چې دوی څه وګوري.
د غیر بلاک کولو لپاره د جاواسکریپټ کارول خورا په زړه پورې دي. د دې پرځای چې په پاڼه کې مستقیم `<script>` ټګونه ولیکئ، دا لومړی یو کوچنی سکریپټ تولیدوي، او بیا د پاڼې له چلولو وروسته د جاواسکریپټ له لارې اړین سکریپټونه په متحرک ډول پاڼې ته داخلوي. پدې توګه، پاڼه لومړی رینډر کیدی شي، او سکریپټونه په تدریجي ډول پورته کیږي. ښه ښکاري، سمه ده؟ په هرصورت، ستونزه دا ده چې دا متحرک انجیکشن پروسه کولی شي د سکریپټونو اصلي اجرا کولو ترتیب ګډوډ کړي. که ستاسو په پاڼه کې ځینې سکریپټونه په پراخه کچه د اجرا کولو امر باندې تکیه وکړي، ستونزې رامینځته کیدی شي.
د غیر بلاک کولو اجرا لپاره د "غیر متناسب" کارول په ساده ډول د `<script>` ټګ ته د ``غیر متناسب` ځانګړتیا اضافه کول شامل دي. سکریپټ به په شالید کې غیر متناسب ډول ډاونلوډ شي او د بشپړیدو وروسته سمدلاسه اجرا شي، پرته لدې چې پاڼه یې انتظار وکړي. په هرصورت، نیمګړتیا دا ده چې د اجرا کولو امر په بشپړ ډول غیر کنټرول شوی دی؛ هر هغه ډاونلوډ چې لومړی یې اجرا کوي، پرته له دې چې تاسو په کوډ کې مشخص کړئ.
د "ځنډ" کارول د غیر بلاک کولو اجرا کولو لپاره د "defer" ځانګړتیا اضافه کولو سره ترلاسه کیږي. سکریپټ به تر هغه وخته پورې انتظار وکړي چې ټوله پاڼه د اجرا کولو دمخه تجزیه شي، او په خورا مهم ډول، دا به هغه اصلي ترتیب وساتي چې تاسو یې لیکلی و. دا خورا د کاروونکي دوستانه دی، ځکه چې دا نه لومړی سکرین بندوي او نه هم د سکریپټ ترتیب ګډوډوي.
کوم یو باید غوره کړم؟
په ساده ډول، دا څلور انتخابونه د څو انتخابي پوښتنې په څیر دي: ایا تاسو سرعت غواړئ، یا تاسو امر غواړئ؟
زما وړاندیز په لاندې ډول دی:
که ستاسو ویب پاڼه کوچنۍ وي، لږ سکریپټونه ولري، او تاسو د بارولو سرعت لپاره خورا لوړې اړتیاوې نلرئ، نو د ډیفالټ (بلاک شوي) ترتیب کارول ترټولو اسانه انتخاب دی. که څه هم دا یو څه ورو دی، دا به کومه ستونزه رامینځته نکړي.
که تاسو غواړئ د لومړي سکرین سرعت ښه کړئ او ستاسو سکریپټونه قوي انحصار نلري لکه "A باید د B څخه مخکې اجرا شي"، نو د غیر بلاک کولو اجرا لپاره د "defer" کارولو ته لومړیتوب ورکړئ . دا تقریبا اوس مهال شتون لرونکی مثالی حل دی، ځکه چې دا د اجرا کولو ترتیب ساتلو پرمهال د رینډرینګ بندولو څخه مخنیوی کوي.
که تاسو ومومئ چې ځینې دندې د defer هڅه کولو وروسته هم ستونزې لري، نو د غیر بلاک کولو لپاره د جاواسکریپټ کارولو په اړه فکر وکړئ . دا طریقه ډیره تیریدونکې ده، مګر د هغې مطابقت یو څه خراب دی.
د "غیر متناسب" کارول د غیر بلاک کولو لپاره هغه انتخاب دی چې زه یې لږترلږه وړاندیز کوم. ځکه چې د اجرا کولو امر په بشپړ ډول ګډوډ دی، نو دا اسانه ده چې کریش شي پرته لدې چې تاسو په بشپړ ډول ډاډه یاست چې ستاسو سکرپټونه په خپلواکه توګه پرمخ ځي.
دوه لویې کندې چې زه پکې ولوېدم
خبرې کول ارزانه دي. ما دوه غلطۍ چې ما کړې دي لیکلي دي؛ تاسو کولی شئ هغه د خپلې تجربې سره وګورئ ترڅو وګورئ چې ایا تاسو کولی شئ له دوی څخه مخنیوی وکړئ.
لومړۍ ستونزه: د ګمرکي ورڈپریس موضوعات په ریښتیني وخت کې نشي لیدل کیدی.
د یو څه وخت لپاره، کله چې یوه موضوع تنظیموئ، د خوندي کولو کلیک کولو وروسته، مخکتنه به تازه نه شي. زه به ځینې بدلونونه راوړم، پاڼه به تازه کړم، او دا به لاهم ورته وي.
د یو څه پلټنې وروسته، ما وموندله چې د Minify کمپریشن فعالیت مجرم و. حل ساده دی:
د W3 Total Cache پلگ ان عمومي ترتیباتو ته لاړ شئ، د "کمپریشن" اختیار ومومئ ، او دا غیر چیک کړئ. بیا، په پورتنۍ ښیې کونج کې د "Save Settings" لاندې کوچني تیر باندې کلیک وکړئ، او " Save Settings and Clear Cache " غوره کړئ. دا ګام خورا مهم دی؛ د کیچ پاکولو پرته، تاسو به لاهم زوړ نسخه وګورئ.
وروسته له دې چې تاسو کار بشپړ کړئ، بیرته د موضوع دودیز کولو ته لاړ شئ، او ژوندۍ مخکتنه به بیرته عادي حالت ته راشي.
دویمه ستونزه: د اسټرا موضوع لټون بکس د کلیک کولو پر مهال ځواب نه ورکوي.
زه ډېر وخت وړاندې له دې ستونزې سره مخ شوم. زه د اسټرا موضوع کاروم، او یوه ورځ ما ناڅاپه وموندله چې د لټون بکس ځواب نه ورکوي، مهمه نده چې ما څنګه کلیک وکړ. په لومړي سر کې، ما فکر کاوه چې دا پخپله د موضوع سره ستونزه ده، مګر وروسته ما وموندله چې دا د 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
