បញ្ជីអត្ថបទ
ពិបាកជ្រើសរើសប្រភេទបង្កប់ត្រឹមត្រូវសម្រាប់ W3 Total Cache Minify មែនទេ? អត្ថបទនេះចែករំលែកបទពិសោធន៍ពិតរបស់អ្នកគ្រប់គ្រងគេហទំព័រ និងផ្តល់នូវការណែនាំជាជំហានៗ ដើម្បីជ្រើសរើសប្រភេទបង្កប់ Minify ត្រឹមត្រូវ ដោយជៀសវាងការរអាក់រអួលរចនាប័ទ្មគេហទំព័រ និងការគាំងផ្ទុក។ វាក៏រួមបញ្ចូលដំណោះស្រាយដំឡើងដ៏មានប្រសិទ្ធភាព ដែលសូម្បីតែអ្នកចាប់ផ្តើមដំបូងក៏អាចអនុវត្តបានយ៉ាងងាយស្រួលផងដែរ។WordPress បង្កើនល្បឿនដោយមិនគាំង!
ខ្ញុំកំពុងធ្វើការ optimize គេហទំព័រមួយ ហើយនៅពេលដែលខ្ញុំបើកការកំណត់ Minify នៅក្នុង W3 Total Cache ខ្ញុំពិតជាភ្ញាក់ផ្អើលយ៉ាងខ្លាំង។ ម៉ឺនុយទម្លាក់ចុះសម្រាប់ប្រភេទដែលបានបង្កប់មានជម្រើសបួន៖ Default (Block), Use JS for Non-Blocking, Use "Asynchronous" for Non-Blocking និង Use "Delayed" for Non-Blocking។
ខ្ញុំបានគិតអំពីវាមួយសន្ទុះ តើទាំងអស់នេះនិយាយអំពីអ្វី?
ជឿខ្ញុំចុះ អ្នកមិនឯកាទេ។ ជម្រើសទាំងបួននេះទំនងជាធ្វើឱ្យសូម្បីតែអ្នកចាប់ផ្តើមដំបូងមានការងឿងឆ្ងល់ ទុកឲ្យតែអ្នកដែលបានប្រើប្រាស់ WordPress អស់រយៈពេលជាច្រើនឆ្នាំ។ អត្ថបទនេះបង្ហាញពីគ្រោះថ្នាក់ដែលខ្ញុំបានជួបប្រទះ និងមេរៀនដែលខ្ញុំបានរៀនដោយផ្ទាល់។ អ្នកមិនចាំបាច់ពិគ្រោះជាមួយឯកសារទេ គ្រាន់តែធ្វើតាមការណែនាំរបស់ខ្ញុំ។
តើប្រភេទនៃការបង្កប់ទាំងបួននេះជាអ្វីឲ្យប្រាកដ?

ចូរយើងនិយាយអំពីប្រភេទតួអង្គដែលជម្រើសទាំងបួននេះមានលក្ខណៈបែបណា។
លំនាំដើម (ប្លុក)នេះត្រូវបានគេហៅថា ការរារាំងលំនាំដើម។ វាជាវិធីសាស្រ្តដ៏សាមញ្ញបំផុត៖ កម្មវិធីរុករកនឹងឈប់នៅពេលដែលវាជួបប្រទះស្គ្រីប ទាញយក និងប្រតិបត្តិវាទាំងស្រុង ហើយបន្ទាប់មកបន្តបង្ហាញទំព័រ។ ស្តាប់ទៅគួរឱ្យទុកចិត្ត មែនទេ? ប៉ុន្តែការសម្របសម្រួលគឺថា ការផ្ទុកទំព័រដំបូងរបស់អ្នកនឹងត្រូវបានរារាំង។ អ្នកប្រើប្រាស់នឹងត្រូវរង់ចាំឱ្យស្គ្រីបដំណើរការចប់ មុនពេលពួកគេអាចមើលឃើញអ្វីទាំងអស់។
ការប្រើប្រាស់ JS សម្រាប់ការមិនរារាំងនេះពិតជាគួរឱ្យចាប់អារម្មណ៍ណាស់។ ជំនួសឱ្យការសរសេរស្លាក `<script>` ដោយផ្ទាល់នៅលើទំព័រ ដំបូងវានឹងបង្ហាញស្គ្រីបតូចមួយ ហើយបន្ទាប់មកបញ្ចូលស្គ្រីបដែលត្រូវការផ្ទុកទៅក្នុងទំព័រតាមរយៈ JavaScript បន្ទាប់ពីទំព័រកំពុងដំណើរការ។ តាមវិធីនេះ ទំព័រអាចត្រូវបានបង្ហាញជាមុនសិន ហើយស្គ្រីបអាចផ្ទុកបន្តិចម្តងៗ។ ស្តាប់ទៅអស្ចារ្យណាស់ មែនទេ? ទោះជាយ៉ាងណាក៏ដោយ បញ្ហាគឺថាដំណើរការចាក់បញ្ចូលថាមវន្តនេះអាចរំខានដល់លំដាប់ប្រតិបត្តិដើមនៃស្គ្រីប។ ប្រសិនបើស្គ្រីបមួយចំនួននៅលើទំព័ររបស់អ្នកពឹងផ្អែកយ៉ាងខ្លាំងទៅលើលំដាប់ប្រតិបត្តិ បញ្ហាអាចកើតឡើង។
ប្រើ "អសមកាលកម្ម" សម្រាប់ការមិនរារាំងនេះពាក់ព័ន្ធនឹងការបន្ថែមគុណលក្ខណៈ `async` ទៅក្នុងស្លាក `<script>`។ ស្គ្រីបនឹងទាញយកអសមកាលកម្មនៅផ្ទៃខាងក្រោយ ហើយដំណើរការភ្លាមៗបន្ទាប់ពីទាញយក ដោយមិនចាំបាច់រង់ចាំទំព័រនោះទេ។ ទោះជាយ៉ាងណាក៏ដោយ ចំណុចអវិជ្ជមានគឺថាលំដាប់ប្រតិបត្តិមិនអាចគ្រប់គ្រងបានទាំងស្រុង។ ស្គ្រីបណាដែលបញ្ចប់ការទាញយកមុននឹងដំណើរការមុន ដោយមិនគិតពីលំដាប់ដែលអ្នកបានបញ្ជាក់នៅក្នុងកូដ។
ការប្រើប្រាស់ "ការពន្យារពេល" សម្រាប់ការមិនរារាំងនេះជាអត្ថន័យនៃការបន្ថែមគុណលក្ខណៈ `defer`។ ស្គ្រីបនឹងរង់ចាំរហូតដល់ទំព័រទាំងមូលត្រូវបានវិភាគមុនពេលប្រតិបត្តិ ហើយសំខាន់ជាងនេះទៅទៀត វានឹងរក្សាលំដាប់ដើមដែលអ្នកបានសរសេរវា។ នេះងាយស្រួលប្រើណាស់ ព្រោះវាមិនរារាំងអេក្រង់ដំបូង ហើយក៏មិនរំខានដល់លំដាប់ដែរ។
តើខ្ញុំគួរជ្រើសរើសមួយណា?
និយាយឲ្យសាមញ្ញទៅ ជម្រើសទាំងបួននេះគឺដូចជាសំណួរជម្រើសច្រើន៖តើអ្នកចង់បានល្បឿនឬការបញ្ជាទិញ?
សំណើរបស់ខ្ញុំមានដូចខាងក្រោម៖
ប្រសិនបើគេហទំព័ររបស់អ្នកមានទំហំតូច មានស្គ្រីបតិចតួច ហើយអ្នកមិនមានតម្រូវការខ្ពស់ខ្លាំងសម្រាប់ល្បឿនផ្ទុកទេ ការប្រើប្រាស់ការកំណត់លំនាំដើម (ត្រូវបានរារាំង) គឺជាជម្រើសងាយស្រួលបំផុត។ ទោះបីជាវាយឺតជាងបន្តិចក៏ដោយ វានឹងមិនបង្កបញ្ហាអ្វីឡើយ។
ប្រសិនបើអ្នកចង់បង្កើនល្បឿនអេក្រង់ដំបូង ហើយស្គ្រីបរបស់អ្នកមិនមានការពឹងផ្អែកខ្លាំងដូចជា "A ត្រូវតែប្រតិបត្តិមុន B" សូមផ្តល់អាទិភាព...ការប្រើប្រាស់ "ការពន្យារពេល" សម្រាប់ការមិនរារាំង(ពន្យារពេល)។ នេះស្ទើរតែជាដំណោះស្រាយដ៏ល្អបំផុតនៅពេលបច្ចុប្បន្ន ព្រោះវាមិនរារាំងការបង្ហាញ ឬរំខានដល់សណ្តាប់ធ្នាប់នោះទេ។
ប្រសិនបើអ្នកព្យាយាមពន្យារពេល ហើយនៅតែឃើញថាមុខងារមួយចំនួនមានបញ្ហា នោះសូមពិចារណា...ការប្រើប្រាស់ JS សម្រាប់ការមិនរារាំងដំណោះស្រាយនេះមានលក្ខណៈរ៉ាឌីកាល់ជាង ប៉ុន្តែភាពឆបគ្នារបស់វាកាន់តែអាក្រក់បន្តិច។
ប្រើ "អសមកាលកម្ម" សម្រាប់ការមិនរារាំង(async) គឺជាជម្រើសដែលខ្ញុំណែនាំតិចបំផុត។ ដោយសារតែលំដាប់ប្រតិបត្តិមានភាពច្របូកច្របល់ទាំងស្រុង វាងាយនឹងគាំង លុះត្រាតែអ្នកប្រាកដទាំងស្រុងថាស្គ្រីបរបស់អ្នកទាំងអស់កំពុងដំណើរការដោយឯករាជ្យ។
អន្ទាក់ធំពីរដែលខ្ញុំបានធ្លាក់ចូលទៅក្នុង
ការនិយាយគឺថោកទាប។ ខ្ញុំបានសរសេរកំហុសពីរដែលខ្ញុំបានធ្វើ។ អ្នកអាចពិនិត្យមើលវាជាមួយនឹងបទពិសោធន៍ផ្ទាល់ខ្លួនរបស់អ្នក ដើម្បីមើលថាតើអ្នកអាចជៀសវាងវាបានឬអត់។
គុណវិបត្តិដំបូង៖ ស្បែក WordPress ផ្ទាល់ខ្លួនមិនអាចមើលជាមុនបានភ្លាមៗទេ។
មួយរយៈ ពេលប្ដូរតាមបំណងរូបរាង បន្ទាប់ពីចុចរក្សាទុក ការមើលជាមុនមិនធ្វើឱ្យស្រស់ទេ។ ខ្ញុំបានធ្វើការផ្លាស់ប្តូរមួយចំនួន ធ្វើឱ្យទំព័រស្រស់ ហើយវានៅតែដដែល។
បន្ទាប់ពីការស៊ើបអង្កេតខ្លះៗ ខ្ញុំបានរកឃើញថាមុខងារបង្ហាប់របស់ Minify គឺជាមូលហេតុ។ ដំណោះស្រាយគឺសាមញ្ញ៖
ចូលប្រើកម្មវិធីជំនួយ W3 Total Cache常规设置, បើកឡើង"ការបង្ហាប់"ដោះធីកជម្រើសនោះ។ បន្ទាប់មកចុចព្រួញតូចមួយនៅខាងក្រោម "រក្សាទុកការកំណត់" នៅជ្រុងខាងស្តាំខាងលើ ហើយជ្រើសរើស "..."រក្សាទុកការកំណត់ និងសម្អាតឃ្លាំងសម្ងាត់ជំហាននេះមានសារៈសំខាន់ណាស់។ ប្រសិនបើអ្នកមិនសម្អាតឃ្លាំងសម្ងាត់ទេ អ្នកនឹងនៅតែឃើញកំណែចាស់។
បន្ទាប់ពីអ្នករួចរាល់ សូមត្រលប់ទៅការកំណត់រូបរាងវិញ ហើយការមើលជាមុនផ្ទាល់នឹងត្រលប់មកធម្មតាវិញ។
បញ្ហាទីពីរ៖ ប្រអប់ស្វែងរកស្បែក Astra មិនឆ្លើយតបនៅពេលចុច។
ខ្ញុំបានជួបប្រទះបញ្ហានេះជាយូរមកហើយ។ ខ្ញុំកំពុងប្រើស្បែក Astra ហើយថ្ងៃមួយខ្ញុំស្រាប់តែដឹងថាប្រអប់ស្វែងរកមិនឆ្លើយតបទេ មិនថាខ្ញុំចុចវាយ៉ាងណាក៏ដោយ។ ដំបូងឡើយ ខ្ញុំគិតថាវាជាបញ្ហាជាមួយស្បែកខ្លួនឯង ប៉ុន្តែក្រោយមកខ្ញុំបានរកឃើញថាវាបណ្តាលមកពីការកំណត់ Minify របស់ W3TC។
ដំណោះស្រាយមានដូចខាងក្រោម៖
ចូលទៅកាន់ W3 Total Cache → General Settings → Advanced Compression Settings → JS → Minify Engine Settings → Locale Settings ហើយផ្លាស់ប្តូរប្រភេទ embedding ទៅមួយក្នុងចំណោមពីរនេះ៖
- ពីមុន ការមិនទប់ស្កាត់ត្រូវបានសម្រេចដោយប្រើ JavaScript។
- បន្ទាប់មក សូមប្រើ JS សម្រាប់ការមិនរារាំង
ស្រដៀងគ្នានេះដែរ ការសម្អាតឃ្លាំងសម្ងាត់ និងការធ្វើឱ្យទំព័រស្រស់ឡើងវិញនឹងអនុញ្ញាតឱ្យប្រអប់ស្វែងរកដំណើរការបានត្រឹមត្រូវ។
ចំពោះមូលហេតុដែលជម្រើសទាំងពីរនេះត្រូវបានជ្រើសរើសជំនួសឱ្យជម្រើសផ្សេងទៀត ខ្ញុំបានធ្វើការស្រាវជ្រាវខ្លះហើយ។ និយាយឱ្យសាមញ្ញទៅ សមាសធាតុផ្នែកខាងមុខរបស់ស្បែក Astra មានភាពរសើបខ្លាំងចំពោះពេលវេលានៃការប្រតិបត្តិស្គ្រីប ហើយវិធីសាស្ត្រមិនរារាំងមួយចំនួនអាចបណ្តាលឱ្យការភ្ជាប់ព្រឹត្តិការណ៍បរាជ័យ។ ការប្រើប្រាស់របៀប "មិនរារាំងជាមួយ JS" ធានាថាស្គ្រីបដំណើរការតែបន្ទាប់ពីទំព័រផ្ទុកចប់ ខណៈពេលដែលជៀសវាងការប្រតិបត្តិមិនប្រក្រតីដែលឃើញជាមួយ async។
បញ្ជីទីកន្លែងដែលត្រូវទៅទស្សនា
ជាចុងក្រោយ នេះគឺជាបញ្ជីត្រួតពិនិត្យដែលអ្នកអាចអនុវត្តតាមដោយផ្ទាល់៖
ជំហានដំបូងគឺត្រូវបញ្ជាក់ឱ្យច្បាស់អំពីគោលដៅរបស់អ្នក។ តើអ្នកចង់បានការផ្ទុកទំព័រដំបូងលឿនបំផុត ឬអ្នកផ្តល់អាទិភាពដល់ប្រតិបត្តិការដែលមានស្ថេរភាព និងគ្មានកំហុស? នេះនឹងកំណត់ថាអ្នកគួរប្រើប្រភេទបង្កប់មួយណា។
ជំហានទីពីរគឺមិនត្រូវផ្លាស់ប្តូរអ្វីៗទាំងអស់ក្នុងពេលតែមួយនោះទេ។ ដំបូង សូមស្វែងរកទំព័រដែលមិនសូវសំខាន់ដើម្បីសាកល្បងវា សង្កេតវារយៈពេលមួយឬពីរថ្ងៃ ហើយផ្សព្វផ្សាយវាទៅកាន់គេហទំព័រទាំងមូល លុះត្រាតែអ្នកប្រាកដថាមិនមានបញ្ហាអ្វីនោះទេ។
ទីបី ត្រូវសម្អាតឃ្លាំងសម្ងាត់ជានិច្ចបន្ទាប់ពីការកែប្រែនីមួយៗ។ យន្តការរក្សាទុកឃ្លាំងសម្ងាត់របស់ W3TC នឹងរារាំងអ្នកពីការមើលឃើញការផ្លាស់ប្តូរចុងក្រោយបំផុត ដូច្នេះជំហាន "សម្អាតឃ្លាំងសម្ងាត់ ហើយសាកល្បងម្តងទៀត" គឺចាំបាច់បំផុត។
ទីបួន សូមប្រើឧបករណ៍អភិវឌ្ឍន៍ ឬឧបករណ៍ដូចជា PageSpeed Insights របស់កម្មវិធីរុករករបស់អ្នក ដើម្បីប្រៀបធៀបល្បឿនផ្ទុកមុន និងក្រោយ។ សូមឱ្យទិន្នន័យនិយាយដោយខ្លួនឯង មិនមែនគ្រាន់តែអារម្មណ៍របស់អ្នកនោះទេ។
សរសេរនៅចុងបញ្ចប់
និយាយឱ្យត្រង់ទៅ ពេលដែលខ្ញុំបានឃើញការកំណត់ប្រភេទដែលបានបង្កប់នេះជាលើកដំបូង ខ្ញុំមានការភ្ញាក់ផ្អើលជាយូរ។ របៀបទប់ស្កាត់លំនាំដើមហាក់ដូចជាយឺតពេក ខណៈពេលដែលរបៀបអសមកាលមិនធានាលំដាប់លំដោយទេ ហើយការពន្យារពេលអាចបណ្តាលឱ្យមានបញ្ហាភាពឆបគ្នា។ ខ្ញុំមានអារម្មណ៍មិនប្រាកដថាត្រូវជ្រើសរើសជម្រើសមួយណា។
ប៉ុន្តែក្រោយមកខ្ញុំបានដឹងថាវាជាការសម្របសម្រួល។ អ្នកមិនអាចមានទាំងលឿនបំផុត និងស្ថេរភាពបំផុតនោះទេ។ អ្នកតែងតែត្រូវលះបង់មួយ។ បទពិសោធន៍របស់ខ្ញុំគឺត្រូវប្រើ defer ជាមុនសិន ដែលបច្ចុប្បន្នជាដំណោះស្រាយមិនរារាំងដែលមានសុវត្ថិភាពបំផុត ហើយបន្ទាប់មកប្រើ callback ប្រសិនបើមានបញ្ហាកើតឡើង។
ប្រសិនបើអ្នកជួបប្រទះបញ្ហាស្រដៀងគ្នា ឬប្រសិនបើអ្នកនៅតែមានបញ្ហាផ្សេងទៀតបន្ទាប់ពីធ្វើតាមវិធីសាស្ត្ររបស់ខ្ញុំ សូមកុំស្ទាក់ស្ទើរក្នុងការពិភាក្សាអំពីវា។ ការអភិវឌ្ឍគេហទំព័រគឺសុទ្ធតែអំពីការសាកល្បង និងកំហុសឆ្គង។ គ្មាននរណាម្នាក់ជាករណីលើកលែងនោះទេ។
សូមអរគុណសម្រាប់ការអានអត្ថបទរបស់ខ្ញុំ។ ជួបគ្នាពេលក្រោយ។
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ អត្ថបទ "ការកំណត់កម្មវិធីជំនួយ W3 Total Cache Minify៖ របៀបជ្រើសរើសប្រភេទបង្កប់? គ្រោះថ្នាក់ និងគន្លឹះសង្គ្រោះជីវិតរបស់ខ្ញុំ" ដែលខ្ញុំបានចែករំលែក អាចមានប្រយោជន៍សម្រាប់អ្នក។
សូមស្វាគមន៍ចំពោះការចែករំលែកតំណភ្ជាប់នៃអត្ថបទនេះ៖https://www.chenweiliang.com/cwl-34003.html
